DeepSeek Harness Hub
← 返回列表

Fakek0f3sT/dsh-mcp-diff

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

一个用于 DeepSeek HarnessWeb GUI…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/3 · 已提供中文文档

为 DeepSeek Harness Web 中的每次文件变更提供统一的 diff 卡片——MCP 文件系统(edit_file/write_file)以及内置的 edit/write,默认折叠,并带有逐行高亮

综合分
31.2
GitHub 分
31.2
用户评分
★ Stars
4
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Fakek0f3sT/dsh-mcp-diff
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-tool
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-mcp-diff

一个用于 DeepSeek Harness(Web GUI) 的客户端插件,它能将每一个它能够可靠解析的文件变更转换为聊天中的统一 diff 卡片——默认折叠,并带有逐行高亮(新增为绿色,删除为红色)。

覆盖 filesystem MCP 服务器(edit_file / write_file / move_file /
create_directory)、
内置 DSH 工具(edit / write),以及可识别的文件变更
bash 命令——所有这些都只需一眼即可查看。解析器无法可靠识别的 Bash 形式
(chmod、ln、rsync、dd、git 状态变更等)
保留普通终端卡片:漏掉一张卡片总好过显示一张错误的卡片。

dsh-mcp-diff 在 DeepSeek Harness 网页聊天中渲染的 diff 卡片

为什么

默认情况下,DSH 只为其自身的文件工具(edit、write)绘制 diff,并使用
其自己的渲染器。当 agent 通过
@modelcontextprotocol/server-filesystem MCP 服务器编辑文件时,该调用被命名为
mcp__filesystem__edit_file / mcp__filesystem__write_file——没有为其注册
toolview,因此聊天中只显示一个没有 diff 的通用块。

该插件:

- 在 MCP 键下注册一个 toolview,并根据服务器
响应(一个带有上下文和 @@ 头的现成统一 diff)或调用
参数(当尚无响应时:write_file、仍在运行的
edit_file)构建 diff;
- 还覆盖内置的 edit / write,统一它们的上下文 hunk
(逐行 LCS:共享行作为中性上下文读取,而不是被
重复);
- 将 move_file 和 create_directory 渲染为紧凑的信息卡片——
source → destination、创建的路径,两者都相对于工作区——因为
它们不携带 diff 行;
- 使每张卡片的路径可打开:点击会将其交给宿主的文件
打开器(与原生工具行使用的同一通道),它会在会话工作区中解析该路径,
并在你的 IDE/编辑器中打开该文件;
- 将所有内容渲染为一张基于原生  构建的卡片——默认
折叠,标题显示路径 + +N -M,点击即可展开。

Bash 编辑卡片

当 agent 通过 bash 而不是文件工具编辑文件时(一个带有 old/new
块的 python3 - heredoc、sed -i、cat > file  file 重定向),DSH 会显示一个普通终端块,并且不跟踪“触及的
文件”——因此该插件接管 bash toolview,并且仅对
它能够可靠解析为行变更的命令添加卡片:

- replace——一个 heredoc 脚本,它读取文件,对 old/new
三引号块执行 .replace() 并将其写回:卡片显示该文件、真实的
删除/新增行,以及从这些块推导出的 +N -M;
- write——cat > f  f / >> f:
始终显示路径,当内容在命令中明确写出时显示新增行;
- in-place——带有显式文件标记的 sed -i / perl -pi:仅显示
路径;
- path ops——带有字面路径的 mkdir、mv、cp、rm、touch
参数:一张信息卡,标明操作及其路径(这些没有 diff 行)。任何非字面量——$VAR、glob、cd 链式调用——都保留普通的终端卡片。

其他所有 bash 调用(ls、git status、构建、grep……)都保留一张普通的类终端卡片——它绝不会被转成 diff。当命令匹配到明确无误的破坏性特征(rm -rf、chmod 777、git reset --hard、git checkout .、git clean -f、curl … | sh、mkfs、dd of=、shred)时,这类卡片会获得一个小小的警告标签——这是对命令文本的标注,绝不是对变更的断言。

该卡片标记为 bash edit,并带有一条脚注:从 bash 命令解析出的预期变更——不是编辑/MCP 工具的结果。客户端只能看到命令文本及其输出(无法访问文件系统),因此 diff 是脚本声称要做的事,完整的命令和输出尾部只需点击一下即可查看。动态路径($VAR、glob)以及不受支持的形态会被有意留作未渲染:漏掉一张卡片总好过渲染出一张错误的卡片。

打开文件链接

卡片显示的每一条路径——diff 头部、move_file 的目标路径、bash 变更的路径——都是一个链接:点击它会调用宿主的文件打开器(openFile),与原生工具行使用的是同一通道。宿主会针对会话工作区解析该路径(bash 路径则针对命令自身的工作目录),并在你的 IDE/编辑器中打开该文件。没有工作区上下文的路径(不寻常的宿主设置)会保持为纯文本,任何会解析到会话工作区之外的路径也是如此——从 bash 命令中解析出的绝对路径或 ~ 目标、.. 遍历、在工作区之外工作的 bash 调用。渲染出的内容绝不会触发打开任意宿主文件。

安装

从 npm 安装(预构建,推荐)
dsh plugin --profile web add dsh-mcp-diff

或从 GitHub 安装(安装时构建)
dsh plugin --profile web add github:Fakek0f3sT/dsh-mcp-diff

dsh plugin add 是一个 pnpm 转发器:它会把该包添加到你的 profile(~/.dsh/profiles/web),并且由于该插件声明了 dsh.bundle,会自动将其纳入 dsh.profile.bundles——无需手动接线。从 GitHub 安装时,lib/ 会就地构建(prepare 脚本);从 npm 安装时则直接提供预构建产物。

重要: DSH 仅在启动时加载其插件集——安装后,重启 dsh web 并刷新 GUI 页面。

检查该 bundle 是否已被提供:

curl -s http://127.0.0.1:3080/plugins/dsh-mcp-diff/client.js | head -c 80

从克隆仓库手动安装

git clone https://github.com/Fakek0f3sT/dsh-mcp-diff.git
cd dsh-mcp-diff && npm install && npm run build
cd ~/.dsh/profiles/web
npm install /path/to/dsh-mcp-diff

{
"dependencies": { "dsh-mcp-diff": "link:./node_modules/dsh-mcp-diff" },
"dsh": { "profile": { "bundles": [ "…", "dsh-mcp-diff" ] } }
}

为另一个 MCP 服务器进行配置
工具视图键是为服务器名称 filesystem 设置的。如果你的文件系统
MCP 服务器名称不同(即配置中的 serverName 字段),请编辑
src/client/index.tsx 中的键常量(MCP_TOOL_KEYS、MCP_MOVE_FILE_KEY、
MCP_CREATE_DIR_KEY —— 形如 mcp____… 的键)。edit / write 键也在那里
——如果你不想覆盖内置渲染器,请移除它们。

开发

npm install
npm run build
npm run test   # 通过 tsx 运行自检(bash-mutation、diff、path-containment)

兼容性

已在 DSH 0.1.1-rc.2 上测试。该插件仅导入平台模块(react、
ui-primitives、ui-slots、runtime/client)——未导入 ui-tool 内部实现。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群