Files come back. So does the charge, the sent email, the dropped table, the cloud resource. When an agent goes off the rails, one command rewinds all of it.
The objection everyone has
Because git only sees your files. Your agent does far more than edit files — and none of the rest leaves a trail you can reverse.
Not a git replacement. A second system for everything git can't track.
One model, every domain
Record a change with its inverse; replay the inverse on rollback. Anything that touches the outside world is dry-run gated — it shows you what it would do, never fires blind.
Create, modify, delete, dirs, symlinks, permissions — all restored exactly from a content-addressed blob store. Plus redo and selective per-file revert.
walkback rollback # rewind everything
walkback revert src/auth.ts # ...or one file When a mutation is recorded with its compensator — the request that reverses it — walkback runs it. Dry-run gated: it shows you what it would do before it fires.
POST /v1/charges → records refund
walkback_compensate → previews, then fires No tool can recall a delivered email. So walkback does the one honest thing: holds it as a draft that went nowhere. Cancel = true unsend. Gmail + Outlook.
walkback_email_stage … # held, NOT sent
walkback_email_cancel # never existed No hardcoded AWS or Postgres. The agent records the command that reverses what it did, and walkback runs it — dry-run gated. Works with any cloud, DB, or CLI.
walkback_record_reversal "created bucket" \
command="aws s3 rb s3://assets-prod" Zero lock-in
Not tied to any model, vendor, or IDE. Every agent changes files on disk — walkback meets it at whichever layer is convenient.
walkback watch walkback run -- <cmd> add the MCP server walkback protect Atomic write-temp-then-rename journal. Never reports success while leaving files unrestored.
Every outside-world reversal previews first. It never fires a refund or a delete blindly.
Property + concurrency tests, byte-for-byte round-trips. CI green on Linux, macOS, Windows.
The CLI runs on macOS, Linux, and Windows — no Node required.
# the CLI
cargo install walkback-core
brew install tathagat22/tap/walkback # the MCP server (Cursor / Claude / any MCP client)
npx -y @tathagatmaitray/walkback # then, with any agent running:
walkback watch # arm it
walkback diff # see what it did
walkback rollback # rewind all of it