DeepSeek Harness Hub
← 返回列表

桌面托盘版RENIE-ROBIN/deepseek-harness-desktop

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

把网页界面封装成桌面应用,关窗后驻留托盘随时唤出

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/14 · 已提供中文文档

#dsh DeepSeek Harness 桌面版:Electron Forge 封装,关窗驻留托盘,一键安装(Windows / macOS / Linux)

综合分
27.4
GitHub 分
27.4
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add RENIE-ROBIN/deepseek-harness-desktop
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis-plugin-group@deepseek-ai/dsh@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-bash-local@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-compaction@deepseek-ai/dsh-fs@deepseek-ai/dsh-invariants@deepseek-ai/dsh-output-retention@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-scope
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DeepSeek Harness 桌面版

English ·

用 Electron Forge 把 deepseek-ai/deepseek-harness
的 Web 界面(dsh web)封装成桌面应用:

- ✅ 无需终端:点击图标自动启动 DeepSeek Harness 并打开界面
- ✅ 托盘驻留:关闭窗口后驻留系统托盘(Windows)/ 菜单栏(macOS),点击托盘图标即可恢复窗口
- ✅ 一键安装:clone 后运行 ./install.sh(macOS 装到 /Applications;Windows 装到 %LOCALAPPDATA%\Programs\DeepSeekHarness 并创建开始菜单/桌面快捷方式)
- ✅ 自带 Harness:应用捆绑 @deepseek-ai/dsh,不依赖全局安装;若本机 3080 端口已有 Harness 在跑,则直接复用(不重复启动)

直接下载

Windows 用户最简单的方式:从 Releases
页面下载 DeepSeekHarness-Setup-1.0.0.exe 安装包,无需 clone、无需编译。

环境要求

- Node.js >= 22(含 npm)——仅从源码构建时需要
- Windows 10/11、macOS 或 Linux

安装

Windows(原生 PowerShell,推荐)

\\\powershell
git clone https://github.com/RENIE-ROBIN/deepseek-harness-desktop.git dsh-desktop
cd dsh-desktop
.\install.ps1
\\\

macOS / Linux(或 Windows 上的 Git Bash)

\\\bash
git clone https://github.com/RENIE-ROBIN/deepseek-harness-desktop.git dsh-desktop
cd dsh-desktop
./install.sh
\\\

macOS 上应用会安装到 /Applications/DeepSeek Harness.app;
Windows 上开始菜单和桌面会出现 DeepSeek Harness 图标。

💡 如果网络无法访问 github.com,安装脚本会自动改用 npmmirror 镜像下载 Electron 二进制。

使用

1. 点击 DeepSeek Harness 图标 → 自动启动(或复用已有的)Harness 并打开界面
2. 点击窗口 关闭按钮 → 窗口隐藏,应用驻留托盘/菜单栏,Harness 保持运行
3. 托盘图标操作:
- 单击(Windows)/ 双击 → 重新打开窗口
- 打开 DeepSeek Harness → 显示窗口
- 重启 Harness 服务 → 结束并重新启动后台服务
- 打开日志目录 → 查看 desktop.log / harness.log
- 退出 → 完全退出(只结束它自己启动的 Harness 进程,不影响外部实例)

卸载

Windows:powershell .\uninstall.ps1
macOS:把 /Applications/DeepSeek Harness.app 拖入废纸篓。

工作原理

\\\
点击图标
│
├─ 探测 http://127.0.0.1:3080 ── 已是 Harness?── 是 → 直接加载(attach 模式)
│                                              └─ 否 → 启动自带副本
│                                    dsh web --port 3080(端口空闲)
│                                    dsh web --port 0  (端口被占,自动分配)
│                                    用 ELECTRON_RUN_AS_NODE=1 让 Electron 二进制当 Node 运行
│                                    node_modules/@deepseek-ai/dsh/lib/bin.js
│
├─ 解析启动输出 "dsh web: http://127.0.0.1:",等待 HTTP 就绪
├─ BrowserWindow 加载该 URL(先显示本地 loading 页)
└─ 关窗 → 隐藏;托盘菜单"退出" → 结束 Harness 子进程后退出
\\\

打包时 node_modules 整体解包出 asar(app.asar.unpacked),
这样子进程能在真实磁盘路径上解析捆绑的依赖树,无需用户预装 dsh。

打包要点:

- 子进程带 --expose-internals 启动:cordis loader 借此拿到 Node 内部 ESM
loader,才能从 $DSH_HOME/profiles/node_modules 解析本地插件;
- packagerConfig.afterComplete 钩子(scripts/restore-dotfiles.js)会把
node_modules 里的点文件(如 pi-ai 的 .manifest.json)补回解包树——
electron-packager 复制时会丢弃它们;
- harness 运行时闭包里的 peer 依赖已在 package.json 显式声明(flora-colossus
的 prune 只沿 dependencies 走,自动安装的 peer 会被误删)。

环境变量(可选)

| 变量 | 作用 |
|---|---|
| DSH_BIN | 指定 lib/bin.js 的绝对路径(优先于捆绑副本) |
| DSH_DESKTOP_PORT | 自定义探测/启动端口(默认 3080) |
| DSH_DESKTOP_EXTRA_ARGS | 追加传给 dsh web 的额外参数(如 --host 127.0.0.1) |
| DSH_DESKTOP_HEADLESS=1 | 冒烟测试模式:无托盘,就绪后打印状态并退出 |

开发

\\\bash
npm install          # 安装依赖
npm start            # 开发模式运行
npm run package      # 打包当前平台
npm run make         # 生成安装包(Squirrel Setup.exe + zip)
npm run icons        # 重新生成图标(assets/)
\\\

目录结构

\\\
dsh-desktop/
├── src/
│   ├── main.js        # 应用入口:窗口、托盘、菜单、生命周期
│   ├── harness.js     # Harness 探测/启动/就绪等待/进程清理
│   └── loading.html   # 启动加载页
├── assets/            # 图标(icon.png/ico/icns、托盘图标)+ 横幅
├── scripts/generate-icons.mjs / generate-banner.mjs
├── install.sh / install.ps1 / uninstall.ps1
└── forge.config.js    # Electron Forge 配置(Windows: Squirrel;macOS: DMG)
\\\

常见问题

- 双击图标后窗口一闪而过:托盘里可能已有实例(应用是单实例,第二次启动会聚焦已有窗口)。
- 提示"找不到 DeepSeek Harness CLI":重新运行安装脚本;或设置 DSH_BIN。
- 端口 3080 被其他程序占用:应用会自动改用随机端口(托盘提示会显示实际 URL)。
- npm install 后 Electron 二进制缺失(github.com 不可达):安装脚本会自动用 npmmirror 镜像补装;也可手动执行
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ node node_modules/electron/install.js
- 首次启动较慢:第一次运行需要初始化 web profile 与插件,属正常现象。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群