English summary · An Electron desktop shell for DeepSeek Harness (dsh web) on Windows — double-click to run the harness in a standalone window. Region screenshot to ask AI, system tray, session manager, auto environment setup. Full English docs: README.en.md
DeepSeek Harness 的 Electron 桌面壳:双击图标,一个独立窗口运行 dsh web —— 不用开终端、不用敲命令、不用切浏览器。
纯壳,不改动 dsh 本身。服务端复用全局安装的 @deepseek-ai/dsh。
- 📸 选区截图提问:一键截屏 → 全屏遮罩实时框选(GPU 加速、8 方向手柄微调)→ 自动粘贴到聊天框 → AI 直接看图回答;截图时自动隐藏聊天窗口
- 🗂️ 会话管理:
Alt → 文件 → 会话管理…列出所有会话,一键删除(永久清理聊天记录) - 🪟 独立窗口:原生桌面窗口加载 Harness Web UI,可最小化到任务栏
- 🍱 系统托盘:关窗口最小化到托盘常驻,右键菜单可随时显示/退出
- 🔄 便捷刷新:
F5/Ctrl+R/ 右下角悬浮按钮,加载新插件不用重启窗口 - 🧭 环境自动引导:首次启动自动检测 Node.js / dsh,缺失时引导一键安装,小白也能搞定
- 🔧 可换端口:
npm start -- --port 3081解决端口占用 - 🧠 智能复用:检测到已有的 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 进程树(手动起的外部服务不会被误杀)。
- 点右下角 📸(聊天窗口自动隐藏)
- 全屏遮罩上拖动框选区域(实时显示,画完可拖 8 个手柄微调)
- 点 ✔ 确定(或双击 / 回车)→ 聊天窗口恢复
- 截图自动进入聊天框 → 输入问题 → AI 看图回答
配合 ModLens 等识图插件,DeepSeek 文本模型也能看懂图片。
- 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,然后选择工作区即可使用。
npm run dist产物在 release/ 下:dsh-desktop-<版本>-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即可,壳无需改动。 - 截图没进聊天框:点一下输入框按
Ctrl+V(截图已在剪贴板)。 - 关闭窗口后应用还在:正常!它最小化到托盘了,右键托盘图标选"退出"。
欢迎提 Issue 和 PR!项目很小,代码都在 src/ 里,容易上手。