Adds approval-gated Git status, diff, log, commit, branch, and optional checkpoint tools.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-gitflow
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:lonelymoon87/dsh-gitflow
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Git status, diff, log, commit, branch, and optional restore-point tools for DeepSeek Harness.
The v0.1.3 release is tested with DSH 0.1.0-rc.8 and 0.1.1-rc.1 while retaining the rc.6-compatible peer range. Prebuilt packages are distributed through GitHub Releases; npm publication is prepared but not yet live.
MVP
git_statusreads branch and working-tree counts.git_diffreads unstaged or staged unified diffs without touching the index.git_logreturns bounded structured commit history and handles unborn repositories.git_commitcommits only existing staged changes and requires DSH approval.git_branchlists local branches; create and switch require approval./commitloads a staged-change review skill before callinggit_commit.checkpoint_listand two-phasecheckpoint_restoredelegate to an optional Change Ledger service.- Optional
autoCheckpointcaptures a Change Ledger restore point attools/pre-executefor configured mutation tools.
Pull-request creation, push, worktree management, and branch deletion are deliberately outside the MVP.
Safety model
GitFlow never stages files implicitly. It does not run git add, git reset, git stash, git push, hook-bypass flags, or destructive branch commands. Git arguments are shell-quoted and commit messages are passed through stdin. Every Git process uses the mounted DSH shell service, preserving its timeout, sandbox, cancellation, and execution-world behavior.
Mutating tool calls pass through the DSH approval seam. Direct command handlers do not bypass it: /commit queues a user-invoked skill, and the eventual git_commit tool call asks for approval.
Change Ledger integration
dsh-turn-rewind owns workspace snapshots, restore planning, rescue points, stale-plan checks, and post-restore verification. GitFlow does not implement a competing stash or commit-tree restore engine.
When no compatible ctx.changeLedger service is mounted, ordinary Git tools continue to work and checkpoint tools fail with a configuration message. Because the restore point is already the durable source of truth, GitFlow does not duplicate it into required custom session events.
Permissions and data
- Read tools execute local
git status,git diff, andgit logcommands through the mounted DSH shell service. Mutating commit and branch operations pass through DSH approval. - The optional Change Ledger integration can create and restore workspace checkpoints when that service is installed and explicitly enabled.
- GitFlow does not access credentials, contact Git hosts, push changes, or register a custom durable session event. Git command output is returned to the current agent session.
Install
The package supports DSH >=0.1.0-rc.6 <0.2.0 plugin APIs and Node.js ^22.19 || >=24.
dsh plugin --profile web add https://github.com/lonelymoon87/dsh-gitflow/releases/download/v0.1.3/dsh-gitflow-0.1.3.tgz
The release tarball is prebuilt and needs no build allowance. A pinned source install is also supported:
dsh plugin --profile web add github:lonelymoon87/dsh-gitflow#v0.1.3
The source install runs this package's prepare build. pnpm 10 and later reject it until the profile allowlists the exact package key printed by the failed command; apply that instruction and rerun the same dsh plugin add command. Replace web with headless to install into the one-shot agent profile.
To upgrade, rerun dsh plugin add with the newer release URL. To uninstall:
dsh plugin --profile web remove dsh-gitflow
Configuration
- id: gitflow
name: dsh-gitflow
config:
timeoutMs: 30000
maxOutputBytes: 2097152
maxLogEntries: 100
conventionalCommits: true
autoCheckpoint: false
checkpointTools:
- write
- edit
- str_replace_editor
- git_commit
- git_branch
autoCheckpoint is disabled by default. Enabling it without a Change Ledger service does not pretend recovery exists; it leaves calls unchanged.
Verification
The test suite uses real temporary Git repositories. It covers dirty status, staged and unstaged diffs, commits, branch creation, unborn history, approval decisions, automatic checkpoint delegation, and two-phase restore delegation.
- The v0.1.3 tarball installs directly from its HTTPS release URL into clean DSH 0.1.0-rc.8 and 0.1.1-rc.1 profiles.
- The packed bundle and pinned GitHub source install both appear in
dsh --dump-config. - CI covers Node 22.19 and Node 24; a compatibility matrix repeats the real install against DSH 0.1.0-rc.8 plus the
latestandnextnpm tags. - Bugs and compatibility reports are tracked in GitHub Issues.
License
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-git-graph★ 8076
Git branch selector and Git graph for the dsh web GUI: switch branches and explore branch-lane and commit history from the conversation header.
Akimiya-z/codex-guard#dsh★ 139
Pre-submit pull-request hygiene checks inside DeepSeek Harness: scans the current diff for TODO leftovers, hardcoded secrets, and non-conventional commit subjects.
Cerbur/clutch-dsh#clutch-dsh-worktree★ 28
Adds a Worktree view to DSH Web UI that groups Sessions by Git worktree while keeping DSH as the source of truth.
lehhair/dsh-diff-viewer★ 27
PiUI-style diff viewer replacing the stock DiffBlock for write/edit tool calls.
DietCokewithSugar/dsh-user-experience★ 20
Finds potential UX issues in your project: automatically reviews React/TypeScript code, pinpoints each problem, and gives concrete suggestions.
DamonKoy/dsh-web-ui#dsh-git-graph★ 19
Git branch selector and Git graph in the conversation header of the dsh web GUI.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.