前言¶
DeepSeek Harness (DSH) 采用插件化架构。在智能体开发或代码协作场景中,开发者需要在会话中频繁查看仓库状态、提交历史以及执行 Git 操作。taontech/dsh-git 插件通过在 DSH 会话界面新增一个 Git 标签页,将仓库概况、文件状态、提交历史以及常用 Git 操作集成到浏览器端,避免频繁切换终端。
安装与启用¶
插件通过 npm 包分发,安装后需重启 GUI 才能生效。
- 安装插件
在终端执行以下命令,将插件安装到指定的 profile 中:
dsh plugin --profile <name> add @taontech/dsh-git
- 确认配置
验证插件是否正确注入到配置中:
dsh --profile <name> --dump-config
输出中应包含 dsh-git 相关配置行。
- 重启 GUI
安装完成后,必须重启 web profile 的 GUI 才能看到新增的 Git tab。
核心功能¶
该插件主要包含以下能力:
- 仓库概况
展示当前项目的 Git 状态,包括根目录、当前分支、远程地址、领先/落后提交数、最近一次提交信息以及是否处于 dirty 状态。 - 文件与提交管理
显示文件修改状态(暂存、未暂存、未跟踪)与提交历史。支持查看提交的 hash、作者、日期和 subject。 - 分支与提交图
展示分支列表,并提供基于 ASCII 字符的提交图(git log --graph),直观展示分支演变。 - 贡献日历
展示最近一年的每日提交热力图(date -> count),用于快速了解提交频率。 - Git 操作
插件封装了常用操作:暂存文件、取消暂存、提交(带消息校验)、推送、拉取、切换分支以及初始化。 - 非 Git 目录处理
当目录未被 Git 初始化时,插件会显示文件列表,并提供一键git init按钮。 - macOS 快速打开
在 macOS 环境下,支持在宿主机终端(Terminal / iTerm)中打开仓库,或直接启动交互式代理 app(OpenCode / Claude / Codex / Antigravity)。
技术架构¶
插件通过一个 npm 包实现“Server”和“Client”双面逻辑:
- 依赖库
git 命令执行全部委托给gmc库(gmc/lib/git.js的runGit方法),插件仅负责解析与展示。 - Server 端(数据与接口)
通过dsh.bundle.patch注入webServer。提供一系列 RESTful 端点用于获取数据和执行操作:GET /dsh-git/info:获取仓库概况。GET /dsh-git/status:获取文件修改状态或非 Git 目录列表。GET /dsh-git/log:获取提交历史。GET /dsh-git/branches:获取分支列表与提交图。GET /dsh-git/contributions:获取贡献日历数据。POST /dsh-git/*:执行提交、推送、初始化等操作。
- Client 端(UI 集成)
注册conversation.view插槽以展示 Git tab,并注册conversation.input.dock插槽以展示 Hero 概况卡片(包含分支、热力图和快捷启动按钮)。
注意事项¶
- 环境要求
插件依赖 Node.js 版本 >= 18。 - macOS 限制
macOS 上的终端快速打开和代理 app 启动功能仅支持回环地址,不能直接穿透到远程 SSH 会话。 - 路径显示
在 macOS 上,git 返回的路径可能包含/private/var/...,这是/var的符号链接,属于正常现象。 - 重启生效
安装后务必重启 GUI 才能激活 Git tab。
总结¶
taontech/dsh-git 是一个功能完备的 DSH Git 插件。它利用 gmc 库处理底层命令,通过标准 JSON API 与前端通信,为开发者提供了一个无需离开 DSH 界面即可管理代码库的解决方案。适合需要在 DeepSeek Harness 中进行代码审查、分支管理和日常提交的开发者使用。