dsh-git-plugin
by mashedpotato817
给 DeepSeek Harness(DSH)的 Git 工作流插件:补齐 DSH 相比 Claude Code / Codex 缺失的「程序员手感」——diff 感知、自动分支、规范提交、可恢复撤销。全部通过 ctx.subprocess seam 以纯 argv 调用 git ,不经过 shell 层,每次运行都受字节与超时上限约束。
Git workflow plugin for DeepSeek Harness: slash commands and read-only git tools
安装
dsh plugin --profile web add github:mashedpotato817/dsh-git-pluginGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
给 DeepSeek Harness(DSH)的 Git 工作流插件:补齐 DSH 相比 Claude Code / Codex 缺失的「程序员手感」——diff 感知、自动分支、规范提交、可恢复撤销。全部通过 ctx.subprocess seam 以纯 argv 调用 git,不经过 shell 层,每次运行都受字节与超时上限约束。
能力
命令(面向人 / 斜杠命令)
| 命令 | 作用 |
|---|---|
/status |
显示当前分支与工作区状态(porcelain v1) |
/diff |
摘要显示已暂存 / 未暂存的改动 |
/branch [<name>] |
不带参数列出分支;带参数则 git switch -c <name> 新建并切换 |
/commit [<message>] |
带参数则 git add -A + 提交;不带参数显示提交规范与当前改动 |
/undo [list|pop] |
默认 git stash push -u 做可恢复快照;list 查看、pop 恢复 |
工具(面向模型 / 只读)
| 工具 | 作用 |
|---|---|
git-status |
分支 + 工作区状态 |
git-diff |
未暂存(默认)或已暂存(staged=true)的 diff |
git-log |
最近提交历史(count 控制条数,path 过滤文件) |
git-show |
查看某个提交(默认 HEAD)的 message / author / diff |
插件还会注入一段 system-prompt 指引,让模型主动用 git 工具查看状态、并遵循仓库的提交与分支规范。
仓库发现
当会话工作目录不是 git 仓库时,插件会:若其直接子目录里只有一个 git 仓库,自动使用它;有多个则列出让用户选择;一个都没有才报 not a git repository。这让它能在「项目集合」式的工作区根目录下正常工作。
安装
已发布到 npm(dsh-git-plugin@0.1.0),一条命令安装:
dsh plugin --profile <name> add dsh-git-plugin
本地 / 源码开发时也可用路径安装:
dsh plugin --profile <name> add /path/to/dsh-git-plugin
安装后,在 profile 的 cordis.patch.yml 里用 insert 声明启用:
- insert:
- id: dsh-git-plugin
name: dsh-git-plugin
需要配置时加上 config:
- insert:
- id: dsh-git-plugin
name: dsh-git-plugin
config:
preCommit: [npm, test]
配置
| 键 | 默认值 | 含义 |
|---|---|---|
maxBytes |
1048576 |
单次 git 调用 stdout 的上限字节数 |
stderrMaxBytes |
65536 |
单次 git 调用 stderr 的上限字节数 |
graceMs |
3000 |
子进程终止前的宽限毫秒数 |
timeoutMs |
30000 |
工具调用的协作超时毫秒数 |
preCommit |
[] |
提交前要运行的 argv 命令(如 ["npm","test"]);非零退出则中止 /commit |
提交规范
/commit 默认提示 MAA 风格的提交信息,与本仓库约定一致:
<类型>(<可选作用域>): <中文主体>
feat / fix / docs / chore / style / refactor / test / perf
若仓库根目录存在 AGENTS.md / CLAUDE.md,模型会读取并遵循其中的自定义规范。
开发
- 分支工作流:所有开发在功能分支进行,稳定后才合并到
main。 - 分支命名:
feat/xxx、fix/xxx、docs/xxx、chore/xxx。 - 提交消息:
<类型>(<可选作用域>): <中文主体>。
本地校验与测试:
npm install
npm run check # 语法校验
npm test # 单元 + 真实 git 集成测试
集成测试会在临时目录里真正 git init / commit / stash,验证 /commit、/undo、/branch 与只读工具端到端可用。
Hook 与 CI
插件 pre-commit 钩子:通过
config.preCommit配置一个 argv 命令,/commit会在git add前运行它,失败即中止提交。仓库
commit-msg钩子:.githooks/commit-msg强制 MAA 提交格式。启用:git config core.hooksPath .githooksCI:
.github/workflows/ci.yml在 push / PR 时跑npm ci、node --check和node --test。
License
MIT
原始 README: https://github.com/MashedPotato817/dsh-git-plugin/blob/main/README.md ↗
同类插件
查看全部 →
dsh-anchored-standard
两阶段 DeepSeek Harness 预设:先 Minimal 对齐的 bootstrap,再切完整 Standard 工具(Project2 98/99)

PicGo-Core
极致的图片上传引擎,CLI 与 API 双支持

awesome-deepseek-harness
DeepSeek Harness(DSH)及其优秀社区插件的精选指南。

awesome-deepseek-harness
DeepSeek Harness (DSH)生态系统:来自dsh-external/hub和公共dsh-plugin主题的精选插件、工具和基础设施。

AI-Novel-Writer
本地优先 AI 小说创作工作台,提供 Windows/macOS 桌面版与 DeepSeek Harness 插件开发预览,支持角色、大纲、章节蓝图、审稿修稿和本地模型。

mcp-for-stata
MCP-for-Stata:把 Stata 集成进你的 agent