🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

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

DeepSeek Harness
Evan1u63 天前有提交已提供中文文档扫描:含敏感能力

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

28.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Evan1u/deepseek-harness-desktop
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · desktop
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 63 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 17 处,展示前 14 条)
  • 读取本地文件
    main.js:43
    if (process.env.DSH_BIN && fs.existsSync(process.env.DSH_BIN)) {
  • 读取本地文件
    main.js:55
    if (fs.existsSync(candidate)) return candidate;
  • 读取本地文件
    main.js:92
    const parsed = JSON.parse(fs.readFileSync(backendRegistryPath(), 'utf8'));
  • 写入本地文件
    main.js:102
    fs.mkdirSync(dshHome(), { recursive: true });
  • 写入本地文件
    main.js:103
    fs.writeFileSync(backendRegistryPath(), JSON.stringify({ pid, url, startedAt: Date.now() }));
  • 删除本地文件
    main.js:113
    fs.rmSync(backendRegistryPath(), { force: true });
  • 执行外部命令来自配置/变量
    main.js:165
    child = spawn(bin, ['--profile', 'web', '--no-open', '--port', '0'], {
  • 读取本地文件
    main.js:310
    const image = nativeImage.createFromBuffer(fs.readFileSync(trayStaticIconPath()), { scaleFactor: 2 });
  • 读取本地文件
    main.js:374
    const img = nativeImage.createFromBuffer(fs.readFileSync(trayFramePath(amp, i)), { scaleFactor: 2 });
  • 读取本地文件
    main.js:531
    const s = JSON.parse(fs.readFileSync(settingsPath(), 'utf8'));
  • 写入本地文件
    main.js:544
    fs.mkdirSync(path.dirname(p), { recursive: true });
  • 写入本地文件
    main.js:552
    fs.writeFileSync(p, JSON.stringify(s, null, 2));
  • 写入本地文件
    main.js:578
    fs.mkdirSync(path.dirname(p), { recursive: true });
  • 写入本地文件
    main.js:586
    fs.writeFileSync(p, JSON.stringify(s, null, 2));
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 双击启动本地服务
  • 托盘图标显示忙碌状态

DeepSeek Harness 轻量桌面应用

README

由 DeepSeek 最新模型翻译生成
🐋 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 正在做什么: - 空闲 → 安静的静止图标; - 工作 → 动态图标,速度跟随后端忙碌程度(运行中的会话数 + 任务数)。
展开完整文档(README 剩余 1 节)
🐋 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 社区用心打造。
预览分享卡片长什么样 ↓Evan1u/deepseek-harness-desktop
分享 · DeepSeek Harness Hub
Evan1u/deepseek-harness-desktop

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

这是你的仓库?认领条目

回到顶部