The core never imports a concrete provider

Thirty-seven live workers. Eleven retired, still listed.

Adding a provider is constructor config, not a code change: swap a base URL, a key, and a model id. Which is also why removing one is a config line and not a deletion. Every retired worker below is still in the registry, with the date and the reason.

26 Loop workers, a tool-calling loop against any OpenAI-compatible endpoint
worker idbillingstate
loop-deepseek-buildAPI key, meteredlive
loop-openrouter-buildAPI key, meteredlive
loop-mimo-buildAPI key, meteredlive
loop-openai-buildAPI key, meteredlive
loop-xai-buildAPI key, meteredlive
loop-groq-buildAPI key, meteredlive
loop-mistral-buildAPI key, meteredlive
loop-together-buildAPI key, meteredlive
loop-fireworks-buildAPI key, meteredlive
loop-qwen-buildAPI key, meteredlive
loop-zhipu-buildAPI key, meteredlive
loop-perplexity-buildAPI key, meteredlive
loop-cerebras-buildAPI key, meteredlive
loop-nvidia-buildAPI key, meteredlive
loop-cohere-buildAPI key, meteredlive
loop-azure-buildAPI key, meteredlive
loop-copilot-buildsubscription seat or planlive
loop-ollama-buildlocal model, freelive
loop-ollama-cloud-buildAPI key, meteredlive
loop-commandcode-buildsubscription seat or planlive
loop-commandcode-free-buildzero-credit modelslive
loop-claude-buildAPI key, meteredlive
loop-gpt-buildAPI key, meteredlive
loop-claude-native-buildAPI key, meteredlive
loop-bedrock-buildAPI key, meteredlive
loop-vertex-buildAPI key, meteredlive
11 CLI workers, a real headless coding agent spawned as a subprocess
worker idbillingstate
claudesubscription seat or planlive
musesubscription seat or planlive
codexsubscription seat or planlive
aiderAPI key, meteredlive
qwen-codeAPI key, meteredlive
crushAPI key, meteredlive
cursor-agentsubscription seat or planlive
ampAPI key, meteredlive
gooseAPI key, meteredlive
openhandsAPI key, meteredlive
command-codesubscription seat or planlive
11 Retired, skipped and never deleted
worker idreasonsince
loop-kimi-buildMoonshot account out of balance; the operator retired it rather than funding it2026-08-27
opencode-kimiMoonshot account out of balance; same credential as loop-kimi-build2026-08-27
loop-minimax-buildMiniMax account out of balance (402 insufficient balance 1008); the operator retired it2026-08-27
loop-minimax-directSame MiniMax credential as loop-minimax-build; has no WORKER_PROFILES entry, gated in buildAdapters2026-08-27
mmx-text-buildMiniMax mmx CLI; same unfunded MiniMax account2026-08-27
loop-muse-buildMeta account has no payment method: 402 billing_not_configured on every completion; the muse CLI subscription does not cover the raw API2026-09-05
geminiGoogle revoked the free-tier client (IneligibleTierError) and no paid tier is funded2026-08-27
loop-gemini-buildGemini API key path; same unfunded Google account as the gemini CLI worker2026-08-27
opencode2-deepseekDeepSeek account out of balance (402 Insufficient Balance) ; same exhausted account as loop-deepseek-direct2026-09-06
opencode-deepseekoperator is dropping the opencode binaries; cyberine replaces opencode as the one-command edit tool2026-09-07
opencodedefault-compare OpenCode planner; same binary the operator is dropping; has no WORKER_PROFILES entry, gated in buildAdapters2026-09-07

Retirement is a cost decision, not a capability one. The adapter, the reference page, and the routing profile all stay in place; the router simply skips the id, and the doctor reports it as retired rather than broken. Funding the account again is a one-line edit.

The full per-provider API reference lives in the docs: every provider page, each one live-probed rather than copied from a marketing page.

Run your first race.

Install it, point it at a repo, give it a task.

Read the docs
run 81cbc07cangle: the rosterrecorded 2026-09-254 workers3 diffs applied1 kept$0.10 spent