OpenHands + minirouter
Draft LLM configuration for OpenHands, which routes through LiteLLM and needs the openai/ prefix on every model id.
Settings
Settings → LLM → Advanced, or config.toml
In order
- Custom Modelopenai/meta/llama-3.3-70b
The openai/ prefix selects the OpenAI-compatible driver; everything after it is our model id, unchanged.
- Base URLhttps://api.minirouter.sh/v1
- API Keymr-live-… (your key)
[llm]
model = "openai/meta/llama-3.3-70b"
base_url = "https://api.minirouter.sh/v1"
api_key = "mr-live-YOUR-KEY-HERE"Draft candidates · 4 models
All models →- Modelmistral/devstral-small-2WhyCoding-oriented candidate for edits and tool calls.→
- Modeldeepseek/deepseek-v3WhyReasoning-oriented candidate for multi-step work.→
- Modelmeta/llama-4-maverickWhyLong-context candidate for larger repositories.→
- Modelzai/glm-5WhyTool-calling candidate for the agent loop.→
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
- SymptomLLM provider not found, or the model id is rejectedCodeclient-side
The openai/ prefix is doing real work — without it the underlying LiteLLM layer tries to guess a provider from the id and fails. Write openai/ followed by our id exactly: openai/meta/llama-3.3-70b.
- 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 →
- SymptomCredits gone overnight with nothing to showCodeinsufficient_credits
An agent in a retry loop spends at machine speed. Set dailyLimitNano on the key the agent uses — one key per agent, so a runaway is contained to that key rather than the whole balance. docs/errors#insufficient_credits →
- 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 →
Every API error string carries a URL resolving to /docs/errors.
Other always-on personal agents
- OpenClawAlways-on personal agent
- Hermes AgentAlways-on personal agent
Why this workload bills the way it does, what it costs to contain, and which models suit it: /use/personal-agents.