前言¶
在 Windows 上使用 DeepSeek Harness(DSH)時,工作區默認只能選 C:\、D:\ 等 Windows 路徑。項目若在 WSL 的 Linux 文件系統上,「添加工作區」沒有瀏覽 WSL 的入口;即便手動把 \\wsl.localhost\<發行版>\... 填成工作區,側欄終端仍會是 PowerShell,agent 在 9P 共享上寫入還會報 ENOTSUP 或 GetFileSecurityW EIO。下面介紹社區插件 dsh-wsl-folder(維護者 LyuYuxin),它在不改變 DSH「一切皆插件」的前提下,把添加工作區、側欄終端和文件讀寫接到 WSL 上。
這是什麼¶
dsh-wsl-folder 是 DSH 的客戶端類插件,當前 npm 版本 1.1.1,要求 DSH >= 0.2.1-rc.3,適用於 Windows 上的 Desktop 與 dsh web。它不會把 agent 的 shell 搬到 Linux 側,而是在現有架構上補 WSL:從側欄「添加工作區」選 WSL 目錄、在該工作區裏把側欄終端開在對應發行版、並讓 agent 的寫入/編輯工具在 \\wsl.localhost 上可用。
- 目錄頁:https://www.skillhub.cn/plugins/LyuYuxin/dsh-wsl-folder
- 源碼與說明:https://github.com/LyuYuxin/dsh-wsl-folder
- 許可證:MIT
核心功能¶
添加工作區:Windows 與 WSL 兩種來源¶
點工作區標題欄的「+」(或新會話頁的「添加工作區」),彈窗先問文件夾在哪裏:選 Windows 文件夾 走 DSH 原生的系統選擇器;選 WSL 文件夾 打開發行版目錄瀏覽器。下方有最近用過的 WSL 位置,可一鍵重新添加。
WSL 目錄瀏覽器¶
在對話框裏用右上角下拉切換髮行版(默認 WSL 默認發行版),從該發行版默認用戶主目錄起瀏覽;可點麪包屑回上級、用鉛筆圖標直接輸入 Linux 路徑並回車、切換「顯示隱藏文件」。點「打開」後,Linux 目錄註冊爲 \\wsl.localhost\<發行版>\...。若目錄在 /mnt/<盤符>/...(WSL 掛載的 Windows 盤,\\wsl.localhost 共享讀不了),則註冊爲真實 Windows 路徑(例如 /mnt/d/proj → D:\proj),並記住來源發行版。
側欄終端開在發行版內¶
在該 WSL 工作區打開側欄終端時,運行 wsl.exe -d <發行版> --cd <Linux 路徑>,起始目錄即工作區,標籤爲 WSL · <發行版>。Windows 工作區與 agent 自行啓動的終端不受影響。發行版停止時,第一次打開可能稍等;插件在彈出第一個對話框時會在後臺喚醒發行版。
Agent 讀寫與路徑修復¶
DSH 自帶工具在 \\wsl.localhost 上新建/修改文件會失敗;插件對共享路徑改用共享支持的發佈方式,版本校驗、不覆蓋他人新建文件、原子替換等語義保持不變。少數組件會把 UNC 路徑開頭的分隔符弄丟,導致讀 AGENTS.md 等報 C:\wsl.localhost\... 不存在;插件可通過配置開啓路徑修復(見下文)。要跑 Linux 命令時,可讓 agent 調用 wsl.exe -e <命令>,或直接在側欄終端操作。
性能與界面¶
發行版列表讀註冊表,主目錄從 /etc/wsl.conf 與 /etc/passwd 解析,目錄列表走 \\wsl.localhost 共享,熱路徑上不反覆調用 wsl.exe。對話框沿用 DSH Modal 與 --dsw-* 主題變量,深淺色與皮膚跟隨 DSH。
環境與要求¶
- Windows 10/11,已安裝 WSL(推薦 WSL2)。
- DeepSeek Harness
>= 0.2.1-rc.3(Desktop 或dsh web)。 - WSL 發行版內無需額外安裝插件依賴。
安裝與啓用¶
在 DSH「插件」頁面按包名 dsh-wsl-folder 安裝,或在終端執行:
dsh plugin --profile desktop add dsh-wsl-folder
也可從 GitHub 安裝(跟倉庫源碼,不經過 npm):
dsh plugin --profile desktop add github:LyuYuxin/dsh-wsl-folder
裝好後完全退出並重啓 DSH;側欄終端重定向需要在 Host 啓動時掛上。
配置¶
在 profile 的 cordis.patch.yml 裏可覆蓋插件行 config:
| 字段 | 默認 | 說明 |
|---|---|---|
terminal |
true |
WSL 工作區側欄終端是否開在發行版;false 時保持 Windows shell |
write |
true |
是否修復 agent 在 \\wsl.localhost 上的寫入/編輯;false 時保持 DSH 原樣 |
paths |
true |
是否修復丟失開頭分隔符的 WSL 路徑;false 時關閉相關修復與進程級 fs 補丁 |
remote |
false |
是否允許非本機客戶端調用插件 Host 路由;默認僅迴環地址 |
示例:關閉 WSL 側欄終端:
- id: dsh-wsl-folder
name: 'dsh-wsl-folder'
config:
terminal: false
典型用法¶
- 重啓 DSH 後,點側欄「+」→ 選 WSL 文件夾。
- 選擇發行版,瀏覽或輸入目標 Linux 目錄 → 打開。
- 在該工作區打開側欄終端,確認 shell 在發行版內、
cwd爲 Linux 路徑。 - 讓 agent 編輯工作區內的文件;若需跑 Linux 工具鏈,在側欄終端執行,或通過
wsl.exe -e調用。
在插件之外用 DSH 自帶選擇器添加的 Windows 目錄不會被插件記錄,其終端仍是 Windows shell。
適用場景與注意¶
適合:在 Windows 上主要用 DSH Desktop 或 dsh web,項目代碼在 WSL Linux 文件系統或 /mnt 掛載盤上,希望工作區、側欄終端與 agent 寫文件行爲一致落在 WSL/共享語義上。
已知限制(來自上游 README):
- Agent 的 shell 與文件工具仍在 Windows 側,Linux 目錄經
\\wsl.localhost訪問,速度低於原生 Linux。 - WSL 共享上新建文件不是嚴格原子;部分無讀權限目錄用發行版內
find列出,每次約 1–3 秒。 - WSL 工作區側欄終端默認總在 WSL 裏;需要 Windows shell 時將
terminal設爲false。 - 功能依賴 DSH 內部
TerminalController、LocalFileSystem等接口;DSH 大版本變更時,終端重定向或寫入修復可能退回原樣,添加 WSL 工作區仍可用。
插件以當前 DSH 進程權限運行。安裝前建議在 GitHub 查看源碼與 MIT 許可證;社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-wsl-folder 把「添加工作區」接到 WSL 瀏覽、側欄終端與共享寫入三處缺口,適合在 Windows 上用 DSH 開發 WSL 內項目的場景。更多信息見 SkillHub 目錄頁 與 GitHub 倉庫。