Harness

在一个窗口里同时管理多台机器上的多个编码 Agent,端到端加密、键盘优先,并能扩展到 CAD、电路、机器人与音乐等手艺。

Star 数
★ 1.3k
最近更新
今天
License
MIT
主语言
TypeScript

30 秒速览

运行形态
桌面应用命令行工具自托管服务
可在哪里用
通用 · 跨平台Codex · Claude Code
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
tmuxNode.js 20+Flutter 3.47+ / Dart 3.13+(从源码构建桌面端)Xcode(macOS 桌面端构建)macOS 或 LinuxShell / 命令行网络访问本地文件系统
典型场景
同时开着公司笔记本、家用服务器和 GPU 机器的开发者,希望在一个窗口里并排盯着 Claude Code 与 Codex 的进度。
不适合
  • 只想用网页浏览器、不想在本机装守护进程的用户
  • 完全不想连接厂商中继或云端 TURN 的团队
  • 需要 Windows 桌面端的用户(仅提供 macOS 与 Linux)

这个 Agent 能做什么,适合哪些场景?

Harness 是面向编码 Agent 的多机指挥中心,由桌面应用、CLI(含 hn 终端界面)、每机一个守护进程、中继服务与开源硬件设备组成,全部托管在同一仓库。每个 Agent 都跑在独立的 tmux 窗格中,因此回滚缓冲、颜色和按键行为与原生终端一致;Harness 不包装 Agent 本身,而是读取会话记录并使用厂商自己的 hooks。机器之间通过 WebRTC 直连,被防火墙阻断时改走 Cloudflare TURN 或自有中继,所有路径都用 ChaCha20-Poly1305、X25519 会话密钥和固定 Ed25519 身份做端到端加密,中继本身不持有密钥。除编码外,Store 提供 49 个领域专用 harness(DSH),例如 Blender、CircuitJS、MuJoCo、Godogen、Strudel、RDKit、Typst,每个都是带 harness.json 的目录,配套实时查看器。项目以 MIT 许可开源,桌面端为原生应用而非 Electron,可配合本地模型运行时使用。

桌面应用为每个 Agent 会话维护一个 harness,并把它们分组到标签页;新建 harness 时可在独立工作树分支上启动,避免污染当前工作副本。每台机器运行一个守护进程,由它在 tmux 中启动 Claude Code、Codex、Cursor、OpenCode 等 CLI,守护进程主动外拨因此无需开放端口。应用通过 harness login 和 harness remote-password set 设置的口令把机器关联进来,再在 WebRTC 直连、Cloudflare TURN 和中继之间自动选择最优路径,远端终端只传输文本字节而非画面。键盘层提供 ⌘P 跨机搜索 harness、⇧⌘I 跳转到正在等待的会话、⌘D 分屏,所有按键都写在一个保存即重载的 JSONC 文件里并可四段式绑定。同一标签页内的 harness 可通过 harness send 互相发消息(Agent Messages,实验性、默认关闭)。DSH 侧通过 harness dsh install 装入带 instructions、工具链、模板、检查项与查看器的目录,Agent 负责推理,查看器负责呈现。可选的 Harness 设备为 ESP32-S3 圆屏,经 USB 连接宿主守护进程,用于查看状态、回答提问和语音下达任务。

  1. 同时开着公司笔记本、家用服务器和 GPU 机器的开发者,希望在一个窗口里并排盯着 Claude Code 与 Codex 的进度。
  2. 需要给每个 Agent 分配独立 git 工作树分支、又不想手工管理 worktree 的团队。
  3. firewall 严格、不能用 SSH 密钥或 Tailscale 打通内网的工程师,希望借 WebRTC/TURN 仍然保持端到端加密。
  4. 在本地显卡上跑 Grid、Ollama、MLX-LM 或 vLLM 开源模型,同时用同一界面调度云端 Agent 的团队。
  5. 做 3D 建模、PCB、机器人仿真或游戏原型的人,想给编码 Agent 装上 Blender、KiCad、MuJoCo、Godogen 这类带实时查看器的专用 harness。
  6. 希望用开源硬件桌边小屏随时查看哪个 Agent 在等待自己回答的硬件爱好者。

如何安装或部署这个 Agent?

从官网下载 macOS 或 Linux 桌面应用。每台要接入的机器(包括本机)执行官方安装脚本,它会装上 CLI 与守护进程:

curl -fsSL https://harness.autonomous.ai/cli/install.sh | bash
harness login
harness remote-password set
harness start

只想在终端里用时,同一脚本还会安装 hn:

curl -fsSL https://harness.autonomous.ai/cli/install.sh | bash
hn

若要从源码构建,需要 Node.js 20+、tmux、Xcode 与 Flutter 3.47+ / Dart 3.13+:

git clone https://github.com/autonomous-ai/openharness.git
cd openharness
(cd cli && npm ci)
make install-cli
cd desktop
flutter config --enable-swift-package-manager
flutter pub get
flutter run -d macos

给 Claude Code 安装 harness 技能插件:

claude plugin marketplace add autonomous-ai/openharness --sparse .claude-plugin plugins
claude plugin install harness@openharness

如何使用这个 Agent?

在应用里通过 Machines → Link Machine 输入该机器的远程口令完成关联。之后 ⌘N 新建 harness、⌘O 打开、⌘T 新建标签页、⌘D 分屏,⌘P 可在任意机器上搜索 harness,⇧⌘I 直接跳到正在等待你的会话。分屏后每个窗格显示所属机器、项目与分支。安装领域 harness 前先链接共享查看器:

harness dsh install "$PWD/store/viewers/web-viewer" --link
cp -R store/examples/hello-world ../my-harness
harness dsh check ../my-harness
harness dsh install ../my-harness --link

随后按 ⌘N 选择 Hello World 即可开始对话。若要让同一标签页内的 Agent 互相通信,在 Settings ▸ Experimental 打开 Agent Messages,然后在会话中调用 harness send。

这个 Agent 有哪些优点和局限?

优点
  • 每个 Agent 独占一个 tmux 窗格,滚动缓冲、颜色与按键完全沿用原生终端,不包装也不劫持厂商 CLI。
  • WebRTC 直连优先,被墙时自动降级到 Cloudflare TURN 或自有中继,全程 ChaCha20-Poly1305 + X25519 端到端加密,中继不持有密钥。
  • 桌面端为原生应用而非 Electron,README 给出 M2 Max 上测得 ⌘N/⌘O/⌘T 中位 11–13 ms、本地终端回显中位 1.1 ms、约 0.1% CPU 与 304 MiB 内存。
  • Store 收录 49 个领域专用 harness,覆盖设计、工程、音乐、科学、仿真与游戏,凭 harness.json 即可自建,无需改动应用本体。
  • 硬件层全部开源:ESP32-S3 固件、EasyEDA Pro PCB 工程与 STEP/STL 外壳文件都在仓库内。
  • MIT 许可,应用、CLI、守护进程、中继与设备代码同仓,支持 Grid、Ollama、MLX-LM、vLLM 等本地模型后端。
局限
  • 安装需要在每台机器上运行 curl 脚本并常驻守护进程,首次接入还要设置远程口令,不是打开网页即用。
  • 桌面端仅提供 macOS 与 Linux,源码构建额外要求 Xcode 与 Flutter 3.47+/Dart 3.13+,Windows 用户没有官方路径。
  • Agent Messages 与部分 Store 条目仍标注为实验性,功能边界可能变动。
  • 远程连接依赖 WebRTC 协商,必要时会经过 Cloudflare TURN 或厂商中继;在意第三方网络中间节点的团队需要自行评估。
  • 性能数据仅来自 M2 Max 桌面 Release 构建,其他平台和远程链路的表现在仓库中没有给出同等细节。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Harness 当前 45 · 缺口较多 桌面应用免费 + 模型费 ★ 1.3k 今天 TypeScript Codex · Claude Code
Best of Agent Harnesses 75 · 表现良好 MCP 服务器免费 + 模型费 ★ 1.3k 4 天前 Python Claude Code · Claude API
OpenRig 79 · 表现良好 命令行工具免费 + 模型费 ★ 8.1k 今天 TypeScript Codex · Claude Code
amux 智能体控制平面 77 · 表现良好 自托管服务免费 + 模型费 ★ 543 今天 Rust Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
45/ 100 五分制 2.3 / 5
信任安全 11/29
可靠稳定 6/14
适用触发 8/18
规范维护 9/18
有效结果 7/13
证据核验 4/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

信任维度证据混杂。README 宣称端到端加密(ChaCha20-Poly1305、X25519、Ed25519 固定身份)且中继不持密钥,SECURITY.md 也详细说明设备密钥日志与 QR 登录风险,属于数据流透明度的加分项(2)。但 least_privilege 与 user_confirmation 被 docs/plans/2026-10-22-swarm-full-permission-mode.md 直接削弱:Swarm 启动的 Lead 与代理一律使用 full 权限模式、隐藏权限选择控件,且 SECURITY.md 承认 example-provider 以 --dangerously-skip-permissions 运行;这些是设计选择而非缺陷,但确实降低了最小权限与确认强度(各 1)。敏感数据处理方面,SECURITY.md 承认“能登录即可添加设备”且后端可添加设备,仅靠可见性缓解,扣分(1)。依赖安全仅见 CI 中固定版本与 npm ci --ignore-scripts,未见依赖审计或漏洞策略(1)。外部效应与回滚:有 worktree、checkpoint、resume 等机制,但未见面向用户的撤销/回滚说明(各 1)。来源归属:MIT 与上游工具归属有提及,但发布者身份未经验证,仅 1。

可靠稳定6 / 14 · 2.1/5

可靠性方面,docs/research 下多篇文档记录了失败测试先行、golden 基线、变异测试与 100% 覆盖率门槛,自洽性较好(2)。但依赖可用性仅 README 列出 Node 20+/Flutter 3.47+/tmux/Xcode 等,未见锁文件或版本矩阵的完整说明(1)。失败信息方面,文档提到 typed hold、IDENTITY_UNAVAILABLE 等错误分类,但面向普通用户的失败提示证据有限(1)。

适用触发8 / 18 · 2.2/5

受众与场景覆盖广泛:编码、CAD、电路、机器人、游戏、音乐、化学、文档等 49 个 harness,场景描述清晰(2)。能力边界方面,README 说明 harness 不包装 agent、读取 transcript、使用厂商 hook,但 full 权限模式与 YOLO/allow-all 的边界说明分散在计划文档中,未在用户文档集中呈现(1)。触发精度:⌘P、⇧⌘I 等快捷键与 harness send 有描述,但缺少触发条件与冲突处理的系统说明(1)。环境适配:仅 macOS/Linux 桌面,Windows 未提及,设备固件依赖 ESP-IDF(1)。

规范维护9 / 18 · 2.5/5

信息架构较好:README 分层清晰,docs/ 下有架构、开发、扩展、CLI、命名系统等链接(2)。安装说明完整,含下载、curl 安装、源码构建与插件安装(2)。命名稳定性:README 提到 Naming System 文档,但 harness/tab/DSH 等术语在文档中仍有混用(1)。示例与 FAQ:有 hello-world harness 示例、store 目录与多段 GIF 演示(2)。已知限制:SECURITY.md 列出部分非漏洞项,但产品层面的限制(如 Windows 不支持、full 权限模式)未集中说明(1)。许可证:MIT 全文完整,版权方明确(3)。版本与变更日志:未见 CHANGELOG 或版本号策略(0)。维护责任:CONTRIBUTING 与 SECURITY 联系邮箱存在,但发布者未经验证,维护承诺不明确(1)。

有效结果7 / 13 · 2.7/5

输出可用性:README 提供可复制的安装命令、harness.json 示例与 CLI 命令,输出形态明确(2)。边际价值:将多 agent、多机器统一到一个命令中心,并提供领域专用 harness 与实时 viewer,相对单 agent CLI 有明确增量(2)。成本效益:宣称原生非 Electron、低资源占用,但性能数据来自作者自测且未独立验证,同时 full 权限模式带来的安全成本未量化(1)。

证据核验4 / 8 · 2.5/5

claim_traceability:README 的性能数字指向 docs/performance 下的具体文档,研究文档引用具体 commit 与 receipt,可追溯性较好(2)。cross_source_corroboration:性能与安全声明主要来自项目自身文档,缺少独立第三方佐证(1)。fact_inference_separation:研究文档明确区分“已通过”“未验证”“不作为证据”的条目,如“These four observations support no speed claim”,事实与推断分离较好(2)。

风险与缓解建议
  • Swarm 启动的代理默认使用 full 权限模式且隐藏权限选择控件,用户需明确知晓这一行为。
  • SECURITY.md 承认能登录账户即可添加设备,后端也可添加设备,仅靠可见性缓解,存在账户接管风险。
  • example-provider 以 --dangerously-skip-permissions 运行,仅适合临时目录演示。
  • 发布者身份未经验证,安装脚本通过 curl | bash 从远程域名执行,需自行核验。
  • 性能数据为作者自测,未经独立验证,不应作为选型依据。
  • 未见 CHANGELOG 或版本策略,升级兼容性需自行评估。
证据充分度:低 评估于 2026年10月22日 审查版本 a1c34427755f
查看完整评分方法 →

常见问题

Harness 会替我调用 LLM 吗?费用怎么算?
不会。Harness 只是启动你本机已安装的 Claude Code、Codex、Cursor、OpenCode 等 CLI,并读取它们的会话记录;模型额度按各家 Agent 自己的订阅或 API 计费,Harness 本身是 MIT 开源软件。
中继服务器能看到我的代码吗?
README 说明所有路径都使用 ChaCha20-Poly1305 与 X25519 会话密钥加密,身份用 Ed25519 固定,中继只转发无法解读的密文字节。直连 WebRTC 时不经过任何服务器;被防火墙阻断时会走 Cloudflare TURN 或自有中继,但加密层不变。
关掉桌面应用后 Agent 会停止吗?
不会。Agent 跑在每台机器守护进程管理的 tmux 会话里,关闭应用后它们继续工作,重新打开即可接管。
我能否只在自己团队的仓库里做一个专用 harness?
可以。按 README 示例写一个包含 spec、id、name、engine、workspace、agent、viewer 字段的 harness.json,然后用 harness dsh check 校验、harness dsh install --link 安装,不必改动应用本体。
支持哪些操作系统和运行环境?
桌面应用提供 macOS 与 Linux 版本;从源码构建需要 Node.js 20+、tmux、Xcode 与 Flutter 3.47+/Dart 3.13+。硬件设备基于 ESP32-S3 与 ESP-IDF,经 USB 连接宿主守护进程,不需要在设备上配置 Wi-Fi。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents