修复桌面端无法用 VS Code 打开文件的问题
31.6/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yanli-nyan/dsh-open-in-app-fix该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 取源不可用(Error: github tarball HTTP 404 @ https:
- · api.github.com
- · repos
- · yanli-nyan
- · dsh-open-in-app-fix
- · tarball)
扫描于 2026/11/3(0 天前)
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
解决dsh无法启动vscode
README
由 DeepSeek 最新模型翻译生成应用内打开修复 · dsh-open-in-app-fix
应用内打开修复
| 项目 | 内容 |
| 界面显示名 | 应用内打开修复(locale/zh.json) |
| 包名 | @local/dsh-open-in-app-fix |
| 版本 | 1.1.0 |
| 形态 | DSH 宿主(Node 侧) 插件,无浏览器半边 |
| 是否需要皮肤 | 不需要,与皮肤、与工作区树都无关 |
| 是否改 app.asar | 不改 |
简体中文 · English
这是什么
修复 DSH 桌面端「用其它应用打开 / Open in …」启动编辑器失败的问题。
典型症状:点「Open in Visual Studio Code」弹「打开失败,请重试」,请求返回 HTTP 502:
{ "code": "launch-failed", "message": "failed to launch vscode" }
只影响直接启动可执行文件的项(编辑器、终端);走系统 open 动词的「在资源管理器中显示」不受影响。
为什么
桌面壳为了让打包进 app.asar 的运行时以 Node 解释器运行,是以 ELECTRON_RUN_AS_NODE=1 启动宿主进程的。
展开完整文档(README 剩余 1 节)
应用内打开修复 · dsh-open-in-app-fix
应用内打开修复
| 项目 | 内容 |
| 界面显示名 | 应用内打开修复(locale/zh.json) |
| 包名 | @local/dsh-open-in-app-fix |
| 版本 | 1.1.0 |
| 形态 | DSH 宿主(Node 侧) 插件,无浏览器半边 |
| 是否需要皮肤 | 不需要,与皮肤、与工作区树都无关 |
| 是否改 app.asar | 不改 |
简体中文 · English
这是什么
修复 DSH 桌面端「用其它应用打开 / Open in …」启动编辑器失败的问题。
典型症状:点「Open in Visual Studio Code」弹「打开失败,请重试」,请求返回 HTTP 502:
{ "code": "launch-failed", "message": "failed to launch vscode" }
只影响直接启动可执行文件的项(编辑器、终端);走系统 open 动词的「在资源管理器中显示」不受影响。
为什么
桌面壳为了让打包进 app.asar 的运行时以 Node 解释器运行,是以 ELECTRON_RUN_AS_NODE=1 启动宿主进程的。
该变量留在进程环境里,而 open-in-app 启动子进程时直接展开环境清洗结果:
env: { ...scrubbedParentEnv(), ...options.env }
scrubbedParentEnv(来自 @deepseek-ai/dsh-subprocess)只过滤 /KEY|PASSWORD|SECRET|TOKEN/i 与 DSH_ 前缀, 不处理 ELECTRON_RUN_AS_NODE,于是它原样传给了编辑器。
编辑器(自身也是 Electron 二进制)带着这个变量启动时,会把自己当成 Node 解释器、把目录参数当成脚本来执行,并在 launchWatchMs(默认 1000ms)内以非零码退出 —— 请求随即落到 502。
怎么做
插件用 Node 的模块钩子 module.registerHooks,把 open-in-app 这一个包发出的那一句 @deepseek-ai/dsh-subprocess 导入,替换成一层包装:
export * from "<subprocess 的 file URL>";
import { scrubbedParentEnv as raw } from "<subprocess 的 file URL>";
export const scrubbedParentEnv = () => {
const environment = raw();
delete environment.ELECTRON_RUN_AS_NODE; // 唯一改动 return environment; };
要点:
- export * 转发原包全部导出,只覆盖同名的那一个;
- raw() 仍是官方实现,上游的清洗规则一条都没绕过;
- 只拦截 parentURL 落在 open-in-app 包目录下的导入,因此宿主自己的子进程/终端启动器(它们需要这个变量才能以 Node 模式运行)完全不受影响;
- options.env 里显式声明的变量(例如某些 catalog 条目专门要求的 ELECTRON_RUN_AS_NODE)合并在后,仍然保留 —— 继承来的删掉,显式声明的留着。
随包的 cordis.patch.yml 先禁用官方条目:
- id: open-in-app
disabled: true
- insert:
- id: open-in-app-fix
name: '@local/dsh-open-in-app-fix'
config:
probeTimeoutMs: 10000
iconTimeoutMs: 10000
launchWatchMs: 1000
模块钩子只能影响尚未开始加载的模块,所以官方条目必须先被禁用;随后本插件自己导入官方模块,并原样转发它的 name / inject / Config / apply,功能与官方完全一致。
注意
- 这是顺序敏感的:官方条目必须在钩子注册之前不被导入,因此 disabled: true 不能删。
- 若官方包不再导入 @deepseek-ai/dsh-subprocess,包装会变成空转,502 会回归;升级 DSH 后如果问题复现,请先核对官方包的导入点。
- 本插件从不写 app.asar,所以应用升级不会把它冲掉,卸载也不需要还原文件。
安装
DSH 桌面端 → 左侧栏「插件」→ 安装,填以下任一绝对路径:
<本仓库克隆目录>\dsh-open-in-app-fix # 目录路径,按 link: 装 <本仓库克隆目录>\build\local-dsh-open-in-app-fix-1.1.0.tgz # 打包产物(build/ 不入库) <下载的 local-dsh-open-in-app-fix-1.1.0.tgz> # 或从 Release 下载后填其绝对路径
两种方式等价:目录装便于本地改完即时生效,tarball 装便于分发固定版本。
装完完全退出并重新启动 DSH。
若此前用过改写 app.asar 的旧方案,建议先还原归档再装本插件,避免同一条链路被修两遍。
验证
1. 在工作区点「Open in Visual Studio Code」,编辑器应正常打开该目录;
2. DevTools → Network 中该 POST 应返回 200 { ok: true } 而非 502;
3. 顺带试 Cursor、Windows Terminal、「在资源管理器中显示」交叉确认无回归。
卸载
插件页移除本插件(或删掉 patch 里的 disabled 与 insert)并重启。
官方条目恢复启用,功能回到官方原样。无需还原任何文件。
文件说明
| 文件 | 作用 |
| index.js | 全部逻辑:锚点探测 → 注册模块钩子 → 加载并转发官方插件 |
| cordis.patch.yml | 禁用官方条目 + 插入本插件(含三项超时配置) |
| locale/zh.json、locale/en.json | 界面显示名与说明 |
| icon.png | 插件图标(512×512 PNG) |
| README.md | 本文件(中文,默认) |
| README.en.md | 英文版说明 |
详细说明
本文件是「能装、能用」的简要版。为什么不能靠改 app.asar、模块钩子怎么接管官方插件、超时与降级路径的取值依据、以及逐条验证记录,都在:
- docs/详细说明.md(仓库内)
- 在线读:https://github.com/yanli-nyan/dsh-open-in-app-fix/blob/main/docs/详细说明.md
版本
| 版本 | 变更 |
| 1.1.0 | 加入中文显示名(应用内打开修复)、中文说明与 icon.png 图标;README.md 由英文改为中文;另附英文版 README.en.md |
| 1.0.0 | 首版:模块钩子方案 |预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yanli-nyan/dsh-open-in-app-fix
修复桌面端无法用 VS Code 打开文件的问题
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目