关于 Harness
Harness 是用于跨设备运行和观察编码 Agent 会话的开源指挥中心,面向使用 Agent CLI 的开发者。它提供桌面和命令行界面、独立 worktree、加密远程连接,以及创建领域专用 harness 的功能;它不会包装 Agent CLI。
主要功能
- 01跨设备管理 Agent 会话
- 02使用真实 tmux 终端和原生 CLI
- 03为每个 harness 创建独立 worktree
- 04端到端加密远程连接
- 05以键盘操作的桌面与命令行界面
- 06创建带查看器的领域专用 harness
适用场景
- 01查看并检查多台设备上的 Agent 会话
- 02通过 worktree 隔离 Agent 的代码变更
- 03连接笔记本电脑与家用服务器或 GPU 设备
- 04为设计、工程或媒体工具构建工作流
MCP 相关
Harness 的 Store 收录 Bonsai MCP 和 Comfy MCP 等 harness;README 未说明 Harness 本身是 MCP 服务或提供 MCP 客户端连接功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
1收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
像专家一样驾驭。
为编码 Agent 及更多场景打造的终极驾驭工具。
工作时用 Claude Code,在家用 Codex,在云端用 Hermes。一个指挥中心。
从代码开始,然后顺着好奇心跨领域构建:CAD、电路、机器人、游戏和音乐。
下载 · 工作原理 · 代码之外 · Harness · 设备
所有 Agent,并排工作
Claude Code、Codex、Cursor、OpenCode、Devin、Amp、Copilot,以及另外七款。

所有机器,并排显示
在一个窗口中查看你的笔记本电脑、家用服务和 GPU 主机。使用密码连接每台机器。 无需 SSH 密钥。无需 Tailscale。无需端口转发。

键盘优先
⌘P 可在任意机器上查找任何 Harness。⇧⌘I 可跳转到正在等待你的 Harness。⌘D 可拆分窗格。每个按键都可重新映射。

端到端加密
代码、密钥和按键输入都在你的机器上加密封存。中继只转发无法读取的字节。

快速轻量
原生应用,而非 Electron。关闭应用后,你的 Agent 仍会继续工作。
M2 Max 上的空闲测量结果:
- **⌘N、⌘O、⌘T 界面:**中位数 11–13 ms,p95 为 15–18 ms。
- **本地终端回显:**中位数 1.1 ms,p95 为 7.2 ms,不包括界面渲染。
- **桌面资源占用:**约占一个 CPU 核心的 0.1% 和 304 MiB,包括终端渲染和回滚缓冲区;不包括 Agent CLI 和守护进程。
桌面端测试使用 Release 环境,包含 16 个终端,每个终端有 1,000 行回滚记录。 有关工作负载、长尾延迟、连接失败和原始数据,请参阅工作流和资源基准测试 以及远程 P2P、TURN 和中继结果。
按开发者的工作方式打造
- **真正的终端。**每个 Agent 都在自己的 tmux 窗格中运行。回滚记录、颜色和按键输入均可正常使用。
- **原样使用你的 CLI。**Harness 不会封装 Agent。它会读取转录记录,并使用供应商自带的钩子。
- **每个 Harness 都有独立工作树。**让 Agent 在自己的分支上启动。你的工作副本保持干净。
- **重新映射每个按键。**使用一个 JSONC 文件,保存后自动重新加载。快捷键最多支持四次按键。
- **本地模型。**使用 Grid、Ollama、MLX-LM 和 vLLM 在自己的机器上运行开放权重模型。
- **传输字节,而非像素。**远程终端通过点对点方式传输文本,无需远程桌面。
- **全部开源。**应用、CLI、守护进程、中继和设备都在此代码库中。
工作原理
在工作区中,harness 是 Agent 的一个运行会话,例如 Codex
或 Claude Code,每个会话都有自己的对话和工作上下文。标签页用于将
harness 分组。使用 New Harness 启动一个会话,使用 New Tab 对工作
进行分组。同一标签页中的 harness 可以通过 harness send 相互发送消息:Agent Messages
是你账户中的一项实验功能,默认关闭,可在“设置 ▸ 实验功能”中开启。
商店提供适用于特定专业领域的 harness,其中包含指令、工具和可选的查看器。 安装 harness,然后在工作区中启动它。完整的命名规则请参阅 命名系统。
每台机器上运行一个守护进程,在 tmux 中运行你的 Agent。它会主动建立出站连接,因此无需在任何机器上开放端口。
flowchart LR
subgraph laptop["Your laptop"]
app["Harness app"] -- loopback --> d1["daemon"]
d1 --> a1["tmux · Claude Code · Codex"]
end
subgraph box["Your GPU box"]
d2["daemon"] --> a2["tmux · OpenCode · Hermes"]
end
device["Harness device"] -- USB --> d1
d1 <-. "direct WebRTC" .-> d2
d1 <-- "ciphertext" --> relay["Harness relay · no keys"]
relay <-- "ciphertext" --> d2
所有连接路径均采用端到端加密:ChaCha20-Poly1305、X25519 会话密钥、固定的 Ed25519 身份标识。 Harness 会自行选择最佳路径。
直连。 在你的机器之间建立 WebRTC 通道。路径中没有服务器。

通过 Cloudflare。 防火墙阻止直连路径时,相同的加密通道会通过 Cloudflare 的 TURN 网络运行。Harness 会继续尝试建立直连路径。

通过我们的中继。 WebRTC 协商期间的备用路径。中继不持有密钥,只转发密文。

详情请参阅架构指南。
开始使用
macOS 或 Linux 用户请**下载应用**。
添加一台机器。在该机器上运行以下命令,然后在应用中选择 Machines → Link Machine:
curl -fsSL https://harness.autonomous.ai/cli/install.sh | bash
harness login
harness remote-password set
harness start
**在终端中:**同一行命令会安装 hn——包含 tmux 的按键配置和你的 ~/.tmux.conf,并适用于每台机器上的每个
harness(hn)。首次运行时,hn 会登录并连接这台计算机:
curl -fsSL https://harness.autonomous.ai/cli/install.sh | bash
hn
**供 Agent 使用:**Claude Code 和 Codex 可以通过 harness 技能启动、等待其他 harness,并读取其内容
(harness.autonomous.ai/agents,其中也包含 Codex 命令):
claude plugin marketplace add autonomous-ai/openharness --sparse .claude-plugin plugins
claude plugin install harness@openharness
从源代码构建
需要 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
make install-cli 会安装此代码检出版本中的 CLI,并重启本地守护进程。请参阅
开发指南。
不止于代码:跨领域创作
“世界级的企业家都是博学多才的人。” — Peter Thiel
编码 Agent 能构建的远不止软件。为它配置一个 harness,它就能使用某个专业领域的真实 工具。你可以在实时查看器中引导它。以下每段视频都是真实会话。
不止于代码:设计
**Blender。**让它制作一盏台灯,并加入关键滑块。拖动滑块,Blender 就会重建几何形状。保留你喜欢的版本。

CircuitJS。 构建一个滤波器。更换一个电阻。叠加新的曲线,测量差异,并保留两条曲线。

超越代码:机器人
MuJoCo。 在机器人的运行过程中固定一个时刻。用 100 N 的力推它。观察两种未来如何分岔。

超越代码:游戏
Godogen。 你的 Agent 制作出一款可玩的游戏。跳跃失误了,就倒回去再试一次。固定那个时刻,让 Agent 明白你的意思。

超越代码:音乐
Strudel。 曲目是可以现场演奏的代码。让不同声部进出,标记精彩片段,并保留 WAV 文件。试听。

超越代码:化学
RDKit。 转动一个键,观察分子移动。沿着真实的能量曲线追踪。保留值得仔细观察的构象。

超越代码:文档
Typst。 你的 Agent 编写出真正的 PDF。圈出一个细节,引用一行文字,留下一条备注。下一版草稿会作出回应。

领域专用工作台(DSH)
代码是通用媒介。几何脚本用于制作零件,网表用于制作电路板,动画代码用于制作影片。
领域专用工作台能将编码 Agent 转变为某个领域的专家。它提供该领域的操作说明和技能、固定的工具链、项目模板、检查项以及实时查看器。 你在一侧聊天,另一侧的电路板、零件或游戏则逐渐成形。
Agent 负责推理,工作台提供工具和视图。它只是一个包含 harness.json 的文件夹,因此新增一种领域无需改动应用。
商店中的 49 个工具套件
上游开源工具与原始工作流。10 个共享查看器会与需要它们的工具套件一同安装。未列出的实验项目不予展示。
构建自己的工具套件
下一个工具套件,就属于你的专业领域。封装你喜爱的工具或团队的工具链。 它可以放在这里,也可以放在你自己的仓库中。从此仓库开始:
{
"spec": 1,
"id": "examples/hello-world",
"name": "Hello World",
"engine": "codex",
"workspace": { "template": "template", "marker": "index.html" },
"agent": { "instructions": "AGENTS.md" },
"viewer": { "use": "autonomous/web-viewer" }
}
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,然后打声招呼。创作指南介绍了其余内容。
Harness 设备
获取 Harness 设备,或使用下方文件自行制作。 固件指南列出了支持的开发板和构建 命令,硬件指南介绍了设计文件。

可选的 Harness 设备是一款常亮圆形显示屏,放在键盘旁,让你一眼了解各个 Agent 的状态:每个 Agent 正在做什么、哪个已经完成,以及哪个正在等待你的回应。你可以在屏幕上阅读问题并作答,也可以轻触设备,说出新任务,无需切换窗口。
它从始至终都是开放硬件。本仓库提供了制作它所需的一切:
| 层级 | 内容 |
|---|---|
| 固件 | ESP32-S3、ESP-IDF、466 × 466 圆形 AMOLED 屏,带触控、麦克风和音频功能。通过 USB 连接主机上的守护进程——无需设置 Wi-Fi,也无需在设备上注册账号。 |
| PCB | EasyEDA Pro 项目、原理图、Gerber 文件、物料清单和用于组装的贴片数据。 |
| 外壳 | 用于编辑的 STEP 文件和用于打印的 STL 文件:外壳、铁制配重底座、USB 夹具和按钮。 |
参与贡献
为你喜爱的工具制作一个 Harness。改进终端、引擎、守护进程或中继。移植固件。请从贡献指南开始。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。