Harnesses
The harness is the runtime that executes your agent loop. Swap one line to switch runtimes.
executor:
harness: claude
Supported harnesses
| Harness | Runtime | Best for |
|---|---|---|
claude | Claude Code | Claude Code out of the box. Add tools, policies, and prompts to customize. |
codex | Codex | Codex out of the box. Add tools, policies, and prompts to customize. |
pi | Pi | Headless multi-model worker that runs on any gateway model. Ideal for review, exploration, and read-heavy tasks delegated by a supervisor agent. |
More harness integrations are on the way.
Swap harnesses
Tools, policies, and other config stay the same across harnesses. Just change the
harness value in your YAML, or override it at runtime:
goalrail run agent.yaml --harness codex
See Models & Credentials for how to set up API keys and choose models.