dsh-turnsnap
Manifest validZero-config per-turn git checkpoints for DeepSeek Harness: every completed agent turn in a git workspace becomes one tagged [turnsnap] commit
dsh-turnsnap
Zero-config per-turn git checkpoints for DeepSeek Harness (DSH). After every completed agent turn, if the session's working directory is a git repository with uncommitted changes, TurnSnap stages everything and creates one tagged [turnsnap] commit — a rollback point you never had to ask for.
Why
Long agent sessions rewrite many files. When a turn goes wrong you either reach for git by hand or lose the trail. TurnSnap makes the checkpoint automatic: one commit per turn, named after the turn number, file count and time:
[turnsnap] turn 12 · 7 files · 14:32:08
Install
dsh plugin --profile <your-profile> add dsh-turnsnap
No configuration, no client half, nothing to approve: the host half hot-reloads within seconds and starts guarding every session in a git workspace.
How it works
- Listens to the harness
agent/turn-stoppingevent. - Resolves the session workspace from
agent.session.header.cwd. - Skips silently when the directory is not a git repository or has a clean tree.
- Otherwise runs
git add -A && git commit -m "[turnsnap] turn N · M files · HH:MM:SS" --no-verify. - Checkpoints are serialized on one internal queue, so a parent session and its subagents closing turns at the same moment cannot race the git index.
- Git runs through the harness shell service; when the host exposes a sandbox-policy resolver, each request is stamped with the owning session's standing file policy.
Agent tools
| Tool | Effect |
|---|---|
turnsnap_pause | Stop auto-commits until resumed |
turnsnap_resume | Resume auto-commits |
turnsnap_status | Report enabled state, counters and the last checkpoint message |
All three take no arguments. Ask the model to "pause turnsnap" mid-session, or call them yourself from any script that can invoke harness tools.
Caveats
git add -Afolds anything staged-but-uncommitted into the checkpoint. If you keep a deliberate partial stage across a turn boundary, pause first.- Ignored files stay ignored (
add -Arespects.gitignore). - Commits use
--no-verify, so your pre-commit hooks do not run on checkpoints. - One checkpoint per repository per turn: subagents sharing the workspace land in the same commit.
License
MIT
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 1.0.0 | — | — |
Comments
Loading…
Similar plugins
by zoyluoblue
dsh plugin: snapshot your workspace every turn and restore the files to any earlier point. A rewind/undo for DeepSeek Harness coding sessions — your own git repo is never touched.
★ 0
MIT
TypeScript
Aug 19, 2026
dsh plugin --profile web add @zoytown/dsh-rewindby BOWLUNA
Structured git tools for DeepSeek Harness agents: status, diff, log, branch, commit and stash - pinned output, no shell involved, approval-gated writes.
★ 0
MIT
JavaScript
Sep 24, 2026
dsh plugin --profile web add dsh-zcode-gitLocal Git workbench for DeepSeek Harness: branch search and switching, hunk-level staging, commit graph, file history and blame, stash and worktree management, conflict resolution, and eight git tools
★ 0
MIT
JavaScript
dsh plugin --profile web add dsh-plugin-git-workbenchby kaixinbaba
Git development workbench for DeepSeek Harness: captures branch, status, worktrees, stashes and recent commits, with commands, tools and a settings UI.
★ 0
↓ 67/wk
MIT
JavaScript
Aug 20, 2026
dsh plugin --profile web add dsh-git-workbenchby JohnXu22786
DSH 插件:为任务自动创建隔离的 git 工作区,管理创建/同步/收尾全生命周期 (task-isolated git worktrees for DeepSeek Harness)
★ 2
MIT
JavaScript
Oct 24, 2026
dsh plugin --profile web add worktree-mgrby inmny
DeepSeek Harness 插件:让DSH使用Git Bash,能够保持read-only, workspace-write, full-access权限控制依旧可用
★ 18
↓ 84/wk
MIT
JavaScript
Sep 20, 2026
dsh plugin --profile web add dsh-plugin-git-bash