前言¶
DSH 的插件方式里,Host 和 Client 插件通常用于 Web 端能力组合。第三方如果希望把扩展能力放到桌面环境里,还需要一个桌面宿主来承载 profile、扩展入口和连接器边界。
dsh-desktop-min 提供这样一个最小运行时:它在安全的 Electron 窗口中启动一个具备 Web 能力的 DSH profile,并为第三方桌面扩展提供最小所需的基础环境。
这是什么¶
dsh-desktop-min 是一个最小、产品中立、扩展优先的 DeepSeek Harness 桌面壳。
它核心不做以下能力:Agents、workspaces、产品 UI、embedded pages、tray menus、updates、custom chrome、notifications、remote hosting。这些能力属于独立的 DSH packages,可以按需提供 Host、Client 或 fully trusted Native entrypoints。
仓库地址是 https://github.com/wezoo-wb/dsh-desktop-min。package.json 中声明的版本为 0.1.1,author 字段为 dsh-desktop-min contributors,许可证为 MIT。
核心能力¶
桌面壳与扩展发现¶
- 在安全的 Electron 窗口中启动一个具备 Web 能力的 DSH profile。
- 为第三方桌面扩展提供最小运行时。
- 自动发现 profile 的 DSH bundles 中列出的 Native 扩展。
- 支持通过
--extension显式指定 Native 扩展包或目录。
Native 扩展能力¶
Native 入口可以:
- 注册 JSON capabilities,供 Host 和 Client 调用方使用;
- 注册可替换的 Host connector;
- 读取 Host contributions;
- 执行 Host commands;
- 观察或配置主窗口;
- 获取 background lifetime,用于 tray-style 扩展;
- 在包显式声明 full-trust 的前提下,使用完整 Electron API。
普通 Host 和 Client 插件不会获得 Node.js、raw Electron、raw IPC 或 BrowserWindow。
连接器与启动选项¶
源码启动支持以下选项:
--profile--devtools--extension--connector--connector-option--safe-mode
内置 local connector 支持 startupTimeoutMs,范围是 1,000 到 600,000 毫秒,默认值为 60,000 毫秒。
安装与启用¶
终端用户从 GitHub Releases 安装对应平台产物,然后正常启动应用。已安装应用不需要 Node.js 或包管理器。
该仓库是应用源码,不作为 npm launcher 发布。现有 DSH profile 组合仍由官方 dsh CLI 负责。
源码运行与示例¶
源码环境要求 Node ^22.19.0 || >=24.0.0。项目是 pnpm-only 项目,Corepack 会选用仓库声明的 pnpm@11.7.0。
安装依赖并执行检查:
corepack pnpm install --frozen-lockfile
corepack pnpm run check
源码启动示例:
corepack pnpm start -- --profile web
corepack pnpm start -- --profile my-profile --devtools
corepack pnpm start -- --profile my-profile --extension @acme/desktop-native
corepack pnpm start -- --profile my-profile --connector @acme/remote --connector-option endpoint=wss://host.example
corepack pnpm start -- --profile my-profile --connector-option startupTimeoutMs=180000
corepack pnpm start -- --profile my-profile --safe-mode
开发运行和内置示例:
corepack pnpm run dev -- --profile web
corepack pnpm run example -- --profile web
适用场景与注意¶
适合需要在 DSH 桌面壳中承载第三方桌面扩展、并希望核心保持较小的场景。
如果目标是 Agents、workspaces、产品 UI、embedded pages、tray menus、updates、custom chrome、notifications 或 remote hosting,应使用对应的独立 DSH packages。
使用 Native 扩展时需要特别注意:
- Native 入口是本地代码,信任影响与应用本身相同。
- 启用 full-trust Native 能力前,应检查扩展源码、full-trust 声明和许可证。
- remote connector 必须返回 trusted loopback Client URL,通常通过 local proxy 或 tunnel 实现。
- core 不会把 preload 授予任意 remote page。