D-Snap Get in touch

In developmentRust · SQLite

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.

  1. dsnap snap -m "before the agent"

    Saved version 14 "before the agent" (+0 ~2 -0)

  2. 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

  3. 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];

  4. 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

  5. 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

An example session. The commands and the output format are the CLI’s own; the project and its files are made up. An agent rewrote three files and deleted a test, and one restore puts it all back, with a safety snapshot to undo the restore.

Capabilities

What it does.

Engineers who want D-Snap to fit into the workflow they already have.

  1. 01

    Content-addressed, compressed storage, so a snapshot that changes one file stores one file

  2. 02

    Line-by-line diffs between any two versions, or between a version and the folder as it is now

  3. 03

    Restore a folder, a file or one hunk, with a safety snapshot taken first every time

  4. 04

    Claude Code hooks that snapshot the folder before and after each prompt

  5. 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.

This site isn't finished. Anything on it may still change, and none of it is binding until the site is live.