前言¶
用 DeepSeek Harness(DSH)写代码或审变更时,上下文往往在对话里,而分支、合并点和提交历史仍要切到终端或 IDE。若在 Web 对话同一屏看到当前仓库的提交图,并能点进某次提交的逐文件 diff,可以减少来回切换。下面介绍社区插件 dsh-git-tree(维护者 KiriuKazurei),它在 DSH Web 右上角提供可拖拽的 Git 图 HUD,并在内置右侧栏展示提交级 diff。
这是什么¶
dsh-git-tree 是面向 DSH Web 的客户端插件(分类:客户端)。仓库在 GitHub,社区目录见 SkillHub 条目。插件在 DSH 0.2.1-rc.5 上开发;当前 package.json 版本为 0.1.5,许可证 MIT。
它针对「当前对话工作目录」对应的本地 Git 仓库画图,不拉远程历史、不改分支、不写文件;Host 需能在 PATH 里调用 git,且对话的工作目录必须落在要展示的那个仓库内。
核心功能¶
README 中列出的能力如下,均属本地只读展示:
- 在对话旁查看提交历史,以及分支、合并(及 rebase)泳道。
- 显示当前分支、工作区是否脏、相对上游的 ahead/behind 数量、stash 数量。
- 悬停提交可看到 hash、作者、时间、提交说明;点击后在内置右侧边栏打开该提交,按文件展示 diff。
- HUD 可拖拽或折叠;位置和折叠状态保存在浏览器中。
开发说明中还提到:HUD 最多展示约 60 条提交,侧栏明细最多约 240 条;体量很大的 diff 可能被截断。
安装与启用¶
DSH 生态主张「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。安装方式以仓库 README 为准,不要使用未在文档中出现的 dsh plugin add github:... 一类臆测命令。
用一条提示交给 Agent 安装¶
将下面整句复制给能访问你的 DSH Host 与 Profile 的 Agent:
Install and enable dsh-git-tree (https://github.com/KiriuKazurei/dsh-git-tree) in my active DSH profile by cloning it to a persistent local directory, using the bundled lib/ files and the DSH plugin_manager tool's install_bundle action with that directory as the target, and reusing any existing dsh-git-tree entry so the plugin is registered only once.
含义概括:把插件放到持久目录,用 plugin_manager 的 install_bundle,target 指向含 package.json 的目录(预构建产物在 lib/);若 Profile 里已有 dsh-git-tree 登记项,应复用或替换,避免重复注册。
手动安装¶
- 将本仓库 clone 或解压 GitHub 源码 ZIP 到可长期保留的目录(
lib/已含预构建的 Host/Web 文件)。 - 在目标 Profile 中调用
plugin_manager,action=install_bundle,target设为该目录的绝对路径(含package.json的那一层)。若已有手动登记的dsh-git-tree,先复用或替换再注册 bundle。 - 打开工作目录位于 Git 仓库内的 DSH Web 对话;启用插件后刷新 Web 页面,若 Host 未加载插件则重启 DSH。
安装前建议自行通读源码与 MIT 许可证:插件随当前 DSH 进程权限运行,会透过 Host 读取本地 Git 状态。
典型用法¶
无需额外配置文件字段(资料中未列出独立配置项)。启用并按上节 reload 后:
- 在 DSH Web 中开启对话,并将该对话的 working directory 设为你的 Git 仓库根或子目录(仍须在仓库内)。
- 右上角出现 Git 图 HUD:可拖动、折叠;查看当前分支与 dirty / upstream / stash 状态。
- 在图上悬停提交查看元信息,点击某提交,右侧栏打开逐文件 diff 供对照对话上下文。
插件不执行 git fetch、不切换分支;要看的仍是本机已有历史。
适用场景与注意¶
适合:在 DSH Web 里做 Code Review、对照 Agent 修改与最近提交关系、快速确认当前分支与工作区状态的开发者。
不适合或需注意:
- 工作目录不在 Git 仓库内时,无法展示目标图。
- Host 未安装或未在 PATH 暴露
git时,读库会失败。 - 不负责同步远程;远程-only 的提交若本地不存在则不会出现在图中。
- 大 diff 可能被截断,细粒度审查仍可能需要本地
git show或 IDE。
从 package.json 可见插件依赖 Node >=20,面向 web 客户端,并注入 @deepseek-ai/dsh-client-ui-slots 与 @deepseek-ai/dsh-client-ui-sidebar-right;自行构建需 pnpm install、pnpm build(再生 lib/),测试为 pnpm test。
结尾¶
dsh-git-tree 把本地 Git 提交图和点击即开的 diff 侧栏嵌进 DSH Web,只读、不改动仓库,适合与对话并行看历史与变更。更多说明见 GitHub 仓库(含 简体中文 README)与 SkillHub 目录页。