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.

  • 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:)βœ…βœ…βœ…βœ…βœ…
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)βœ…βŒβŒβŒβŒ
  • ΒΉ 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.
  • βœ…ΒΉ (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.