Undo watches your project and records every change, so you can see what happened and restore any file in seconds.
$ curl -fsSL https://useundo.co/install.sh | bashStandalone binary for macOS and Linux. You can also download one from the Releases page.
Start watching, check what changed, restore what you need.
┌────────────────┐ file change ┌────────────────┐
│ your project │ ───────────────▶ │ Undo watcher │
│ ~/my-project │ file event │ save version │
└────────────────┘ └───────┬────────┘
│
▼
┌────────────────┐
│ ~/.undo/ │
│ SQLite + │
│ saved versions │
└────────────────┘~/.undo/Start Undo once. It watches your project using macOS and Linux file events, with no editor plugin or Git hook.
When a file changes, Undo saves a compressed copy. Duplicate content is stored once, so history stays small.
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.
Most days you only need what-changed and restore.
undo startStart watching this project.undo what-changed 5mShow recent file changes.undo timelineShow a timeline of activity.undo diff <file>Compare a file with its last saved version.undo restore <file> <time>Bring a file back from an earlier version.undo statusShow watch status and disk usage.undo pruneRemove old history. Use --dry-run to preview.undo stopStop watching this project.undo updateUpdate Undo.See every command and flag in the detailed docs.
The basics before you install.