DeepSeek Harness Hub
← 返回列表

AxelGoal/Deepharn

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

一款面向 DeepSeek Harness 的 macOS 桌面应用,专为一切非编程场景而设计:…

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/12 · 已提供中文文档

为 macOS 上的 DeepSeek Harness 打造专属桌面端:基于其 API 的全新前端、Swift 原生外壳,以及两个插件。

综合分
30.8
GitHub 分
30.8
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add AxelGoal/Deepharn
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包Deepharn(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 10:23:51

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

Deepharn

一款面向 DeepSeek Harness 的 macOS 桌面应用,专为一切非编程场景而设计: 写作、调研、编排任务,并留住它们产出的成果。

macOS 14+
Swift 6
无依赖
MIT

它不是官方界面的主题或封装:而是一个不同的前端,通过 harness 的 API 与之通信,由 harness 自身提供服务,并装进一个原生窗口中。

兼容性——安装前请阅读。 本前端与 dsh 0.1.1-rc.2 的 API 通信,这是经过测试的版本。在 0.1.5 中,harness 重命名了其整个 RPC 接口(session.list 变成了 session/list,session.models 变成了 session/modelCatalog,agentPreset. 变成了 agentPresets/),将事件 WebSocket 从 /api/events.mux 移到了 /api/remote.mux,并把 /api 置于一个会话凭据之后,该凭据只能通过打开 /?token= 来签发。应用已经能够兑换该凭据;移植的其余部分正在进行中。在此期间,在 0.1.5 中应用会打开 harness 的官方界面,而我们的前端仍通过 /deepharn 提供服务。

Deepharn

三个可折叠的栏:左侧是对话,中间是聊天,右侧是正在运行的内容、已产出的内容以及手头可用的内容。

它能做什么

- 对话分组为进行中 / 今天 / 更早,并显示各自的时间和 token 数。
- 控制室显示正在运行的内容,以及交付物——对话产出的文件。
- 使用中:智能体能看到哪些 skills、启动了哪些子智能体、加载了哪些插件。
- 模型与推理强度选择器,带筛选功能(OpenRouter 提供一百多个模型)。
- 设置中有插件安装器和 skills 管理器,无需打开终端。
- 带系统对话框的权限:当智能体想要离开其文件夹时,应用会带到前台并询问你。没有这个,回合会默默等待。
- 最新的模型目录:一个按钮即可拉取 OpenRouter 的真实列表,而不是 harness 内置的目录——后者还拖着已下架的模型。
- 删除对话和项目,重命名它们。
- 三个可折叠的栏和“仅聊天”模式。浅色和深色。

而当出问题时——模型已下架、密钥过期、配额耗尽——看得见:提供商的错误会出现在对话中,而不是石沉大海。

回复通过 WebSocket 实时到达,边写边渲染,文本以 markdown 呈现:段落、项目符号、代码。

内部构造

| | |
|---|---|
| 模型 | 模型与推理强度。 按提供商分组并支持筛选,因为 OpenRouter 提供超过一百个模型。推理强度来自每个模型自身声明的值。 |
| 设置 | 设置。 启用的提供商、项目、技能(若某个拼写错误会给出提示),以及插件安装器。无需打开终端。 |
| 仅聊天 | 仅聊天。 一个按钮即可折叠两列,只留下对话。 |

它是如何搭建的

三个部分,各司其职:

| 部分 | 是什么 |
|---|---|
| app/ | 基于 Swift + WKWebView 的桌面外壳。启动 harness,监视它,并在退出时停止它。 |
| plugins/deepharn-front/ | 宿主插件:在 /deepharn 提供前端,并添加用于安装插件和管理技能的自有端点。 |
| plugins/deepharn-piel/ | 客户端插件:重写官方界面的颜色和字体令牌。可选。 |

前端是纯 HTML、CSS 和 JavaScript。没有框架,没有编译,没有
依赖:编辑后重新加载即可。

为什么从 harness 自身提供服务: 它的 API 会比较每个请求的 Host
并拒绝来自其他端口的请求。从外部提供前端无法
工作;从内部,对 /api 的调用则畅通无阻。

安装

你需要: macOS 14+(Apple Silicon)、Node 22+、pnpm、Xcode 的 Command Line
Tools 以及 harness(npm i -g @deepseek-ai/dsh)。如果缺少什么,安装器会在动任何东西之前告诉你。

git clone https://github.com/AxelGoal/Deepharn.git
cd Deepharn
./instalar.sh

这会创建一个名为 deepharn 的独立配置文件——不会动你已经在用的那个——安装
两个插件,将它们挂载到树中,并在 /Applications 中编译应用。

然后,从 Launchpad,或者:

open -a Deepharn

手动一步步操作

一个独立配置文件,从你已有的那个复制而来
cp -R ~/.dsh/profiles/web ~/.dsh/profiles/deepharn

插件
dsh plugin --profile deepharn add ./plugins/deepharn-front
dsh plugin --profile deepharn add ./plugins/deepharn-piel

以及它们在 ~/.dsh/profiles/deepharn/cordis.patch.yml 中的行。注意
insert 包装器:一个带 id: 的独立条目会覆盖已有的行,
而不是添加新行。

- insert:
- id: deepharn-front
name: deepharn-front
- insert:
- id: deepharn-piel
name: deepharn-piel

然后是应用:cd app && ./construir.sh

不用应用也可以:dsh --profile deepharn,然后在浏览器中打开
http://127.0.0.1:3081/deepharn/。

卸载

rm -rf ~/.dsh/profiles/deepharn /Applications/Deepharn.app

仅此而已。你已经在用的配置文件保持原样,你的对话也一样:
它们存放在 ~/.dsh/sessions,在配置文件之外。

网络搜索

harness 使用 DeepSeek 的 API 进行搜索,这是付费的:如果那个账户
余额不足时,代理会回复「Insufficient Balance」并停止搜索。

生态中有免费提供商可以替代出厂的那个。最常用的是 ModSearch——MIT 许可,无需密钥,基于 Firecrawl 的免费层——可从“设置”的插件框中安装:

@liustack/modsearch

它自带 bundle,因此会自动激活。之后用 ⇧⌘R 重启。

代理可以在哪里写入

harness 启动时所在的目录就是代理的工作区,而在 workspace-write 策略下,这正是它无需征得你同意就能触碰的范围。因此应用启动于 ~/Deepharn,这是它自己的文件夹,会自动创建:在那里它可以自由工作,而对于该目录之外的任何内容,它都会先询问你。

在更改它之前值得了解这一点:在个人文件夹中启动 harness 会赋予它对其中所有内容的写入权限。

如何启动

打开应用是唯一需要做的事:

1. 检查端口 3081-3083,通过询问它自己的端点,而不仅仅是端口是否有响应——这样就不会误连到别人的 harness。
2. 如果找到了,就连接上去,不启动任何东西。关闭应用时,那个服务器仍然存活。
3. 如果什么都没有,就启动它:已安装的 dsh、npx 缓存,或 npx -y @deepseek-ai/dsh。
4. 如果失败,说明原因,显示日志并提供重试。
5. 退出时,只有当 harness 是它自己启动的,才会停止它。

我们一路学到的东西

都在 COMO-ESTA-HECHO.md 里:harness 的 API、它的方法和它的坑。如果你要构建类似的东西,那里有地图。

它执行什么以及有哪些限制

Deepharn 会启动进程,所以最好说明是哪些以及为什么——生态中的自动扫描器会标记它们,而且有道理:

- dsh 作为子进程。 应用在打开时启动 harness,在退出时停止它。如果已经有一个在服务,就连接上去,关闭时不杀死任何东西。
- dsh plugin add,仅当你点击“设置”中的安装时,使用你输入的包名。它会拒绝含 shell 字符的名称,且不使用解释器。

自有端点(/deepharn/api/…)位于 harness 的服务器内,该服务器只监听 127.0.0.1。那个服务器没有身份验证,所以它们也没有:能在你的 Mac 上执行代码的人本来就能通过其他途径做同样的事。不要把端口暴露到网络。

而真正决定代理能触碰什么并不是这一点,而是它的工作区——即上面那一节。

折腾

前端在 plugins/deepharn-front/web/:三个文件,无需编译。编辑后用 ⌘R 重新加载。如果你改动服务器部分(lib/),用 ⇧⌘R 重启 harness。

皮肤——颜色和字体——在 plugins/deepharn-piel/src/piel.css;编辑后,node construir.mjs 会重新组装它。

如果某些东西没有出现:harness 在启动时构建它的树,所以新的插件和 skills 需要重启。

状态
它能用,而且每天都在用,但它还很年轻,底层的 harness 还处于
开发者预览阶段,所以偶尔会破坏兼容性。

还缺什么: 附加文件,以及在模型输出推理过程时展示出来(reasoning-delta 已经通过 socket 到达,只差把它渲染出来)。

许可证

MIT。

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

💬 加入 DPharness 群聊

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

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