Harness
在一个窗口里同时管理多台机器上的多个编码 Agent,端到端加密、键盘优先,并能扩展到 CAD、电路、机器人与音乐等手艺。
- Star 数
- ★ 1.3k
- 最近更新
- 今天
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 45/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 同时开着公司笔记本、家用服务器和 GPU 机器的开发者,希望在一个窗口里并排盯着 Claude Code 与 Codex 的进度。
- 不适合
- 只想用网页浏览器、不想在本机装守护进程的用户
- 完全不想连接厂商中继或云端 TURN 的团队
- 需要 Windows 桌面端的用户(仅提供 macOS 与 Linux)
- 源码审查
- 45/100 · 缺口较多
这个 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 连接宿主守护进程,用于查看状态、回答提问和语音下达任务。
- 同时开着公司笔记本、家用服务器和 GPU 机器的开发者,希望在一个窗口里并排盯着 Claude Code 与 Codex 的进度。
- 需要给每个 Agent 分配独立 git 工作树分支、又不想手工管理 worktree 的团队。
- firewall 严格、不能用 SSH 密钥或 Tailscale 打通内网的工程师,希望借 WebRTC/TURN 仍然保持端到端加密。
- 在本地显卡上跑 Grid、Ollama、MLX-LM 或 vLLM 开源模型,同时用同一界面调度云端 Agent 的团队。
- 做 3D 建模、PCB、机器人仿真或游戏原型的人,想给编码 Agent 装上 Blender、KiCad、MuJoCo、Godogen 这类带实时查看器的专用 harness。
- 希望用开源硬件桌边小屏随时查看哪个 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?
查看各维度的扣分理由
信任维度证据混杂。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。
可靠性方面,docs/research 下多篇文档记录了失败测试先行、golden 基线、变异测试与 100% 覆盖率门槛,自洽性较好(2)。但依赖可用性仅 README 列出 Node 20+/Flutter 3.47+/tmux/Xcode 等,未见锁文件或版本矩阵的完整说明(1)。失败信息方面,文档提到 typed hold、IDENTITY_UNAVAILABLE 等错误分类,但面向普通用户的失败提示证据有限(1)。
受众与场景覆盖广泛:编码、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)。
信息架构较好: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)。
输出可用性:README 提供可复制的安装命令、harness.json 示例与 CLI 命令,输出形态明确(2)。边际价值:将多 agent、多机器统一到一个命令中心,并提供领域专用 harness 与实时 viewer,相对单 agent CLI 有明确增量(2)。成本效益:宣称原生非 Electron、低资源占用,但性能数据来自作者自测且未独立验证,同时 full 权限模式带来的安全成本未量化(1)。
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 或版本策略,升级兼容性需自行评估。
常见问题
Harness 会替我调用 LLM 吗?费用怎么算?
中继服务器能看到我的代码吗?
关掉桌面应用后 Agent 会停止吗?
我能否只在自己团队的仓库里做一个专用 harness?
harness dsh check 校验、harness dsh install --link 安装,不必改动应用本体。