Provider Capability Matrix
Each column is a registered provider id (the value you set as provider: in a
workflow or .archon/config.yaml). A β
means Archon translates the corresponding
capability for that provider; a β means the capability is unsupported. Unsupported
behavior is feature-specific: some optional fields are ignored with a warning, while
strict contracts fail closed. In particular, context.resume rejects an explicitly
unsupported provider at load time and an implicitly resolved one at runtime.
Providers
Section titled βProvidersβclaudeβ Claude (Anthropic)codexβ Codex (OpenAI)opencodeβ OpenCode (community) (community provider)piβ Pi (community) (community provider)copilotβ Copilot (GitHub) (community provider)
Capabilities
Section titled βCapabilitiesβ| Capability | claude | codex | opencode | pi | copilot |
|---|---|---|---|---|---|
| Session resume | β | β | β | β | β |
Immutable session fork (context.resume) | β | β | β | β | β |
MCP servers (mcp:) | β | β | β | β | β |
Hooks (hooks:) | β | β | β | β | β |
Skills (skills:) | β | β | β | β | β |
Inline sub-agents (agents:) | β | β | β ΒΉ | β | β |
Tool restrictions (allowed_tools/denied_tools) | β | β | β | β | β |
Structured output (output_format) | enforced | enforced | enforced | best-effort | best-effort |
Env injection (env:) | β | β | β | β | β |
Cost control (maxBudgetUsd) | β | β | β | β | β |
Effort control (effort) | β | β | β | β | β |
Thinking control (thinking) | β | β | β | β | β |
Fallback model (fallbackModel) | β | β | β | β | β |
Sandbox (sandbox) | β | β | β | β | β |
Setting sources (settingSources) | β | β | β | β | β |
| In-process native tools | β | β | β | β | β |
| Container exec (folder-project container backend) | β | β | β | β | β |
Caveats
Section titled βCaveatsβ- ΒΉ
opencodeβ Inline sub-agents (agents:) β Config-file-based agent selection (named agents fromopencode.json) with per-call model/tools overrides β not inline sub-agent definitions.
- β / β β the capability is supported or unsupported for this provider.
- β ΒΉ (superscript) β supported, but with semantics that differ from the headline meaning of the axis β see Caveats.
- Structured output β
enforced(the SDK/backend grammar-constrains decoding),best-effort(schema appended to the prompt, then validated + re-asked up to 3Γ), or β (unsupported). See AI Assistants β Structured output guarantees. - In-process native tools β the provider can register Archon
NativeTools for a turn (gates auto-injection of Archonβsmanage_runtool into project-scoped chat).
For per-provider field-level notes (YAML syntax, caveats), see the AI Assistants guide.