Skip to content

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.

Reporting flags describe SDK fields that Archon translates into execution results. Supported does not guarantee that every result reports a value or that usage includes all nested agents. Unsupported fields remain absent; Archon does not estimate cost, count events as turns, or substitute the requested model for an unreported model. Cost reporting is independent of spend-limit support. Older providers may omit reporting declarations; absence means unknown, not unsupported.

  • claude β€” Claude (Anthropic)
  • codex β€” Codex (OpenAI)
  • opencode β€” OpenCode (community) (community provider)
  • pi β€” Pi (community) (community provider)
  • copilot β€” Copilot (GitHub) (community provider)
Capabilityclaudecodexopencodepicopilot
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)enforcedenforcedenforcedbest-effortbest-effort
Env injection (env:)βœ…βœ…βœ…βœ…βœ…
Spend limit (maxBudgetUsd)βœ…βŒβŒβŒβŒ
Cost reporting (costUsd)βœ…βŒβœ…βœ…βŒ
Token reportingβœ…βœ…βœ…βœ…βœ…
Stop reason reportingβœ…βŒβœ…βœ…βŒ
Turn count reportingβœ…βŒβŒβŒβŒ
Resolved model reportingβœ…βŒβœ…βœ…βŒ
Effort control (effort)βœ…βœ…βŒβœ…βœ…
Fallback model (fallbackModel)βœ…βŒβŒβŒβŒ
Sandbox (sandbox)βœ…βŒβŒβŒβŒ
Setting sources (settingSources)βœ…βŒβŒβŒβŒ
In-process native toolsβœ…βŒβŒβœ…βŒ
Container exec (folder-project container backend)βœ…βŒβŒβŒβŒ
Strict-mode required coverage (every key in properties MUST appear in required)βŒβœ…βŒβŒβŒ
  • ΒΉ opencode β€” Inline sub-agents (agents:) β€” Config-file-based agent selection (named agents from opencode.json) with per-call model/tools overrides β€” not inline sub-agent definitions.
  • βœ… / ❌ β€” the capability is supported or unsupported for this provider.
  • Unknown β€” the provider has not declared whether this reporting channel is supported.
  • βœ…ΒΉ (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’s manage_run tool into project-scoped chat).

For per-provider field-level notes (YAML syntax, caveats), see the AI Assistants guide.