Harnesses¶
A harness is an agent CLI agedum drives. Each has its own page documenting two things:
- Wrapper resolution — where wrapper mode lands the agent-neutral source (which files are injected, which are read in place, any appended flags).
- Provider config — how to write a provider config for it (the
configblock mapping, with a working recipe).
| Harness | Reads project AGENTS.md |
Global instructions land at | extra_args |
Provider token |
|---|---|---|---|---|
| Claude | injected → CLAUDE.md |
~/.claude/CLAUDE.md |
none | ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY env |
| kimi | read in place | a generated --agent-file |
--agent-file |
env (requiredEnv export) |
| opencode | read in place | ~/.config/opencode/AGENTS.md |
none | OPENCODE_CONFIG_CONTENT doc (or own auth) |
| Cline | read in place | ~/.agents/AGENTS.md |
none | --key argv flag |
| reasonix | read in place | ~/.config/reasonix/AGENTS.md |
none | env via api_key_env (requiredEnv export) |
| aider | injected → --read |
a second --read |
--read (×N) |
env (litellm, requiredEnv export) |
| pi | read in place | ~/.pi/agent/AGENTS.md |
none | env by name (requiredEnv export) |
| codex | read in place | ~/.codex/AGENTS.md |
none | env via env_key (requiredEnv export) |
Skills are binds at the harness's own skills dir, compiled with the matching
SKILL.<harness>.md overlay — in every harness except aider, which has no
skills mechanism (agedum injects only its AGENTS.md, via --read). The shared mechanics —
scopes, overlays, the namespace launch — live in Wrapper mode and
Source & scopes.
Adding a harness¶
A new harness is a single compiler function compile_<harness>(project, global_, dest) ->
Plan plus, for provider mode, an env/command builder. The launcher and safety rules are
shared, so it inherits the namespace, git-safety, and cleanup for free. See
Internals.