Open source · MIT · MongoDB
The undo button for AI agents
Git-like branching, time travel, and rollback for MongoDB. Give every agent session its own branch — a real MongoDB database with its own connection string. Keep what works, undo what doesn't.
$ brew install argon-lab/tap/argonctlargon · session
simulated
$ argon branches create agent-run -p shop
branch created — metadata only, no data copied
$ argon checkout -p shop -b agent-run
branch is live: a real MongoDB database
mongodb://…/argon_br_9f2c1a — any driver connects
$ python agent.py --db mongodb://…/argon_br_9f2c1a
agent wrote 3,214 documents
every write captured with actor: agent:price-fixer
$ argon undo -p shop --actor agent:price-fixer --from-lsn 5001
3,214 documents reverted · 0 conflicts
compensations logged as new history — undoable
01 — Inert by design
Named after the noble gas for a reason
Argon — element 18 — is inert: it doesn't react with anything. That's the contract: experiments happen on branches, history is append-only, production is never touched.
/01
Branch in milliseconds
A branch is one metadata document — parent, fork LSN, head LSN. No data is copied, whatever the database size. Measured: 0.86 ms p50 on a 50k-entry project, 479 bytes per branch.
/02
Rewind anything
Every write is logged with full before/after document images. Restore to any point, or revert one agent’s entire session with argon undo --actor — conflicts reported, never clobbered.
/03
Prove what happened
The write-ahead log is an audit trail: who wrote what, when, on which branch. Git blame, for your data.
02 — Familiar workflow
The Git muscle memory you already have
| git (code) | argon (data) | what it does |
|---|---|---|
| git init | argon projects create | start versioning |
| git branch feature-x | argon branches create feature-x | isolated branch in milliseconds |
| git checkout feature-x | argon checkout -b feature-x | a real MongoDB database + URI |
| git log | argon time-travel info | see every past state |
| git diff main | argon diff | document-level three-way diff |
| git merge + PR review | argon merge preview/apply | reviewable data PRs, exactly-once |
| git reset --hard | argon restore reset | rewind mistakes |
| git revert | argon undo --actor agent:x | revert one agent’s session |
agents can drive all of this themselves via MCP: claude mcp add argon -- argon mcp — see the agent workflow
03 — How it works
One idea, carried all the way through
1
Every write becomes a log entry
Writes are recorded in an append-only write-ahead log with full document images and a global sequence number (LSN). The log is the source of truth.
2
Branches are pointers
A branch records where it forked and where its head is. Creating one costs a single metadata write; sibling branches can never see each other.
3
Replay is deterministic
State at any LSN is reconstructed by replaying the log — a pure function, property-tested in CI. The same history produces the same state, byte for byte.
04 — Built in the open
Claims you can check
Correctness first
Replay determinism is enforced structurally and verified by property tests in CI — the same history always produces the same state.
see the tests →No unverifiable numbers
We removed every performance figure we couldn’t back. Every number on this site now comes from the public benchmark suite — pinned engine ref, recorded environment, reproducible with docker compose up.
run the benchmarks →Your infrastructure
MIT licensed, self-hosted, works with your own MongoDB — local or Atlas. Your data never leaves your environment.
license →Postgres has Neon. MySQL has PlanetScale. SQL has Dolt. Data lakes have lakeFS. MongoDB has Argon.
Branch your MongoDB today
Open source, MIT licensed, self-hosted. Star the repo to follow along — or run the benchmarks yourself first.