ReachGa0
dsh-desktop
Electron desktop shell for DeepSeek Harness (dsh web) — run the harness in a standalone window without a terminal or browser
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-desktop
English summary · An Electron desktop shell for DeepSeek Harness (dsh web) on Windows — double-click to run the harness in a standalone window. No terminal, no commands, no browser juggling. System tray support, floating reload button, configurable port. Full English docs: README.en.md
DeepSeek Harness 的 Electron 桌面壳:双击图标,一个独立窗口运行 dsh web —— 不用开终端、不用敲命令、不用切浏览器。
纯壳,不改动 dsh 本身。服务端复用全局安装的 @deepseek-ai/dsh。
✨ 特性
- 🪟 独立窗口:原生桌面窗口加载 Harness Web UI,可最小化到任务栏
- 🍱 系统托盘:关窗口最小化到托盘常驻,右键菜单可随时显示/退出
- 🧭 环境自动引导:首次启动自动检测 Node.js / dsh,缺失时引导一键安装,小白也能搞定
- 🧠 智能复用:检测到已有的 dsh 服务就直接复用,不重复启动
- 🧹 干净退出:关窗口只杀自己启动的 dsh 进程,绝不误杀外部服务
- 🔒 单实例锁:防止双开冲突
- 🎨 安全加固:
contextIsolation+sandbox+ 禁用 Node 集成,外部链接走系统浏览器 - 📦 一键安装包:
npm run dist生成 NSIS 安装程序
原理
- 启动时探测
127.0.0.1:3080是否已有 dsh 服务; - 没有 → 自动执行
dsh web --port 3080(日志在%APPDATA%/DeepSeek Harness Desktop/dsh.log); - 就绪后打开 Electron 窗口加载 Web UI;
- 关窗口 → 自动杀掉由本壳启动的 dsh 进程树(手动起的外部服务不会被误杀)。
前提
- Node.js ≥ 22(v24 验证通过)
- 全局安装 dsh:
npm i -g @deepseek-ai/dsh(0.1.0-rc.6 验证通过) - 如需覆盖 dsh 路径,设置环境变量
DSH_BIN(例如指向源码构建的apps/cli/src/bin.ts)
安装与运行
cd Desktop\deepseek_work\dsh-desktop
npm install
npm start
国内网络下 Electron 二进制下载可能很慢或失败,用镜像:
set "ELECTRON_MIRROR=https://cdn.npmmirror.com/binaries/electron/" npm install
换端口(3080 被占用时):
npm start -- --port 3081
首次打开后:设置 → 模型 → 填入 DeepSeek API Key,然后选择工作区即可使用。
截图
敬请期待 —— 欢迎提交你的界面截图(PR 或 Issue 均可)。
打包成安装程序
npm run dist
产物在 release/ 下:dsh-desktop-0.1.0-setup.exe(NSIS 安装包)。
自定义图标:放一个 assets/icon.ico(≥256×256),并在 package.json 的 build.win 里加 "icon": "assets/icon.ico"。
常见问题
- 启动失败弹窗:看
%APPDATA%/DeepSeek Harness Desktop/dsh.log;确认dsh --version可用。 - 端口被占:用
npm start -- --port <新端口>换一个端口即可。 - 改了 dsh 版本:重新
npm i -g @deepseek-ai/dsh即可,壳无需改动。
贡献
欢迎提 Issue 和 PR!项目很小,代码都在 src/ 里,容易上手。