前言¶
DeepSeek Harness(DSH)通常提供 dsh CLI 与 Web UI 两种使用方式。对于已经安装 DSH 的开发者来说,如果希望把官方 Web UI 放到桌面窗口中使用,同时不重新实现 DSH 自身的 agent 能力,就需要一个原生桌面套壳。dsh-gui 做的就是在 Electron 原生窗口里加载 dsh 官方 Web UI,并支持作为 dsh 插件安装、维护和卸载。
这是什么¶
dsh-gui 由 Aaaaamadeus 维护,许可证为 MIT,仓库地址为:
https://github.com/Aaaaamadeus/dsh-gui
它的定位是 DeepSeek Harness(dsh)的 native desktop web-shell,可以作为 dsh profile bundle 插件安装,并自动创建、刷新桌面快捷方式。
核心功能¶
下面介绍几项已核实的核心能力。
- 窗口内加载
dsh官方 Web UI;官方前端或内核更新后,无需改动本壳。 - 可以作为
dsh插件安装,接入webprofile 的 bundle。 - 每次
dshprofile 启动时,幂等刷新桌面快捷方式,支持图标与隐藏控制台启动。 - 只依赖
dsh的host-apiproxy线协议,不 import 任何@deepseek-ai/*包。 - 渲染侧采用
contextIsolation + sandbox沙箱模式;外链交给系统默认浏览器。 - 支持 main 进程插件、RPC 权限声明、
dshgui-plugin://资产协议、原生模式内置 UI 插件。
安装与启用¶
前置要求:已安装 dsh CLI 与 pnpm。
下面先安装为 web profile 的 bundle 插件。
dsh plugin --profile web add "github:Aaaaamadeus/dsh-gui"
再启动一次 dsh web,用于执行插件并自动创建桌面快捷方式。
dsh web
卸载插件时使用下面的命令。
dsh plugin --profile web remove dsh-gui
如果需要从源码安装,先获取仓库并安装依赖。
git clone https://github.com/Aaaaamadeus/dsh-gui
cd dsh-gui && npm install --ignore-scripts
再补 Electron 运行时,并安装为 dsh 插件。
node node_modules\electron\install.js
scripts\install-as-dsh-plugin.cmd
如果不安装为插件,也可以直接启动。
dsh-gui.cmd
pnpm 会拦截 Electron 二进制后置下载;首次启动时会自动补齐 Electron 运行时。需要使用镜像时,设置下面环境变量。
set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
典型用法¶
常见流程是:
- 安装插件:
dsh plugin --profile web add "github:Aaaaamadeus/dsh-gui"
- 启动一次
dsh web:
dsh web
- 之后使用已创建的桌面快捷方式启动;每次
dshprofile 启动时,快捷方式会幂等刷新。 - 卸载插件:
dsh plugin --profile web remove dsh-gui
适用场景与注意¶
适合已经使用 dsh,并希望把官方 Web UI 放到桌面窗口中的开发者。使用前注意以下几点:
dsh仍是开发者预览版,未来可能有破坏性变更;协议修复集中在src/kernel/。- 开发验证环境为:
DeepSeek Harness 0.1.0-rc.5 / 0.1.0-rc.6
Windows
Node.js ≥ 20
Electron 37
- renderer 插件运行在沙箱里,只能通过白名单 API 调用 manifest 已声明的 RPC:
window.dsh / DSHGUI
- main 插件与
dsh插件同信任级,可注册本插件命名空间 IPC:
ctx.ipc.handle(channel, fn)
- 插件会作为
dshprofile bundle 被启用,并且以当前dsh进程权限运行;安装前应检查源码、许可证与依赖。 - 本项目不包含 DeepSeek Harness 代码;
dsh及其生态的许可见各自仓库。
结尾¶
dsh-gui 的价值在于保留 dsh 官方 Web UI 与内核,同时提供桌面窗口、插件安装和快捷方式维护。仓库地址:
https://github.com/Aaaaamadeus/dsh-gui