DSH(DeepSeek Harness)的 Agent 默认工作在单一的工作目录下。当开发涉及多个独立 Git 仓库的项目时,Agent 需要在不同目录间切换,或者通过额外的工具来处理文件读写,这增加了会话管理的复杂度。
dsh-plugin-multi-root-workspace 插件解决了这个问题。它由 cherrchen 维护,将 DSH Workspace 的可写范围从单一的“主根”扩展为“主根 + N 个附加根”。Agent 可以直接访问这些目录,无需频繁切换上下文,也不需要学习新的工具。
核心能力¶
这个插件主要提供以下能力:
- 扩展 Workspace 可写范围:支持“一个主根 + N 个附加根”的配置模式,Agent 可以同时读写多个目录。
- 零学习成本:Agent 继续使用原生的
read/write/edit/bash工具,插件不新增任何workspace_*工具。 - 安全不降级:多根授权走内核级沙箱机制(macOS Seatbelt / Linux bwrap / Landlock),fs 与 bash/PTY 共享同一条安全边界。
- 不修改上游仓库:以 bundle patch 的方式替换上游包,属于 out-of-tree bundle。
- 多版本兼容:支持多 DSH 运行时版本,兼容范围从
0.1.5-rc.2至0.1.7-rc.2。 - 管理与 GUI:提供
/workspace-folders命令行管理工具,并在侧栏提供 Folders 面板。
安装与启用¶
在 DSH 运行时(web / Electron 桌面 / headless 均可)中,通过以下命令安装插件:
dsh plugin --profile web add @dsh-electron/dsh-plugin-multi-root-workspace
安装注意事项:
* 首次安装:插件包含一个原生依赖 koffi。首次执行上述命令时,需要回答 allowBuilds(允许构建),否则安装会因 [ERR_PNPM_IGNORED_BUILDS] 失败。
* 版本要求:DSH 运行时版本必须在支持清单内(0.1.5-rc.2 至 0.1.7-rc.2),否则插件无法启动。
安装完成后,启动 DSH,侧栏底部会出现 Folders 动作,或者直接在会话中输入命令进行管理。
使用方法¶
命令行管理¶
在会话中可以直接使用以下命令管理多根目录:
/workspace-folders # 列出主根与附加根
/workspace-folders add ~/code/another-repo # 添加一个附加根(无参数时打开系统目录选择器)
/workspace-folders alias 1 支付 # 给第 1 个附加根起别名
/workspace-folders remove 1 # 按序号或路径移除
/workspace-folders reveal 1 # 在文件管理器中显示该目录
GUI 管理面板¶
侧栏底部的 Folders 面板提供了图形化界面。面板列出主根与附加根,支持添加、移除、别名、复制路径以及在文件管理器中显示等操作。根目录状态会如实显示,如 missing(暂时不存在)或 redirected(符号链接指向变化)。
注意事项¶
- 平台限制:Windows 平台仅支持
fs写路径覆盖附加根,受限的 bash/PTY 不包含此功能。 - 配置校验:Misconfiguration(配置错误)一律响亮报错,插件不会静默降级。
- 开发要求:如果从源码构建或参与开发,需要 Node.js
^22.19.0 || >=24和 pnpm 11。