DeepSeek Harness Hub
← 返回列表

桌面启动器kimirong/deepseek-harness-desktop

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

自动探测并一键启动本机服务,在原生窗口中打开 Web 界面

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

DeepSeek Harness 桌面客户端:连接或启动本机 dsh web 服务,在原生窗口中打开 Web GUI

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

README

DeepSeek Harness Desktop

一个极简、本地优先的桌面外壳,用于
DeepSeek Harness。

简体中文 · English

简体中文

DeepSeek Harness Desktop 将 DeepSeek Harness Web 体验封装为独立桌面应用:自动探测本机服务、一键启动、退出时清理——无需手动操作 CLI 或管理端口。

本项目专注于桌面宿主能力,不 fork、不修改、不注入,也不重新实现 Harness UI。模型、会话、设置、插件和 Agent 能力均由本机安装的官方 @deepseek-ai/dsh 提供。

[!IMPORTANT]
本项目是非官方社区封装,早期版本。安装包未签名、未公证(macOS 首次打开需在「系统设置 → 隐私与安全性」中允许)。Windows 版本尚未在真机验证,暂未发布。

下载

| 平台 | 架构 | 安装包 | 下载 |
| --- | --- | --- | --- |
| macOS | Apple Silicon | DMG | 下载 arm64 版本 |
| Windows | x64 | — | 未验证、未发布(见已知限制) |

全部当前和历史安装包可在 GitHub Releases 查看。

为什么需要桌面版

DeepSeek Harness 已经提供完整的 Agent Runtime 和 Web UI。本项目不重复实现这些能力,而是补充桌面应用所需的宿主层:

- 自动探测本机已有的 Harness 服务并直接连接
- 没有实例时自动启动(或一键启动)dsh web,使用随机回环端口
- 等待服务就绪后再进入界面,启动失败不弹窗、可重试
- 应用退出时自动终止自启的子进程,不留孤儿进程

主要特性

- 自动连接已运行的 Harness 实例,不重复启动服务
- 启动器页面覆盖全部"服务未运行"场景:一键启动、进度提示、错误重试、配置指引
- 服务仅监听随机本地回环端口,不暴露到局域网
- 渲染进程启用沙箱、contextIsolation,禁用 Node.js 集成
- 连接已有实例时为只读连接,不接管其生命周期
- 打包时裁剪 Electron 语言包,安装包 103MB

界面预览

使用流程(打开应用 → 一键启动 → 进入界面):

| 步骤 | 界面 | 说明 |
|---|---|---|
| 1. 检测 | 未检测到服务 | 打开应用,未检测到本机服务:显示「一键启动服务」按钮 |
| 2. 启动 | 正在启动服务 | 点击后启动 dsh web(随机回环端口),显示进度 |
| 3. 就绪 | 服务已就绪 | ✓ 服务已就绪,即将打开 GUI |
| 4. 进入 | DeepSeek Harness GUI | 进入完整的 DeepSeek Harness 界面 |

异常场景:

| 界面 | 说明 |
|---|---|
| 启动失败:错误详情与重试 | 启动失败:错误详情 +「重试启动」+「重新检测」 |
| 未找到 dsh:配置指引 | 未找到 dsh:配置指引 +「重新检测」 |

安装说明

macOS

安装包为本地未签名构建。首次启动:

1. 打开 DMG,将 DeepSeek Harness 拖入「应用程序」。
2. 尝试打开应用;若 macOS 阻止启动,点击「完成」。
3. 打开「系统设置 → 隐私与安全性」。
4. 在「安全性」区域找到 DeepSeek Harness,点击「仍要打开」。
5. 再次点击「打开」确认。该确认通常只需一次。

前置要求:本机已安装可用的 dsh(或通过环境变量 DSH_BIN 指定路径)。
使用说明

| 场景 | 行为 |
|---|---|
| 本机已有 dsh web 实例(默认 3080) | 自动连接,不重复启动 |
| 没有实例、已装 dsh | 自动启动,或点击「一键启动服务」 |
| 启动失败 | 页面显示错误详情 +「重试启动」+「重新检测」 |
| 未找到 dsh | 页面给出配置指引 +「重新检测」 |
| 服务运行中意外退出 | 回到启动器页面,可重试 |

常用配置(环境变量):

| 变量 | 默认 | 说明 |
|---|---|---|
| DSH_BIN | — | 指定 dsh 可执行文件路径 |
| DSH_SHELL_PORT | 3080 | 探测端口:连接已运行实例时用 |
| DSH_SHELL_AUTO_START | 1 | 设 0 则不自动启动,只显示「一键启动服务」按钮 |

完整变量表见开发者文档。

运行架构

DeepSeek Harness Desktop
├── Electron Main
│   ├── 探测已有实例(127.0.0.1:3080)
│   ├── 一键启动 / 自动启动 dsh web
│   ├── 子进程生命周期与退出清理
│   └── 随机回环端口与就绪检测
│
├── dsh web 子进程(本机已安装的 @deepseek-ai/dsh)
│   └── http://127.0.0.1:
│
└── Sandboxed BrowserWindow
└── DeepSeek Harness Web UI

安全模型

- Harness 服务仅绑定 127.0.0.1(源码显式拒绝 --host 0.0.0.0,安全红线)
- 渲染进程禁用 Node.js 集成,启用 contextIsolation 与 Chromium sandbox
- 连接已有实例时为只读连接,壳不杀死非自启的服务
- 应用退出时自动终止自启子进程(SIGTERM → SIGKILL;Windows 用 taskkill /T 杀进程树)

验证状态

| 平台 | 构建 | 打包后启动 | Web UI |
| --- | --- | --- | --- |
| macOS Apple Silicon | DMG 通过 | 通过 | HTTP 200 |
| Windows x64 | ZIP 交叉构建通过 | 未验证 | 未验证 |
| Linux | 未支持 | — | — |

已知限制

- 壳不内置 Harness 运行时,需要本机已安装 dsh
- macOS 安装包未签名、未公证,首次打开需手动允许
- Windows 尚未真机验证、未发布安装包
- Linux 未支持
- 尚未集成自动更新

路线图

- [ ] Windows 真机验证并发布安装包
- [ ] Linux 支持
- [ ] 体积优化:electron-updater 差量更新 / Tauri 迁移(见开发者文档)

贡献

欢迎协作!无论是修复 bug、补充功能、完善文档,还是帮我们在 Windows / Linux 真机上做验证(目前仅 macOS 验证过)。

请通过 GitHub Issues 反馈,或直接提交 Pull Request。

上游版本与许可

桌面封装采用 MIT License。应用图标使用上游 DeepSeek Harness Web favicon 中的鲸鱼图案。

本项目与 DeepSeek 不存在隶属或官方合作关系。DeepSeek Harness 及相关名称的权利归其各自所有者所有。

开发者指引见 docs/DEVELOPMENT.md。

English

DeepSeek Harness Desktop 将 DeepSeek Harness Web 体验打包为独立桌面应用:它会探测本地服务器,一键启动,并在退出时清理——无需手动 CLI 或端口管理。

本项目专注于桌面托管。它不会 fork、修改、注入或重新实现 Harness UI。模型、会话、设置、插件和 agent 能力仍由你机器上安装的官方 @deepseek-ai/dsh 提供。

[!IMPORTANT]
这是一个非官方社区封装,且处于早期阶段。安装包未签名、未公证(macOS 首次启动需在系统设置中批准)。Windows 尚未在真机上验证,也未发布。

下载

| 平台 | 架构 | 安装包 | 下载 |
| --- | --- | --- | --- |
| macOS | Apple Silicon | DMG | 下载 Apple Silicon 版 |
| Windows | x64 | — | 未验证,未发布(见已知限制) |
所有当前和历史版本均位于 GitHub Releases 页面。

为什么会有这个项目

DeepSeek Harness 已经提供了完整的 agent 运行时和 Web UI。本项目提供桌面产品所需的主机能力:

- 探测已在运行的本地 Harness 实例并直接连接
- 当没有实例运行时,在随机回环端口上自动(或一键)启动 dsh web
- 在打开 UI 前等待就绪;失败时显示重试,而不是弹出对话框
- 退出时终止自行启动的子进程,不留孤儿进程

功能特性

- 自动连接到正在运行的 Harness 实例,不会重复启动服务器
- 启动界面覆盖所有“服务器未运行”的情况:一键启动、进度、错误重试、安装指引
- 服务器仅监听随机本地回环端口,绝不暴露到局域网
- 渲染进程在 contextIsolation 下沙箱化,禁用 Node.js 集成
- 对已有实例只读连接——绝不接管其生命周期
- 打包时剥离 Electron 语言文件;macOS 安装包为 103 MB

预览

用户流程(打开应用 → 一键启动 → 进入 UI):

| 步骤 | 界面 | 说明 |
|---|---|---|
| 1. 检测 | 未检测到服务器 | 未找到本地服务器——“启动服务器”按钮 |
| 2. 启动 | 正在启动服务器 | 在随机回环端口上启动 dsh web,显示进度 |
| 3. 就绪 | 服务器已就绪 | ✓ 服务器已就绪,正在打开 GUI |
| 4. 进入 | DeepSeek Harness GUI | 完整的 DeepSeek Harness 界面 |

边界情况:

| 界面 | 说明 |
|---|---|
| 启动失败:错误详情与重试 | 启动失败——错误详情 +“重试启动”+“重新检测” |
| 未找到 dsh:安装指引 | 未找到 dsh——安装指引 +“重新检测” |

安装

macOS

该安装包是本地构建的未签名二进制文件。首次启动时:

1. 打开 DMG,将 DeepSeek Harness 拖入 Applications。
2. 尝试打开应用;如果 macOS 阻止,请点击 Done。
3. 打开 System Settings → Privacy & Security。
4. 在 Security 部分找到 DeepSeek Harness,然后点击 Open Anyway。
5. 再次点击 Open 确认。通常只需执行一次。

前提条件:本地必须安装可用的 dsh(或通过 DSH_BIN 环境变量指定)。

使用

| 场景 | 行为 |
|---|---|
| 已有 dsh web 实例正在运行(默认端口 3080) | 自动连接,不重复启动服务器 |
| 没有实例,已安装 dsh | 自动启动,或按“启动服务器” |
| 启动失败 | 页面上显示错误详情 +“重试启动”+“重新检测” |
| 未找到 dsh | 页面上显示安装指引 +“重新检测” |
| 服务器意外退出 | 返回启动界面,可重试 |
常见配置(环境变量):

| 变量 | 默认值 | 用途 |
|---|---|---|
| DSH_BIN | — | dsh 可执行文件的路径 |
| DSH_SHELL_PORT | 3080 | 用于连接正在运行的实例的探测端口 |
| DSH_SHELL_AUTO_START | 1 | 设为 0 可禁用自动启动,仅显示“启动服务器”按钮 |

完整变量列表请参阅开发者文档。

运行时架构

DeepSeek Harness Desktop
├── Electron Main
│   ├── Probe for an existing instance (127.0.0.1:3080)
│   ├── One-click / auto start of dsh web
│   ├── Child-process lifecycle and exit cleanup
│   └── Random loopback port and readiness checks
│
├── dsh web child process (locally installed @deepseek-ai/dsh)
│   └── http://127.0.0.1:
│
└── Sandboxed BrowserWindow
└── DeepSeek Harness Web UI

安全模型

- Harness 服务器仅绑定到 127.0.0.1(源码明确拒绝 --host 0.0.0.0,这是一条安全红线)
- 渲染进程中禁用了 Node.js 集成;已启用 contextIsolation 和 Chromium 沙箱
- 连接到现有实例是只读的——外壳程序绝不会终止并非由它启动的服务器
- 退出时,自行启动的子进程会被终止(SIGTERM → SIGKILL;在 Windows 上使用 taskkill /T 终止进程树)

验证状态

| 平台 | 打包 | 打包后启动 | Web UI |
| --- | --- | --- | --- |
| macOS Apple Silicon | DMG 通过 | 通过 | HTTP 200 |
| Windows x64 | ZIP 交叉构建通过 | 未验证 | 未验证 |
| Linux | 不支持 | — | — |

已知限制

- 外壳程序不捆绑 Harness 运行时;需要本地安装 dsh
- macOS 安装程序未签名且未公证;首次启动需要手动批准
- Windows 未在真实硬件上验证,且尚未发布安装程序
- 不支持 Linux
- 未集成自动更新

路线图

- [ ] 在真实 Windows 硬件上验证并发布 Windows 安装程序
- [ ] 支持 Linux
- [ ] 体积路线图:electron-updater 增量更新 / 迁移到 Tauri(请参阅开发者文档)

贡献

欢迎贡献!无论是修复 bug、添加功能、改进文档,还是帮助我们在真实的 Windows / Linux 机器上验证(目前仅验证了 macOS)。

请提交 GitHub Issue 或直接提交 pull request。

上游版本与许可证

桌面封装程序基于 MIT 许可证 提供。应用程序图标使用了上游 DeepSeek Harness Web favicon 中的鲸鱼图案。

本项目与 DeepSeek 无关联,也未获得其认可。DeepSeek Harness 及相关名称归其各自所有者所有。

开发者指南:docs/DEVELOPMENT.md。

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

💬 加入 DPharness 群聊

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

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