前言¶
用 DeepSeek Harness(DSH)跑智能体时,工作区里的文件会随对话不断改动。内置的 Files 标签能浏览目录,Terminal 能敲命令,但若要在界面里快速看清「改了哪些路径、每一行具体差在哪」,往往还要切到终端跑 git status、git diff,或依赖外部编辑器。下面介绍的 dsh-git-diff 由社区维护者 XYZ1024-alt 发布,在 dsh web 右侧边栏增加 Git changes 标签,与 Files、Terminal 并列,把当前分支、变更列表和逐文件并排对比收进同一 Web UI。
这是什么¶
dsh-git-diff 是 DeepSeek Harness 的 bundle 插件(npm 包名 dsh-git-diff,当前资料中的版本为 2.0.0)。它通过 cordis.patch.yml 同时加载 Host 端(lib/index.js)与浏览器端(lib/client.js),在 Web 侧栏注册一个新标签页,专门展示 Session 工作目录下的 Git 状态与 diff。1.x 曾自带 Files 与 History 面板;DSH 现已原生提供 Files 与对话内 turn 导航,2.0 因此只保留 Git 视图,并基于右侧边栏 Tab API 重建。
核心功能¶
侧栏 Git changes 标签¶
从侧栏引导入口打开 Git changes 后,页头显示当前分支以及变更路径数量。列表中的路径带有 Git 状态标记:M / A / D / R / C / T / U(未跟踪)/ !(冲突);已暂存的路径会有相应标注。
展开某一路径可进入并排 Diff 视图;可用箭头按钮在侧栏预览中打开该文件(已删除路径无此按钮)。列表会在标签变为可见时、智能体一轮对话结束时,以及侧栏刷新命令或按钮触发时自动刷新。
Diff 视图¶
展开路径后呈现两列对齐:左侧为 HEAD,右侧为工作区。每列独立行号;删除行在左侧标红,新增行在右侧标绿,修改行左右对照;一侧无对应行时另一侧留空。每处变更周围保留三行上下文,较长未改动段落折叠为「N unchanged lines」一行。新建或未跟踪文件仅填充右列;删除文件仅填充左列。长行在列内换行,便于窄侧栏阅读。二进制文件,或任一侧超过 512 KiB 的文件,显示说明而非完整 diff 内容。
Host API 与安全边界¶
插件注册两个只读 GET 路由:/api/dsh-git-diff/status 与 /api/dsh-git-diff/diff,挂在 DSH 共享 /api 通道上。请求到达插件前,DSH Connection 会做 Host/Origin 信任检查与浏览器认证,仅 owner Peer 可通过。每次请求指定 Session,Git 命令只在该 Session 的工作目录执行;diff 接口仅返回当前 git status 报告为已变更的路径,且限定在仓库根目录内。
客户端支持中英文文案(见源码中的 locales.ts)。
安装与启用¶
环境要求(来自 README):
- DeepSeek Harness >=0.2.1-rc.2 且 <0.3.0,并使用 web profile。
- Session 执行环境中
git须在PATH上。
仓库中已提交构建产物 lib/,安装无需本地 build。安装后需重新加载页面。Node 引擎要求 >=22(见 package.json)。
从 GitHub 安装(可按 commit SHA 固定版本以保证可复现):
dsh plugin --profile web add github:XYZ1024-alt/dsh-git-diff
若使用本地目录,在其父目录执行:
dsh plugin --profile web add ./dsh-git-diff
卸载:
dsh plugin --profile web remove dsh-git-diff
许可证:MIT。
典型用法¶
- 启动带 web profile 的 DSH,打开 Web UI(
dsh web)。 - 在右侧边栏找到 Git changes(通过侧栏引导),确认页头分支与变更数量是否符合预期。
- 在列表中查看各路径的状态徽章与是否已暂存;需要细节时展开路径,阅读左右并排 diff。
- 需要打开文件预览时,对未删除的路径使用箭头按钮;删除项仅能从 diff 左列查看历史内容。
- 智能体改完代码后,可依赖标签可见、回合结束或手动刷新更新列表,无需自行在终端重复
git status。
适用场景与注意¶
适合:在 DSH Web 里开发、希望与 Files / Terminal 同屏对照 Git 变更的开发者;需要在窄侧栏内快速浏览逐行 diff 的场景。
注意:
- 插件以当前 DSH 进程及其 Session 环境权限运行 Git 与读文件;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全策略。
- 仅支持资料中写明的 DSH 版本区间与 web profile;CLI-only 或未启用 web 的配置无法使用该侧栏 Tab。
- 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以各站点展示为准(GitHub 上该仓库资料中为 1 star)。
结尾¶
dsh-git-diff 把 Git 状态与并排 diff 嵌进 DSH Web 右侧边栏,减少在终端与浏览器之间来回切换。目录页:https://www.skillhub.cn/plugins/XYZ1024-alt/dsh-git-diff;源码与完整说明:https://github.com/XYZ1024-alt/dsh-git-diff。