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 仓库。

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

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

小夜