Zed + minirouter
Draft OpenAI-compatible provider block for Zed's settings.json.
Settings
settings.json (cmd-,) → language_models
In order
- language_models → openai_compatibleminirouter
The provider entry name — paste the block below.
- api_urlhttps://api.minirouter.sh/v1
- API Keymr-live-… (your key)
Entered once in the Agent panel's provider settings, not in settings.json.
{
"language_models": {
"openai_compatible": {
"minirouter": {
"api_url": "https://api.minirouter.sh/v1",
"available_models": [
{
"name": "meta/llama-3.3-70b",
"display_name": "Llama 3.3 70B (minirouter)",
"max_tokens": 131072
},
{
"name": "deepseek/deepseek-v3",
"display_name": "DeepSeek V3 (minirouter)",
"max_tokens": 163840
},
{
"name": "mistral/devstral-small-2",
"display_name": "Devstral Small 2 (minirouter)",
"max_tokens": 262144
}
]
}
}
}
}Draft candidates · 3 models
All models →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
- SymptomProvider appears but requests fail instantlyCodeclient-side
The API key is set in the Agent panel's provider settings, not in settings.json — Zed keeps credentials out of the config file.
- 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 →
Every API error string carries a URL resolving to /docs/errors.