DeepSeek Harness Hub
← 返回列表

桌面托盘启动器Evan1u/deepseek-harness-desktop

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

双击即启本地服务,托盘图标实时反映忙碌状态

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

# 轻量级 Deepseek Harness 桌面应用

综合分
28.5
GitHub 分
28.5
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Evan1u/deepseek-harness-desktop
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

🐋 DeepSeek Harness — 桌面版

一个 DeepSeek Harness 的原生 macOS 桌面外壳 —— 双击即用,无需终端。

version
platform
license
stars

English ·

✨ 这是什么

DeepSeek Harness 很强,但启动它得打开终端敲 dsh web。这个 App 用一个轻量 Electron 外壳把它包了起来——双击后,它会启动 dsh --profile web --no-open --port 0,等待本地 URL,然后在原生窗口里渲染完全相同的 Web GUI。所有 web 功能,零差异、零终端。

| 🖥️ 无需终端 | 🐋 灵动托盘 | 🎯 忙闲感知 | 🌗 深/浅自适应 | 🔄 自动更新 |
|:---:|:---:|:---:|:---:|:---:|
| 双击即用 | 两套图标可切换 | 图标反映真实负载 | 图标随系统切换 | GitHub Releases |

🐋 托盘图标 —— 活的、可切换

菜单栏图标不是一个静态图案,它会反映 DeepSeek Harness 正在做什么:

- 空闲 → 安静的静止图标;
- 工作 → 动态图标,速度跟随后端忙碌程度(运行中的会话数 + 任务数)。

右键图标可在两套风格间切换:

风格静止工作
🐟 Fish Swing (默认)静止鲸鱼摆动鲸鱼——工作越多摆得越快
🔮 Thinking Orb搜索球聆听球——点阵波纹球

两套风格都会自动适配深/浅色菜单栏,选择会在下次启动时记住。

🐟 Fish Swing
🔮 Thinking Orb

忙碌度 → 动画

| 忙碌度 | 状态 | 频率 |
| --- | --- | --- |
| 0 | 静止 | — |
| 1 | 轻 | 慢(约 1.8 秒/循环) |
| 2 | 中 | 中(约 1.2 秒/循环) |
| 3 | 重 | 快(约 0.8 秒/循环) |

忙碌度 = 运行中的会话数 + 运行中的任务数,实时读取自 harness 自身的事件流。

摆动幅度

右键菜单栏图标 → Swing Amplitude → 选一档:

| 档位 | Subtle | Default | Strong | Stronger | Strongest |
| --- | --- | --- | --- | --- | --- |
| 旋转 | 6° | 9° | 12° | 15° | 18° |

🚀 使用指南

双击 .app——或拖进「应用程序」。首次启动若被 Gatekeeper 拦截(未签名),右键 → 打开。

- 左键托盘图标 → 唤出窗口
- 右键 → Open / Quit / Icon Style / Swing Amplitude
- 红色关闭按钮 → 藏到托盘,App 在后台继续运行

🔧 工作原理

DeepSeek Harness.app
└─ Electron 主进程
├─ 定位 dsh(DSH_BIN 覆盖 → /opt/homebrew/bin/dsh → … → PATH)
├─ 启动:dsh --profile web --no-open --port 0
├─ 解析 stdout:"dsh web: http://127.0.0.1:"
├─ BrowserWindow.loadURL(那个 URL)
└─ 生命周期:退出时 SIGTERM · 后端崩溃弹重试对话框

后端绑定 127.0.0.1 的系统分配端口,/api 的 loopback 信任栅栏无需额外配置即可通过,也不存在固定端口冲突。

⚠️ 不要同时用另一个终端 dsh web 打开同一个会话——会话存储是单写者,两个活着的后端写同一份日志会损坏它(历史会报 corrupt session log: seq gap in committed region)。

📦 开发 / 打包

npm install          # 安装 electron + electron-builder
npm start            # 从源码运行
npm run pack         # 构建 .app(release/mac-arm64/DeepSeek Harness.app)
npm run dist         # 同时构建 .dmg 和 .zip

产物输出到 release/。若钥匙串里有 Developer ID Application 证书,electron-builder 会自动签名;否则保持未签名,供本地使用。

🔏 签名与公证(消除 Gatekeeper)

签名 + 公证需要 Apple Developer Program 会员与 Developer ID 证书。工具链与构建配置都已就绪——你只需提供凭证。

一次性设置

1. 加入 Apple Developer Program(付费)。
2. 创建 Developer ID Application 证书:Xcode → Settings → Accounts → Manage Certificates → + → Developer ID Application。用 security find-identity -v -p codesigning 验证。
3. 创建 App Store Connect API key(Developer 角色):App Store Connect → Users and Access → Integrations → App Store Connect API → Team Keys → 生成 → 下载 .p8 → 记下 Key ID 与 Issuer ID。

构建 + 公证

npm run pack    # 证书装好后会自动签名

APPLE_API_KEY_PATH=~/.appstoreconnect/AuthKey_XXXXXX.p8 \
APPLE_API_KEY_ID=XXXXXXXXXX \
APPLE_API_ISSUER_ID=00000000-0000-0000-0000-000000000000 \
./scripts/notarize.sh

🔄 自动更新(GitHub Releases)

App 启动时(之后每小时)自动检查更新,发现新版本会提示 Restart now。用 GitHub token 发布新版本:

GH_TOKEN=github_pat_xxx ./scripts/publish.sh

注:macOS 自动更新在签名后的 App 上最可靠;未签名的个人构建是尽力而为。

⚙️ 配置

| 变量 | 用途 |
| --- | --- |
| DSH_BIN | dsh 可执行文件的绝对路径(默认 /opt/homebrew/bin/dsh)。 |
| DSH_HOME | 从环境继承;与 CLI 共用 ~/.dsh 的 profiles、凭据与会话。 |

🗺️ 路线图

- [x] v0.1 —— Electron 外壳包裹 dsh web(完整 web 功能对等)
- [x] 跟随系统明暗切换的 Dock 图标
- [x] 忙闲感知的动态托盘 + 关窗后台常驻
- [x] 两套可切换的托盘图标风格(Fish Swing / Thinking Orb)
- [x] 自动更新(GitHub Releases)
- [ ] 签名 + 公证——配置就绪,待 Apple Developer 凭证
- [ ] 原生 IPC 传输——通过 file:// 加载 dist,借 window.__DSH_TRANSPORT__ 把 /api 走 ipcRenderer

为 DeepSeek Harness 社区用心打造。

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

💬 加入 DPharness 群聊

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

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