D-Snap
D-Snap keeps versions of a folder without asking you to use git. Take a snapshot with one click, or let it take them on a timer or after the folder goes quiet. Then compare any two versions line by line, and restore the whole folder, one file or a single hunk. Every restore takes a safety snapshot first, so a restore can be undone too.
From the command line
Undo what an agent did, in one command.
The desktop app does all of this with buttons. The dsnap tool does it from a terminal, and from Claude Code’s hooks.
-
dsnap snap -m "before the agent"
Saved version 14 "before the agent" (+0 ~2 -0)
-
dsnap status
M src/router.ts +38 -11
M src/db.ts +4 -27
A src/cache.ts +61 -0
D test/router.test.ts
-
dsnap diff --file src/db.ts
--- a/src/db.ts
+++ b/src/db.ts
@@ -18,6 +18,3 @@
const rows = await query(sql, params);
- if (!rows.length) {
- throw new NotFound(id);
- }
return rows[0];
-
dsnap restore . 14
Restore to version 14 "before the agent":
write src/router.ts
write src/db.ts
write test/router.test.ts
delete src/cache.ts
Restore now? [y/N] y
Restored: 3 written, 1 deleted.
Undo with: dsnap restore "." 15
-
dsnap list
15 2026-10-02 14:31:07 safety +1 ~2 -1 Before restore to before the agent
14 2026-10-02 14:08:52 cli * +0 ~2 -0 before the agent
13 2026-10-02 13:40:15 auto +2 ~5 -1 2026-10-02 13:40:15
Capabilities
What it does.
Engineers who want D-Snap to fit into the workflow they already have.
- 01
Content-addressed, compressed storage, so a snapshot that changes one file stores one file
- 02
Line-by-line diffs between any two versions, or between a version and the folder as it is now
- 03
Restore a folder, a file or one hunk, with a safety snapshot taken first every time
- 04
Claude Code hooks that snapshot the folder before and after each prompt
- 05
Automatic snapshots on a timer or after a pause, with pinned versions and retention for the rest
Specification
What it’s built with, and when.
Pulled from the repository each time this site is built.
- State
- In development
- Discipline
- Developer tooling
- Shape
- Developer tooling
- Started
- Oct 2026
- Last change
- Oct 2026
- Commits
- 97
- Rust
- SQLite
- BLAKE3
- zstd
- Tauri
- Svelte
- TypeScript
- Rust 75%
- TypeScript 16%
- Svelte 7%
Next
Put D-Snap in your pipeline
Ask about hooking it up to the repositories and agents you already run.