把网页界面封装成桌面应用,关窗后驻留托盘随时唤出
27.4/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add RENIE-ROBIN/deepseek-harness-desktop该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · ui
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/9/27) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
- 写入本地文件src/main.js:27
try { fs.appendFileSync(path.join(logDir, 'desktop.log'), line); } catch { } - 读取本地文件src/main.js:190
if (icon.isEmpty()) icon = nativeImage.createFromBuffer(fs.readFileSync(assetPath('tray.png'))); - 读取本地文件src/main.js:192
icon = nativeImage.createFromBuffer(fs.readFileSync(assetPath('tray.png'))); - 发起网络请求src/harness.js:14
const req = http.get(url, { timeout: timeoutMs }, (res) => { - 读取本地文件src/harness.js:69
if (unpacked && fs.existsSync(unpacked)) candidates.push(unpacked); - 读取本地文件src/harness.js:70
else if (fs.existsSync(bundled)) candidates.push(bundled); - 执行外部命令固定命令src/harness.js:72
const out = execFileSync('npm', ['root', '-g'], { - 读取本地文件src/harness.js:80
return candidates.find((c) => fs.existsSync(c)) || null; - 执行外部命令来自配置/变量src/harness.js:95
const child = spawn(process.execPath, args, { - 写入本地文件src/harness.js:107
try { logStream = fs.createWriteStream(logPath, { flags: 'a' }); } catch { } - 执行外部命令固定命令src/harness.js:167
execFileSync('taskkill', ['/PID', String(child.pid), '/T', '/F'], { stdio: 'ignore' });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 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 最新模型翻译生成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、无需编译。
展开完整文档(README 剩余 1 节)
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
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
RENIE-ROBIN/deepseek-harness-desktop
把网页界面封装成桌面应用,关窗后驻留托盘随时唤出
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目