前言¶
DeepSeek Harness (DSH) 的 Web 界面在处理文件变更时,通常只对内置的 edit 和 write 工具展示 Diff 视图。当智能体通过 @modelcontextprotocol/server-filesystem MCP 服务器,或者直接使用 Bash 命令修改文件时,聊天界面往往显示的是纯终端输出或通用块,缺乏直观的变更预览。
fakek0f3st/dsh-mcp-diff 插件旨在解决这一问题。它统一了不同来源的文件变更展示方式,将可解析的文件操作转化为结构化的 Diff 卡片。
插件介绍¶
这是一个为 DeepSeek Harness (Web GUI) 提供的客户端插件,目前有 4 个 Star,由 Fakek0f3sT 维护,遵循 MIT 许可证。
该插件通过覆盖默认的渲染逻辑,将文件系统的变更(无论是通过 MCP 调用还是 Bash 命令)转化为统一的 Diff 卡片。默认情况下,这些卡片是折叠的,点击展开后可查看逐行的高亮变更(绿色代表新增,红色代表删除)。
核心功能¶
插件覆盖了多种文件操作场景:
- MCP 文件系统支持:覆盖
edit_file、write_file、move_file和create_directory。 - 内置工具统一:覆盖 DSH 的内置
edit和write工具,统一上下文块的处理,避免重复显示上下文行。 - Bash 命令解析:能够解析常见的文件变更 Bash 命令,包括:
- Heredoc 替换(
.replace()脚本)。 sed -i/perl -pi等行内编辑。cat > file <<EOF、tee、重定向(>、>>)等写入操作。
- Heredoc 替换(
- 卡片渲染:
- Diff 卡片默认折叠,标题显示路径及
+N -M变更统计。 move_file和create_directory渲染为紧凑的信息卡片。
- Diff 卡片默认折叠,标题显示路径及
- 交互性:卡片中显示的路径均为可点击链接,点击即可在 IDE 编辑器中打开对应文件。
安装与启用¶
通过官方 CLI 安装插件:
dsh plugin --profile web add dsh-mcp-diff
安装完成后,需要重启 dsh web 服务以加载插件集,随后刷新 Web GUI 页面即可生效。
使用与限制¶
该插件会尝试解析智能体发出的文件变更命令。对于它无法自信识别的 Bash 形状(如 chmod、ln、rsync、dd、git 状态变更等),插件会保留纯终端卡片,宁可漏掉也不要产生错误的渲染。
此外,对于动态路径($VAR)和通配符,以及不支持的形状,插件有意不进行渲染。这是为了确保展示的准确性。
对于明确的破坏性命令(如 rm -rf、chmod 777、git reset --hard 等),卡片会附带一个警告标签,提示该命令为破坏性操作。
兼容性与反馈¶
该插件在 DSH 0.1.1-rc.2 版本上测试通过。它仅依赖平台模块(React、UI primitives 等),不依赖 DSH 内部的 UI 工具内部结构。