Metaharness

Observe · steer · compare

Many harnesses.
One interface.

Keep the agent’s loop. Give your workflow a consistent way to drive it. Metaharness turns harness runs into a common stream of events, with explicit control and evidence of what happened.

Rust · JSON Lines · CLI first, library second

terminal / metaharness
# Inspect the adapter’s declared contract.
$ metaharness capabilities claude

# Exercise the seam, without a model.
$ metaharness conformance claude

# Same interface. A different harness.
$ metaharness conformance codex
No model call. No credential. A first check.

01 / The shape of a run

Your workflow stays outside.
The record crosses the boundary.

Each harness keeps its own loop and tools. Its adapter translates the documented surface into one protocol your process can read and steer.

One protocol, different adapter capabilities
Your process

Workflow or embedder

Read events.
Send steering commands.

events out ←JSONL→ commands in
The interface

Metaharness

Normalize the record.
Report the control boundary.

adaptervendor surface
The agent loop

Claude · Codex · b10x

Keep the harness’s loop.
Declare what each arm supports.

Claude Code and Codex expose control seams. The b10x adapter observes its loop; it does not claim an approval seam. Understand the differences →

02 / Three commitments

A shared shape.
Explicit boundaries.

01 / Unified

One record vocabulary

Session lifecycle, tool calls, results, usage and warnings share a common event envelope. Vendor details stay in the adapter.

Read the event protocol →
02 / Hermetic

Evidence over assumptions

A constructed environment limits ambient inputs. The run’s own record determines which hermetic claims are proven, missing or unknown.

Read the hermetic contract →
03 / Controlled

Decisions at the boundary

On a supported seam, decide each call from a sealed frame or ask the embedder. Unsupported controls are refused by name.

Explore the control seam →

03 / Choose an adapter

Compare the run.
Keep the differences visible.

A common protocol does not make every harness equally controllable. Each adapter documents its version pins, observations and remaining limits.

04 / Start with the contract

Make your next run
an observable one.

Begin with the free conformance vectors. Then connect your workflow through events, commands and a sealed frame.

Open the quickstart