OpenHands + minirouter

Draft LLM configuration for OpenHands, which routes through LiteLLM and needs the openai/ prefix on every model id.

Base URLhttps://api.minirouter.sh/v1
Get a keyhttps://minirouter.sh/key
Get a key — no account

Settings

Settings → LLM → Advanced, or config.toml

In order

  1. Custom Modelopenai/meta/llama-3.3-70b

    The openai/ prefix selects the OpenAI-compatible driver; everything after it is our model id, unchanged.

  2. Base URLhttps://api.minirouter.sh/v1
  3. API Keymr-live-… (your key)
config.toml — unverified draft
[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 →

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 rejected
    Codeclient-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 request
    Codeinvalid_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 show
    Codeinsufficient_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 request
    Codeinvalid_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

Why this workload bills the way it does, what it costs to contain, and which models suit it: /use/personal-agents.

Agent setup: /setup · API reference: /docs