dsh-open-with-vscode:在 DSH 會話裏一鍵用 VS Code 打開工作區

前言

DeepSeek Harness(DSH)桌面端會在會話頭部提供「打開方式」,方便把當前工作區交給本地編輯器或文件管理器。對習慣用 VS Code 做智能體開發的同行來說,點「用 VS Code 打開」卻常常毫無反應,接口側還會出現 HTTP 502。根因是宿主以 ELECTRON_RUN_AS_NODE=1 啓動時,內置 open-in-app 啓動子進程的環境並未剔除該變量,VS Code 同爲 Electron 應用,繼承後會誤把自己當 Node 解釋器而直接退出。社區在 deepseek-harness 討論 #8049 已有反饋,V0.2.1-rc.3 仍可復現。下面介紹維護者 faxble 發佈的客戶端插件 dsh-open-with-vscode:不改動內置實現,用獨立路由和按鈕繞開上述問題。

這是什麼

dsh-open-with-vscode(GitHub:faxble/dsh-open-with-vscode)是 DSH 的客戶端類插件,分類上屬於與會話 UI 交互的擴展。它解決一件事:在 VS Code 中打開當前會話的工作區目錄,並修復內置 open-in-app 因 ELECTRON_RUN_AS_NODE 泄漏導致的啓動失敗(launch-failed / HTTP 502)。

插件已在社區目錄 awesome-dsh-plugin 收錄,可在獨立插件市場站點檢索安裝;該目錄與 DeepSeek / 幻方無官方從屬關係,DSH 生態本身也遵循「一切皆插件」的擴展思路。

核心功能

經 README 覈實,插件具備以下能力:

  • 在會話頭部「打開方式」左側新增 VS Code 圖標按鈕(槽位 order: -20,位於內置 -10 之前)。
  • 點擊後在 VS Code 中打開當前會話工作區;切換會話時目標目錄隨 cwd 變化。
  • Host 端提供獨立 POST /open-in-vscode 路由,啓動前按大小寫不敏感剔除 ELECTRON_RUN_AS_NODE(先清繼承、後合顯式),與社區常見修法一致。
  • 不修改內置 open-in-app;經 Windows Job runner 執行的宿主命令(如 pwsh、grep)不受插件對環境清洗邏輯的影響。
  • 僅當會話存在工作目錄時顯示按鈕;啓動失敗會在按鈕下方給出錯誤提示。

安裝與啓用

插件市場

在插件市場中搜索 open-in-vscode 或 faxble/dsh-open-with-vscode 一鍵安裝即可。目錄頁:https://www.skillhub.cn/plugins/faxble/dsh-open-with-vscode。

命令行(npm / pnpm)

安裝時需指定當前使用的 DSH profile:

dsh plugin --profile <profile> add dsh-open-with-vscode

也可按包名安裝到項目依賴:

npm install dsh-open-with-vscode

或:

pnpm add dsh-open-with-vscode

手動安裝(本地開發)

從 DSH 插件管理頁安裝本倉庫目錄,並在 profile 的 patch 中插入:

- insert:
    - id: open-in-vscode
      name: dsh-open-with-vscode
      config: {}

插件以當前 DSH 進程權限運行;安裝前建議閱讀倉庫源碼與 MIT 許可證。package.json 中 config 爲空對象,無額外配置字段需填寫。

典型用法

  1. 打開任意 DSH 會話(其工作目錄即爲要打開的目標路徑)。
  2. 在會話頭部右上角找到「打開方式」左側的 VS Code 圖標按鈕。
  3. 單擊後,VS Code 應打開該工作區目錄。

若仍失敗,留意按鈕下方的錯誤提示,並對照 Host 是否能在本機定位到 Code.exe。

適用場景與注意

適合誰:在 Windows 上使用 DSH 桌面端、且主要用 VS Code 編輯當前會話工作區的開發者。

平臺:README 寫明當前僅適配 Windows(通過 LOCALAPPDATA、Program Files、App Paths 註冊表與 PATH 定位 Code.exe)。macOS / Linux 尚未適配。

版本:文檔以 DSH 桌面端 V0.2.1-rc.3(及仍攜帶 ELECTRON_RUN_AS_NODE 泄漏的版本)爲參照;插件 npm 版本爲 1.0.0。

與內置「打開方式」的差異:內置路徑在 VS Code 場景下會因環境變量問題返回 502;本插件固定 VS Code + 當前工作區,按鈕位置在「打開方式」左側,且不 patch 內置模塊。

內置 open-in-app dsh-open-with-vscode
VS Code 能否打開 502(ELECTRON_RUN_AS_NODE 泄漏) 正常打開
按鈕位置 會話頭部 「打開方式」左側
目標 需手動選擇應用 固定 VS Code + 當前工作區
是否修改內置 — 否,獨立路由

工作原理(簡要)

Host 端註冊 POST /open-in-vscode,帶與內置一致的認證與請求校驗,用清洗後的環境 detached 啓動 VS Code。Client 端向 conversation.session.header.utilities 註冊 UI,讀取會話 cwd 後請求該路由。細節見倉庫 README「工作原理」一節。

結尾

若你受困於 DSH 裏「用 VS Code 打開」無響應或 502,dsh-open-with-vscode 提供與會話綁定的獨立入口,在 Windows 上可直接驗證。更多信息見 SkillHub 目錄頁 與 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜