在 DeepSeek Harness(DSH)Web 界面中,點擊文件路徑通常會被插件內部邏輯攔截,導致頁面跳轉而非打開本地文件。dsh-client-open-in-vscode 修改了這一行爲,通過攔截點擊事件並調用宿主側的 VS Code CLI,將文件在已匹配的 VS Code 窗口中打開。
插件簡介¶
這是一個由 quei4r 開發的 DSH 客戶端插件。它運行在 DSH Web Profile 的上下文中,利用 HTTP 請求與宿主進程通信,實現從瀏覽器 UI 到本地編輯器的跳轉。
安裝與啓用¶
安裝需要手動將包放入 Web Profile 的目錄,並修改配置文件。
- 複製插件包到 Web Profile 的 node_modules 目錄:
cp -r dsh-client-open-in-vscode ~/.dsh/profiles/web/node_modules/
- 編輯
~/.dsh/profiles/web/cordis.patch.yml,加入以下配置:
- insert:
- id: ui-open-in-vscode
name: dsh-client-open-in-vscode
- 重啓
dsh web。
注意:插件的 Host 半需要在啓動時註冊 HTTP 路由,僅刷新頁面不足以生效。
核心功能¶
插件主要攔截以下 UI 元素的點擊事件,並執行相應的打開邏輯:
- 捕獲範圍:捕獲工具卡片中的路徑、產物 chips、以及正文裏的文件提及鏈接。
- Edit/Write 行爲:點擊文件變更行(Edit/Write 等)的路徑時,會嘗試重建該次編輯的全文件 diff 並打開。插件通過
git apply的逆向邏輯,嘗試使用磁盤當前文件或 git HEAD 版本作爲基底重建全文。 - 多窗口路由:點擊文件時,系統會按以下順序匹配 VS Code 窗口:
- 按
remote authority過濾(優先連接到同一主機/本地的窗口); - 判斷文件的絕對路徑落在哪個已打開工作區文件夾內;
- 若存在多個匹配,優先選擇路徑最深的工作區窗口;
- 若都不匹配,回退到同 authority 的最近活躍窗口。
- 按
- 繞過機制:支持
Alt+點擊以繞過攔截,走產品原邏輯。 - 安全信任閘門:路由請求必須通過信任校驗,要求 Host 爲 loopback、
Sec-Fetch-Site爲 cross-site,且攜帶的Origin必須與 Host 一致。這防止了其他網站通過網頁藉機觸發本機 VS Code 打開文件。
典型用法¶
- 點擊打開文件:在聊天 UI 中點擊工具卡片或正文中的文件路徑,系統會自動在匹配的 VS Code 窗口中打開該文件。
- 查看變更 Diff:點擊 Edit/Write 行中的路徑,查看該次編輯生成的全文件差異對比。
- 查看原邏輯:按住
Alt鍵點擊文件路徑,可以查看產品原本的導航邏輯。
注意事項¶
- 環境要求:系統 PATH 中必須有
codeCLI,且宿主進程所在的桌面會話(X11/Wayland)允許拉起 GUI 窗口。 - 協議限制:插件不使用
vscode://file/...協議,避免在 DSH GUI 常跑在的 VS Code webview 環境中導致黑屏。 - 兼容性:該插件隨
@deepseek-ai/dsh0.1.0-rc.6 的 web profile 測試通過。 - 臨時文件:用於 Diff 對比的臨時文件會在 10 分鐘後自動清理。
- 源碼審查:插件以當前 DSH 進程權限運行,建議在安裝前檢查源碼與許可證。
總結¶
該插件解決了 DSH Web 界面與本地 VS Code 工作流割裂的問題。通過精確的路由匹配和信任閘門設計,它能在不破壞現有 UI 交互的前提下,實現文件在本地編輯器的無縫跳轉。更多細節可參考 GitHub 倉庫 或 DSH 生態目錄。