← 返回列表
未验证
把网页界面封装成桌面应用,关窗后驻留托盘随时唤出
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 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
扫码进群