The supervisor dispatches work to whichever provider CLI is configured. All three shipped providers — claude, codex, opencode — are external CLIs that must be installed and authenticated separately, and each is local-only: the CLI owns its own agent loop and tool execution on this machine, even when it calls a hosted model for inference.

gemini shipped as a built-in provider previously but was removed on 2026-06-18, when the Gemini CLI’s auth endpoint was deprecated (it now returns HTTP 410 Gone on every invocation). cursor-agent is excluded because it delegates session control to Cursor’s cloud rather than running locally. A self-hosted, gemini-compatible CLI can still be wired in through the declarative provider binding path.

Claude (Anthropic)#

Install#

# macOS / Linux / WSL2
curl -fsSL https://anthropic.com/install.sh | sh

# Or via npm
npm install -g @anthropic-ai/claude-code

Authenticate#

claude

First run prompts you to sign in at console.anthropic.com. Session tokens are cached under ~/.claude/.

Verify#

claude --version
claude -p --input-format stream-json < /dev/null

The second command should print a stream-json init frame, then exit cleanly. If it prompts for auth, the session cache is missing.

Binding#

Claude supports session resume, so its binding is stateful — internal/provider/claudesession holds the session lifecycle across turns, and it is the only shipped binding whose capability record declares NativeFanout: true today (the CLI natively manages subagents via --agents/--agent/claude agents).

Codex (OpenAI)#

Install#

npm install -g @openai/codex

Authenticate#

export OPENAI_API_KEY=sk-proj-...
printenv OPENAI_API_KEY | codex login --with-api-key
codex --version
codex login status

Binding#

Codex is bound stateless: each turn is independent. Its capability record’s NativeFanout is currently false (unconfirmed) — no evidence of a subagent/parallel-workflow flag in codex exec --help.

OpenCode#

Install#

Follow the OpenCode CLI’s own install instructions for your platform.

Authenticate#

Authenticate however the installed OpenCode CLI documents (typically an interactive opencode auth or equivalent first-run flow).

Binding#

OpenCode’s capability record declares NativeFanout: trueopencode run --agent and opencode agent create/list expose a native multi-agent surface the orchestrator can delegate a parallel step-group to.

Verify end-to-end#

After the providers you plan to use are installed and authenticated:

radioactive_ralph doctor

Expected:

[OK] claude       — claude X.Y.Z
[OK] codex        — codex X.Y.Z

Only the providers you actually intend to use need to authenticate — an unauthenticated or missing provider you never select is not a blocker.