Roo Code + minirouter
Draft OpenAI-compatible configuration for Roo Code and its per-mode provider settings.
Settings
Roo Code sidebar → ⚙ Settings → Providers
In order
- API ProviderOpenAI Compatible
- Base URLhttps://api.minirouter.sh/v1
The bare host also works. Never append /chat/completions.
- API Keymr-live-… (your key)
- Modelmistral/devstral-small-2
Roo's per-mode model setting accepts any catalog id.
curl https://api.minirouter.sh/v1/chat/completions \
-H "Authorization: Bearer $MINIROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"meta/llama-3.3-70b","messages":[{"role":"user","content":"ping"}]}'Draft candidates · 4 models
All models →- Modelmistral/devstral-small-2WhyCoding-oriented candidate for edits and tool calls.→
- Modelmeta/llama-3.3-70bWhyGeneral-purpose candidate for agent tasks.→
- Modeldeepseek/deepseek-v3WhyReasoning-oriented candidate for multi-step work.→
- Modelmeta/llama-4-maverickWhyLong-context candidate for larger repositories.→
Only rows confirmed in the current live catalog are linked. A plain row is a draft recommendation, not a claim that the model is currently available. Paste ids exactly as written, author/name.
When it fails
- Symptom404, HTML, or a parse error on every requestCodeinvalid_request
Almost always the base URL. Use https://api.minirouter.sh/v1 — the bare host without /v1 also works, but never append /chat/completions to the base URL field; the client adds that path itself. docs/errors#invalid_request →
- Symptom401 on every requestCodeinvalid_api_key
Wrong or rotated key. Keys start with mr-live-; after a rotation the old key keeps working for 24 hours, then dies. docs/errors#invalid_api_key →
- Symptom402 before any tokens arriveCodeinsufficient_credits
Balance below the estimated cost of the request. Top up ($5 minimum) — and watch the x-minirouter-balance-usd header, the low-balance signal every response carries. docs/errors#insufficient_credits →
- SymptomDifferent modes hit different models than expectedCodeclient-side
Roo stores a model per mode (Code, Architect, Ask…). Check the mode you are actually in — its provider settings are per-profile.
Every API error string carries a URL resolving to /docs/errors.