mingxuanzi/dsh-plugins--packages-dsh-open-in-app ↗★ 0

@qwqweeo123/dsh-open-in-app

在外部编辑器或终端中打开工作区 修复了桌面端原生启动问题,适合需要一键在外部应用打开目录的用户。

套件
@qwqweeo123/dsh-open-in-app
相容性
待驗證
版本
1.0.0
授權
MIT
最近更新
2026年10月6日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:mingxuanzi/dsh-plugins#126a58c979292b7562cfcccb1943b76fdfda47fa&path:packages/dsh-open-in-app

dsh-open-in-app

The Session-header “Open In…” split button — open the workspace directory in an installed editor, Git GUI, terminal, or file manager.

English | 中文

Why this exists as a plugin

The desktop app already ships this feature (@deepseek-ai/dsh-host-open-in-app + its browser companion), so a fresh install shows the button. What a stock desktop build gets wrong is the launch:

GapWhat the user seesFix in this package
The Host process is the Electron binary in node mode, so children inherit ELECTRON_RUN_AS_NODE=1VS Code, Cursor, Windsurf, Zed boot as plain node, exit 1 inside the launch watch window — clicking does nothingindex.js deletes that variable before mounting the resolver (the framework's own env scrubber keeps it)
Git for Windows registers as “Git version …” while the catalog matches install records by display nameGit Bash can be missing from the menu (a default-path fallback still finds %ProgramFiles%\Git\git-bash.exe)the vendored host half carries the fixed record matching
Microsoft Store applications are 0-byte execution aliases under …\Microsoft\WindowsApps\Windows Terminal lists but fails to launch, or shows no iconthe vendored host half resolves the alias to the real package path

So the feature ships with the app, the fixes ship with the plugin — no app.asar patching, and an app upgrade cannot take them away.

Install

From the market: Settings → Plugin Market → Open In… → Install, then restart once (the Host half loads at boot).

Manually:

dsh plugin --profile desktop add dsh-open-in-app

The package replaces the built-in pair through its own bundle patch: it disables the shipped open-in-app / ui-open-in-app entries (both register the same routes and slot ids) and mounts its own copy. Removing the plugin restores them.

What is inside

index.js                     Host half: environment fix + mount the resolver
vendor/open-in-app-host.js   the app's own Host half (imports localized), with the fixes above
vendor/dsh-native-command.js, vendor/dsh-launch-environment.js, vendor/dsh-subprocess.js
                             the framework pieces it imports (the last is a documented
                             local stand-in for scrubbedParentEnv())
client.js                    the app's own browser half, registration id rewritten
cordis.patch.yml             bundle patch: disable the built-in pair, insert this package

The vendored files are the 0.2.0-rc.2 builds of MIT-licensed DSH code; see THIRD-PARTY.md.

Compatibility

  • Harness desktop app 0.2.0-rc.2. After a Harness upgrade, re-extract the vendored halves if slot names, route prefixes or Host service APIs changed (tools/vendor.mjs in the source repository).
  • Windows, macOS and Linux all resolve their own entries; the two fixes above are Windows-specific.

License

MIT © 2026 MingXuanZi. Vendored DeepSeek Harness code is MIT © DeepSeek — see THIRD-PARTY.md.