Runtime targets
How Ultimate Harness adapters translate a portable mission packet into each agent runtime's command or HTTP call.
Ultimate Harness is runtime-agnostic: mission packets and verification artifacts stay stable while adapters translate a mission into each agent runtime's command or HTTP call.
| Runtime | Adapter ID | Invocation shape | Notes |
|---|---|---|---|
| Hermes Agent | hermes | Local CLI | Reference adapter. |
| Codex CLI | codex | codex exec | Uses workspace-write sandboxing and JSON output. |
| Hermes Proxy | hermes-proxy | Local HTTP endpoint | Subscription-backed OAuth route through Hermes Proxy. |
| OpenRouter | openrouter | OpenAI-compatible HTTP | Requires OPENROUTER_API_KEY. |
| Pi CLI | pi | Local CLI | Base Pi command surface. |
| oh-my-pi | oh-my-pi | Local CLI | Opt-in OMP route with documented posture. |
| Anthropic | anthropic | Anthropic Messages HTTP | Native pay-per-token path. Requires ANTHROPIC_API_KEY. Experimental (shipped v0.9.0). |
Adapter contracts
All adapters should:
- Render the same mission packet into a runtime prompt.
- Write
runtime-session.yaml,events.ndjson,runtime-result.yaml,runtime-final.txt, anddiff.patch. - Respect sandbox routing unless explicitly bypassed.
- Redact or avoid secrets in persisted artifacts.
- Support
dry-runwhere possible so CI and reviewers can inspect command shape safely.
See Runtime adapter contract for the detailed protocol.
API-key adapters
Adapters that need an API key (openrouter, anthropic) degrade gracefully when it's missing: uh adapter check <id> reports the missing key instead of crashing, and mission run fails fast with a plan error. Keys are read from the environment and never stored in the manifest.