Version control, minus the code
git for files.
Snapshot anything. Write a note about the moment. Diff two points in time, byte-for-byte. Restore any moment. Never lose a file again.
The chain
Every moment, linked.
Each commit is derived from the one before it. Touch the journal and the chain breaks, loudly. That is the whole trick.
a1b2c3 · rev 12
"beat the Elite Four, Mewtwo next"
d4e5f6 · rev 13
"draft finished"
9c0ab1 · rev 14
"pre-restore auto-backup"
77f2e9 · rev 15 · HEAD
"restored a1b2c3 — undid the bad grind"
Six commands
That's the whole interface.
No dashboard. No settings maze. Six verbs between you and never losing a file.
commit
Snapshot the moment, in your words. Identical tree? Nothing to commit.
diff
What changed between two moments, byte-for-byte.
restore
Go back. Your current state is auto-backed up first, so restores are undoable.
verify
Prove the journal and every snapshot are untampered. Scriptable: exits non-zero on failure.
patterns
Track anything. Two glob lists decide what a vault versions.
push / fetch
Move history through any folder: USB stick, LAN share, mounted cloud drive. Offline-first, no network code in the engine.
Not just saves
Born from a lost game save.
Grown into everything.
Chains started the night a game save vanished, so save data ships as the default: battery saves and save states across SNES, GBA, N64, PSX, PS2, GameCube, PSP, NDS, and BizHawk.
But a vault's tracked set is just two glob lists. Point it at essays, configs, art, anything. Changing patterns never touches history.
Only your files are ever stored. Never ROMs, never firmware.
// .chains/config.json { "includePatterns": ["*.srm", "*.sav", "*.state*", "*.mcr", "*.ps2"], "excludePatterns": ["*.tmp", "~$*"], // exclude wins. .chains itself is never scanned. }
Sync
Your history, everywhere you are.
Content-addressed blobs and an append-only journal map 1:1 onto sync. Same shape as git, minus the DAG.
LAN vault
Keep the vault on a network share and every machine on the LAN sees the same history.
WORKS NOWUSB-stick sync
Push and fetch through any directory: stick, share, mounted cloud drive. Preview first with a read-only plan.
WORKS NOWOffsite vault
Encrypted offsite replication, so your files survive a house fire.
ON THE ROADMAPFAQ
Five honest answers.
What can Chains track?
Does it store ROMs or game files?
Do I need an account?
What if I restore the wrong moment?
How do I know my history is intact?
Stop losing files.
Free and open source. Six commands. Your files stay yours.
Get Chains on GitHub