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.
| worker id | billing | state |
|---|---|---|
| loop-deepseek-build | API key, metered | live |
| loop-openrouter-build | API key, metered | live |
| loop-mimo-build | API key, metered | live |
| loop-openai-build | API key, metered | live |
| loop-xai-build | API key, metered | live |
| loop-groq-build | API key, metered | live |
| loop-mistral-build | API key, metered | live |
| loop-together-build | API key, metered | live |
| loop-fireworks-build | API key, metered | live |
| loop-qwen-build | API key, metered | live |
| loop-zhipu-build | API key, metered | live |
| loop-perplexity-build | API key, metered | live |
| loop-cerebras-build | API key, metered | live |
| loop-nvidia-build | API key, metered | live |
| loop-cohere-build | API key, metered | live |
| loop-azure-build | API key, metered | live |
| loop-copilot-build | subscription seat or plan | live |
| loop-ollama-build | local model, free | live |
| loop-ollama-cloud-build | API key, metered | live |
| loop-commandcode-build | subscription seat or plan | live |
| loop-commandcode-free-build | zero-credit models | live |
| loop-claude-build | API key, metered | live |
| loop-gpt-build | API key, metered | live |
| loop-claude-native-build | API key, metered | live |
| loop-bedrock-build | API key, metered | live |
| loop-vertex-build | API key, metered | live |
| worker id | billing | state |
|---|---|---|
| claude | subscription seat or plan | live |
| muse | subscription seat or plan | live |
| codex | subscription seat or plan | live |
| aider | API key, metered | live |
| qwen-code | API key, metered | live |
| crush | API key, metered | live |
| cursor-agent | subscription seat or plan | live |
| amp | API key, metered | live |
| goose | API key, metered | live |
| openhands | API key, metered | live |
| command-code | subscription seat or plan | live |
| worker id | reason | since |
|---|---|---|
| loop-kimi-build | Moonshot account out of balance; the operator retired it rather than funding it | 2026-08-27 |
| opencode-kimi | Moonshot account out of balance; same credential as loop-kimi-build | 2026-08-27 |
| loop-minimax-build | MiniMax account out of balance (402 insufficient balance 1008); the operator retired it | 2026-08-27 |
| loop-minimax-direct | Same MiniMax credential as loop-minimax-build; has no WORKER_PROFILES entry, gated in buildAdapters | 2026-08-27 |
| mmx-text-build | MiniMax mmx CLI; same unfunded MiniMax account | 2026-08-27 |
| loop-muse-build | Meta account has no payment method: 402 billing_not_configured on every completion; the muse CLI subscription does not cover the raw API | 2026-09-05 |
| gemini | Google revoked the free-tier client (IneligibleTierError) and no paid tier is funded | 2026-08-27 |
| loop-gemini-build | Gemini API key path; same unfunded Google account as the gemini CLI worker | 2026-08-27 |
| opencode2-deepseek | DeepSeek account out of balance (402 Insufficient Balance) ; same exhausted account as loop-deepseek-direct | 2026-09-06 |
| opencode-deepseek | operator is dropping the opencode binaries; cyberine replaces opencode as the one-command edit tool | 2026-09-07 |
| opencode | default-compare OpenCode planner; same binary the operator is dropping; has no WORKER_PROFILES entry, gated in buildAdapters | 2026-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.
run 81cbc07cangle: the rosterrecorded 2026-09-254 workers3 diffs applied1 kept$0.10 spent