前言¶
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 为空对象,无额外配置字段需填写。
典型用法¶
- 打开任意 DSH 会话(其工作目录即为要打开的目标路径)。
- 在会话头部右上角找到「打开方式」左侧的 VS Code 图标按钮。
- 单击后,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 仓库。