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。