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 | bash

Standalone binary for macOS and Linux. You can also download one from the Releases page.

See it in 30 seconds

Run an agent, review its changes, and undo only the work you do not want.

$ cd my-project/
$ undo run claude
# Undo starts recording and launches Claude Code
# the Run closes when the agent exits

How it works

┌────────────────┐   file change    ┌────────────────┐
│  your project  │ ───────────────▶ │  Undo watcher  │
│  ~/my-project  │    file event    │  save version  │
└────────────────┘                 └───────┬────────┘
                                            │
                                            ▼
                                    ┌────────────────┐
                                    │    ~/.undo/    │
                                    │    SQLite +    │
                                    │ saved versions │
                                    └────────────────┘
1.Undo watches your project in the background using macOS and Linux file events
2.When a file changes, Undo checks whether the content is new
3.New content is saved as a compressed version, and the change is logged at ~/.undo/
4.When Undo starts, it checks for changes that happened while it was off
01

Records agent runs

Launch Claude, Codex, OpenCode, or any command with Undo. Its changes are grouped into one Run you can inspect later.

02

Previews before applying

Ask Undo to remove unwanted work and it creates an exact recovery plan. Nothing changes until you review and apply it.

03

Cleans up after itself

Undo keeps 7 days of history and uses up to 1 GB by default. Old saved versions are pruned automatically.

04

Skips the noisy stuff

Dependencies, build folders, Git data, and common secret files are ignored by default. Add your own rules with .undoignore.

05

Restores safely

Before Undo overwrites a file, it backs up the current version. That means a restore can be undone too.

06

Stays on your machine

History is stored locally at ~/.undo/. There is no server, cloud sync, or account.

Find and restore changes

Ask what changed, inspect a diff, and bring back an earlier version.

$ undo what-changed 5m
Changes in last 5m
MODIFIED
- src/server.rs
- Cargo.toml
CREATED
- logs/debug.log
DELETED
- assets/logo.png

Commands

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.

Frequently asked questions

The basics before you install.

Start protecting your work.

One command. No account. Everything stays local.