Harnesses
Run skills across nine coding-agent CLIs including Claude Code, Grok, Codex, Pi, Vibe, Kimi, fx, Cursor, and Hermes.
While an LLM gateway swaps the model endpoint behind Claude Code, a harness swaps the entire coding-agent CLI that executes your skill. Aeon ships nine harnesses behind harness-adapter/run-harness, all returning the same {result, usage, session_id} contract.
Selecting a Harness
Set the default harness at the top of aeon.yml, override per skill (single-line flow map), or pick one at dispatch time in Aeon Connect:
harness: claude # global default: claude | grok | codex | pi | vibe | kimi | fx | cursor | hermes
skills:
digest: { enabled: true, schedule: "0 9 * * *", harness: "grok" }Supported Harnesses
| Harness ID | CLI | Auth Secrets / Fallbacks |
|---|---|---|
claude | Claude Code (claude -p, default) | CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_API_KEY, or any LLM gateway |
grok | Grok Build (grok -p) | GROK_CREDENTIALS (grok login --device-auth) or XAI_API_KEY |
codex | OpenAI Codex CLI (openai/*) | Native ChatGPT login (CODEX_AUTH) or OPENROUTER_API_KEY |
pi | Pi Coding Agent (deepseek/*) | Native key or OPENROUTER_API_KEY |
vibe | Mistral Vibe (mistralai/*) | MISTRAL_API_KEY or OPENROUTER_API_KEY |
kimi | Moonshot Kimi (moonshotai/*) | Native Kimi login or OPENROUTER_API_KEY |
fx | Vercel fx.sh | AI_GATEWAY_API_KEY or VERCEL_OIDC_TOKEN (no OpenRouter fallback) |
cursor | Cursor CLI (agent -p) | CURSOR_API_KEY (no OpenRouter fallback) |
hermes | Nous Portal Hermes | HERMES_AUTH or OPENROUTER_API_KEY |
Grok Authentication & Run-Shaping
Grok Build (grok) authenticates directly via GROK_CREDENTIALS or XAI_API_KEY and logs token counts and cost to memory/token-usage.csv. Optional SKILL.md frontmatter keys shape Grok runs (ignored by other harnesses):
max_turns: 120 # agentic-turn cap (default 60)
best_of_n: 3 # run 3 ways in parallel and keep the best
verify: true # append a self-verification pass before finishing
effort: high # low | medium | high | xhigh | maxCross-Harness Parity
| Surface | Behavior across harnesses |
|---|---|
| Standing instructions | Reads CLAUDE.md and generated AGENTS.md (carrying STRATEGY.md). |
| Read-only mode | Enforced by the Linux bwrap --ro-bind OS sandbox in run-harness. |
| MCP servers | Project .mcp.json is expanded with ${VAR} secrets before launch (except pi, which disables MCP). |
| Chains & scoring | Inbound chat replies, skill chains, and the post-run quality scorer work across all nine harnesses. |
Full harness reference: docs/harnesses.md.