Undo records changes across your project, so you can see what happened and restore earlier versions when something goes wrong. It works with coding agents, scripts, tools, and your own edits.
$ curl -fsSL https://useundo.co/install.sh | bashStandalone binary for macOS and Linux. You can also download one from the Releases page.
Run an agent, review its changes, and undo only the work you do not want.
┌────────────────┐ file change ┌────────────────┐
│ your project │ ───────────────▶ │ Undo watcher │
│ ~/my-project │ file event │ save version │
└────────────────┘ └───────┬────────┘
│
▼
┌────────────────┐
│ ~/.undo/ │
│ SQLite + │
│ saved versions │
└────────────────┘~/.undo/Launch Claude, Codex, OpenCode, or any command with Undo. Its changes are grouped into one Run you can inspect later.
Ask Undo to remove unwanted work and it creates an exact recovery plan. Nothing changes until you review and apply it.
Undo keeps 7 days of history and uses up to 1 GB by default. Old saved versions are pruned automatically.
Dependencies, build folders, Git data, and common secret files are ignored by default. Add your own rules with .undoignore.
Before Undo overwrites a file, it backs up the current version. That means a restore can be undone too.
History is stored locally at ~/.undo/. There is no server, cloud sync, or account.
Ask what changed, inspect a diff, and bring back an earlier version.
Use Runs for agent work. Continuous history remains available for every other change.
undo run claudeRun an agent and record its work.undo runsList recorded Runs.undo run show <run>Inspect everything changed during a Run.undo ask <run> "<request>"Create a recovery preview. No files change.undo apply <recovery>Apply the exact recovery plan you reviewed.undo timeline --since 10mShow recent file activity.undo preview <file> <time>Preview a time-based file restore.undo restore <file> <time>Restore a file from an earlier version.undo restore-deleted <file>Recover a deleted file.undo panicInspect recent bursts and recovery options.See every command and flag in the CLI reference.
The basics before you install.