为 DeepSeek Harness 提供四个零依赖本地 git 工具(status、diff、log、commit),作用于会话工作区。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Shyboy0499/dsh-git-tools
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
该插件的 README 只有英文版本。
Local git tools for DeepSeek Harness (
dsh).
dsh-git-tools is a dependency-free DeepSeek Harness plugin that gives the coding agent
four local git tools — git_status, git_diff, git_log, and git_commit —
so it can inspect the repo in the session workspace and create commits, all through the
official tool API. No UI, Host-side only.
Features
| Tool | What it does |
|---|---|
git_status |
Branch, ahead/behind, and staged / unstaged / untracked files |
git_diff |
Stat summary or full patch, staged or unstaged, optional path filter |
git_log |
Recent commits as { hash, author, date, subject } |
git_commit |
Stage specific paths (or all) and commit with a required message |
Installation
dsh plugin --profile web add dsh-git-tools
Requires git on your PATH (present in any development environment).
Tool reference
All tools accept an optional cwd (defaults to the session workspace).
git_status
Inspect the working tree and branch state.
{
"branch": "main",
"ahead": 0,
"behind": 2,
"staged": [{ "path": "src/index.ts", "status": "M" }],
"unstaged": [],
"untracked": ["scratch.txt"]
}
git_diff
View changes. staged diffs the index, statOnly: true (default) returns a stat summary,
statOnly: false returns the full patch. path filters to a single file.
{
"stat": [{ "file": "src/index.ts", "added": 3, "deleted": 1 }],
"total": { "files": 1, "insertions": 3, "deletions": 1 },
"patch": null
}
git_log
List recent commits. count defaults to 10 (max 100); path filters to a file.
{
"commits": [
{
"hash": "a1b2c3d4e5f67890abcdef1234567890abcdef12",
"author": "Shyboy0499",
"date": "2026-08-26",
"subject": "Fix typo"
}
],
"total": 1
}
git_commit
Create a commit. message is required (non-empty). Stage specific files with paths,
or everything with all: true. Never stages implicitly.
{
"success": true,
"hash": "e5f6g7h0123456789abcdef0123456789abcdef01",
"branch": "main",
"filesStaged": 2
}
Safety
- All git calls run through
execFilewith arguments passed as arrays — no shell interpolation, so user/model-controlled values are injection-safe. git_commitrequires an explicitmessageand never stages files on its own (passpathsorall: true).- No destructive operations (
--amend,--force, rebase, reset) in the core scope.
Development
pnpm install
pnpm run build # tsdown → lib/
pnpm test # vitest against real throwaway git repos
pnpm run lint # oxlint
pnpm run format # prettier --write .
License
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-git-graph★ 8597
输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
Akimiya-z/codex-guard#dsh★ 136
在 DeepSeek Harness 内做提交前的 Pull Request 卫生检查:扫描当前改动中的 TODO 残留、硬编码密钥与非规范提交信息。
Cerbur/clutch-dsh#clutch-dsh-worktree★ 33
为 DSH Web UI 增加按 Git Worktree 组织 Session 的视角,同时继续由 DSH 管理原始 Project 和 Session 数据。
lehhair/dsh-diff-viewer★ 26
PiUI 风格 diff 查看器,替换 write/edit 工具调用的默认 DiffBlock。
DamonKoy/dsh-web-ui#dsh-git-graph★ 23
dsh web GUI 会话头部栏的 Git 分支选择器与提交图。
PerryLink/dsh-github★ 22
官方级 GitHub CI 集成:composite action.yml、轮询 PR 评审机器人(幂等行内评论 + status-check 门禁)以及 PR/issue 工具,所有写入走人工审批门。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。