RisuAI + minirouter

Draft configuration for RisuAI's custom OpenAI-compatible model settings.

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

Settings

Settings → Model → custom OpenAI-compatible provider

In order

  1. ProviderOpenAI compatible (custom URL)
  2. Request URL / Base URLhttps://api.minirouter.sh/v1

    If your build asks for a full request URL rather than a root, use https://api.minirouter.sh/v1/chat/completions there — and nowhere else.

  3. API Keymr-live-… (your key)
  4. Modelnousresearch/hermes-4-70b
Verify outside RisuAI first — one request, literal values
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 →
  • Modelnousresearch/hermes-4-70b
    WhyInstruction-following candidate that holds a persona across a long thread.
  • Modelsao10k/l3.3-euryale-70b
    WhyProse-oriented candidate. Single upstream — see the note on the roleplay facet.
  • Modelmeta/llama-3.3-70b
    WhyGeneral-purpose prose candidate.
  • Modelmistral/mistral-small-3.2
    WhySmaller-model candidate for frequent regeneration.

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

  • SymptomRequests fail only after the chat gets long
    Codecontext_too_long

    The character card, the lore book and the whole history are re-sent every turn, so a thread that worked at message 20 can exceed the window at message 200. Pick a longer-context model or trim the lore book. docs/errors#context_too_long

  • 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

  • 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

  • SymptomResponse stops mid-sentence with a credits message
    Codeinsufficient_credits

    Balance hit $0 mid-stream. The stream ends with a terminal error naming the exact charge for tokens delivered — never a silent close. docs/errors#insufficient_credits

Every API error string carries a URL resolving to /docs/errors.

Other roleplay frontends

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

Agent setup: /setup · API reference: /docs