Skip to content

Syncing your vault

Your vault is just a folder of text, so syncing it across machines is whatever file-sync you already trust. There’s exactly one rule to remember.

The most powerful option — you get versioned history of every decision.

Terminal window
cd ~/life-vault
git init
git add .
git commit -m "vault snapshot"
git remote add origin git@github.com:you/life-vault-private.git
git push -u origin main

Use a private repo. Your vault is your life. Commit on a cron or whenever you like; git log becomes a literal timeline of your thinking.

A common pattern: a source-of-truth machine holds the real files, and a development/daily machine symlinks to them over Tailscale. Both read and write the same vault, so there’s nothing to reconcile. Prevail doesn’t care how the files got there — it just reads the folder you point it at.

The same applies to running the Telegram daemon: run it on the always-on machine that holds the vault, and it has everything it needs.

If you’re using git, your vault may accumulate things you don’t want in history. A starter .gitignore:

# never — these live in ~/.prevail, but guard against symlinks/copies
.prevail/
**/telegram.json
**/*.token
# large opaque docs you'd rather not version
**/00_current/*.pdf

Adjust to taste — some people want their PDFs versioned, some don’t.

Because everything is append-mostly markdown, conflicts are rare and human-readable when they happen. The _log/ files are per-day and append-only, which minimizes collisions even across machines. If two devices write the same state.md at once, you resolve it the way you’d resolve any text conflict — in your editor.