Undo & Rollback

Atomic Filesystem Snapshots

SHA-256 content-addressed snapshots capture filesystem state before and after every agent session. Restore any session with a single command.

Every change is reversible

AI agents modify files at scale. A single coding session can touch dozens of files across your project. When something goes wrong — a broken refactor, an incorrect dependency change, or unwanted modifications to configuration files — you need a reliable way to undo everything.

nono captures a content-addressed snapshot of every file in the sandbox scope before the agent starts. Each file is hashed with SHA-256 and stored in a deduplicating content store. After the session ends, a second snapshot records the final state. The diff between snapshots tells you exactly what changed, and nono rollback restore restores the original state atomically.

Content-Addressed Storage

Files are stored by their SHA-256 hash, not by path. Identical files across sessions share storage. The snapshot database grows only by the size of unique content, making frequent snapshots practical even for large projects.

Session Diffs

Review exactly what an agent changed before deciding to keep or revert. The diff output shows file-level and line-level changes, including new files, modified files, and deleted files. Pipe to jq or diff for integration with existing workflows.

terminal
$ nono run --rollback --allow ~/projects/myapp -- claude
# Agent makes changes...
# nono captures before/after snapshots automatically
$ nono rollback list
SESSION ID COMMAND FILES CHANGED
20260228-143201-48291 claude 12
20260228-101544-31072 claude 3
$ nono rollback restore 20260228-143201-48291
Restored 12 files to pre-session state.
nono diff
$ nono rollback show 20260228-143201-48291 --diff
--- a/src/auth/middleware.ts
+++ b/src/auth/middleware.ts
@@ -12,6 +12,18 @@
+export async function validateToken(token: string) {
+ // Agent-generated code
+ const decoded = jwt.verify(token, process.env.JWT_SECRET);
+ return decoded;
+}
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
+ "jsonwebtoken": "^9.0.0",

Use Cases

Agent Recovery

Undo a broken refactor or incorrect dependency changes. One command restores the entire project to its pre-session state.

Experiment Safely

Let agents attempt ambitious changes knowing you can always roll back. Run multiple experimental sessions and keep only the best result.

CI Integration

Capture snapshots in CI pipelines. If agent-generated changes fail tests, automatically revert and report the failure with full diff context.

Get started with nono

Runtime safety infrastructure that works on macOS, Linux, and in CI.