轻量级目录快照命令行工具

快照任意目录。回滚每次冒险。

snapz 专为开发者打造:一键保存命名回滚点,CAS 全局去重,ncdu 风格 TUI 管理,以及确保安全的链式 Undo。支持 snapz prune 智能清理规则,并通过 snapz-server 实现多租户云同步。

Python 3.10+MIT 开源协议CLI + Server248+ 自动化测试
bash — snapz demo
~0B
重复快照且无变化时的增量大小
TUI
ncdu 风格的 Curses 管理界面

feature matrix

特性

~0B

重复快照且无变化时的增量大小

TUI

ncdu 风格的 Curses 管理界面

Undo

链式回滚,操作永不丢失

JSON

所有查询命令均支持机器可读输出

CAS 去重与 v3 全局池

v3 全局 Blob 池按 sha256 存储内容。重复保存相同目录树几乎不占额外空间。支持从旧版本平滑迁移,并通过 gc 彻底回收孤儿块。

链式 Undo 与安全快照

任何 restore 或 revert 都会自动创建 pre-* 安全快照。undo 命令会恢复并消耗最新的安全点,让你能够像编辑器一样撤销多次操作。

Snapz Pro Shell v0.4
Welcome to snapz interactive shell (v0.4)
Type 'help' to see available commands.
~/demo

Interactive Shell: Try typing 'ls' or 'snapz save experiment'

TUI 管理与智能清理

通过高效的 ncdu 风格 TUI 浏览历史。配合 snapz prune 设置保留策略(最近 N 个、每日、每周),并支持标记保护关键快照。

全局搜索与远程同步

使用 snapz find 配合 Glob 模式在所有历史中搜索。通过 snapz-server 同步历史,支持租户、HTTPS、mTLS 认证及 Admin 令牌。

terminal workflow

快速开始

从源码安装,创建快照,使用 TUI 管理,精准回滚,并体验开发者真正需要的远程同步。

snapz://workflow
  1. 01安装 snapz
  2. 02创建第一个命名快照
  3. 03对比、查找与统计
  4. 04安全恢复或局部回滚
  5. 05可选:使用 snapz-server 同步

安装 snapz

01git clone <this repo>02cd snapz03python3 -m venv .venv04.venv/bin/pip install -e .[dev]05ln -sf "$PWD/.venv/bin/snapz" ~/.local/bin/snapz
Click on the left steps to explore the full lifecycle. Each command is optimized for developer productivity.
Visualizing Deduplication

CAS 全局去重连连看

尝试切换左侧文件的内容。当多个文件内容一致时,你会看到它们同时指向右侧同一个块。这就是 snapz 节省空间的秘诀!

文件源 (点击切换内容)
main.py
Size: 10KB
SHARED
utils.py
Size: 25KB
meta.db
Size: 10KB
SHARED
名义占用
45K
实际占用
35K
节省率
1.3x
Global v3 Data Pool
C110 KB
DEDUPED x2
C225 KB
History: 0 Snapshots saved* snapz 会自动合并相同哈希的数据,无论文件名是什么
No snapshots yet... Click snapshot to save current state!

数据引力实验室 (Undo 2.0)

感受快照的物理力量。制造混乱,然后通过 Undo 强制所有原子数据归位。

时空节点
0 AVAILABLE
No snapshots stored...
卖点证据
  • README.md / README.zh.md: stable status, CAS, TUI, JSON, remote sync, release artifacts
  • snapz/cas.py: v3 root-level global blob pool and manifest/blob references
  • snapz/_api_revert.py + snapz/_api_undo.py: selective rollback and chained undo
  • snapz/remote.py + snapz_server/app.py: authenticated multi-tenant sync service