CLI · bare mirrors · never touches origin
Spare remotes for a folder of Git repos.
ingotvault scans a workspace, ensures a local backup remote, and pushes every local branch and tag into bare mirrors on a path you choose — USB, SD, NAS, or another disk. It never modifies origin. Force-push is never the default.
The promise is narrow on purpose: every commit you've made lands in a second place you control. Optionally, a snapshot of your dirty tree too.
npm · pnpm · Node 22+ · Apache-2.0
For agents
Agents fail by rewriting — rebase, amend, reset, deleting a “stale” branch. An append-only spare remote is a ratchet that survives that class of failure. Opt-in WIP capture snapshots dirty trees (respecting .gitignore) before an unattended session can erase them.
Read the full argument: An undo layer for autonomous edits.
Why it exists
Forge remotes cover what you pushed upstream. File backups cover bytes on disk — including a torn .git mid-rebase. The gap between them is real:
- Repos with no forge remote at all
- Unpushed branches and tags in repos you thought were safe because
mainis on origin - Confidentiality — NDA'd or unfinished work that shouldn't leave the machine
- Offline / intermittent network
- Account-level risk — forge outage, lost 2FA, losing org access
A push into a bare mirror is a git operation: validated on receipt, atomic at the ref level, restorable with git clone, checkable with ingotvault verify.
Guarantees
- Never touches
originor other remotes - Never force-pushes unless you aim
--force-with-leaseat a repo - Never prunes deleted branches — history refs only accumulate. WIP snapshots are a separate rolling window.
- One repo fails; the others continue
- Locked / missing vault → exit
2(scheduled runs can skip quietly)
Details and edge cases: Safety.
Quick start
pnpm add -g ingotvault
ingotvault init
ingotvault list
ingotvault
ingotvault verify
Full flags and restore notes live on the install page and in the README.
Built by Catalyst Forge LLC.
