---
title: "Client setup"
description: "Unverified draft setup blocks for coding agents and clients."
canonical_url: "https://minirouter.sh/setup"
markdown_url: "https://minirouter.sh/setup.md"
last_updated: "2026-08-04"
---

# Set up minirouter in a client

Status: UNVERIFIED DRAFTS. None of the client configurations below has passed the recorded-fixture compatibility suite. Confirm the current fields in your installed client and run the verification request before relying on a block.

Base URL: https://api.minirouter.sh/v1
Get a key: https://minirouter.sh/key
Key environment variable for examples: MINIROUTER_KEY

Verify the key before configuring a client:

    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"}]}'

## Cline [UNVERIFIED DRAFT]

Cline sidebar → ⚙ Settings → API Configuration

Full guide: https://minirouter.sh/integrations/cline.md

Verify outside Cline 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"}]}'
```

## Roo Code [UNVERIFIED DRAFT]

Roo Code sidebar → ⚙ Settings → Providers

Full guide: https://minirouter.sh/integrations/roo-code.md

Verify outside Roo Code 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"}]}'
```

## Kilo Code [UNVERIFIED DRAFT]

Kilo Code sidebar → ⚙ Settings → Providers

Full guide: https://minirouter.sh/integrations/kilo-code.md

Verify outside Kilo 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"}]}'
```

## OpenCode [UNVERIFIED DRAFT]

opencode.json — project root, or ~/.config/opencode/opencode.json

Full guide: https://minirouter.sh/integrations/opencode.md

opencode.json — unverified draft

```
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "minirouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "minirouter",
      "options": {
        "baseURL": "https://api.minirouter.sh/v1",
        "apiKey": "{env:MINIROUTER_KEY}"
      },
      "models": {
        "meta/llama-3.3-70b": { "name": "Llama 3.3 70B" },
        "mistral/devstral-small-2": { "name": "Devstral Small 2" },
        "deepseek/deepseek-v3": { "name": "DeepSeek V3" },
        "meta/llama-4-maverick": { "name": "Llama 4 Maverick" }
      }
    }
  }
}
```

## Continue [UNVERIFIED DRAFT]

~/.continue/config.yaml (or the gear icon → Configure)

Full guide: https://minirouter.sh/integrations/continue.md

config.yaml — unverified draft

```
models:
  - name: Llama 3.3 70B (minirouter)
    provider: openai
    model: meta/llama-3.3-70b
    apiBase: https://api.minirouter.sh/v1
    apiKey: mr-live-YOUR-KEY-HERE
    roles: [chat, edit, apply]
  - name: Devstral Small 2 (minirouter)
    provider: openai
    model: mistral/devstral-small-2
    apiBase: https://api.minirouter.sh/v1
    apiKey: mr-live-YOUR-KEY-HERE
    roles: [chat, edit, apply, autocomplete]
```

## SillyTavern [UNVERIFIED DRAFT]

API Connections (the plug icon)

Full guide: https://minirouter.sh/integrations/sillytavern.md

Verify outside SillyTavern 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"}]}'
```

## Aider [UNVERIFIED DRAFT]

Environment variables + command line

Full guide: https://minirouter.sh/integrations/aider.md

Shell — unverified draft

```
export OPENAI_API_BASE=https://api.minirouter.sh/v1
export OPENAI_API_KEY=mr-live-YOUR-KEY-HERE
aider --model openai/meta/llama-3.3-70b
```

## Zed [UNVERIFIED DRAFT]

settings.json (cmd-,) → language_models

Full guide: https://minirouter.sh/integrations/zed.md

settings.json — unverified draft

```
{
  "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
          }
        ]
      }
    }
  }
}
```

## OpenClaw [UNVERIFIED DRAFT]

config.json5 in the OpenClaw config directory

Full guide: https://minirouter.sh/integrations/openclaw.md

config.json5 — unverified draft

```
{
  agents: {
    defaults: {
      model: { primary: "minirouter/meta/llama-3.3-70b" }
    }
  },
  models: {
    providers: {
      minirouter: {
        baseUrl: "https://api.minirouter.sh/v1",
        apiKey: "${MINIROUTER_KEY}",
        api: "openai-completions",
        timeoutSeconds: 300,
        // cost is OpenClaw's own accounting field, in USD per million
        // tokens. Copy the current rates for each model you add from
        // https://minirouter.sh/models rather than leaving these stale.
        models: [
          {
            id: "meta/llama-3.3-70b",
            name: "Llama 3.3 70B (minirouter)",
            reasoning: false,
            input: ["text"],
            cost: { input: 0.756, output: 0.756 },
            contextWindow: 128000,
            maxTokens: 8192
          }
        ]
      }
    }
  }
}
```

## Hermes Agent [UNVERIFIED DRAFT]

~/.hermes/config.yaml, with the key in ~/.hermes/.env

Full guide: https://minirouter.sh/integrations/hermes.md

~/.hermes/config.yaml — unverified draft

```
model:
  provider: custom
  base_url: https://api.minirouter.sh/v1
  name: nousresearch/hermes-4-70b

# ~/.hermes/.env
# OPENAI_API_KEY=mr-live-YOUR-KEY-HERE
```

## OpenHands [UNVERIFIED DRAFT]

Settings → LLM → Advanced, or config.toml

Full guide: https://minirouter.sh/integrations/openhands.md

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"
```

## RisuAI [UNVERIFIED DRAFT]

Settings → Model → custom OpenAI-compatible provider

Full guide: https://minirouter.sh/integrations/risuai.md

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"}]}'
```

## Agnai [UNVERIFIED DRAFT]

Settings → AI Settings → third-party / OpenAI-compatible preset

Full guide: https://minirouter.sh/integrations/agnai.md

Verify outside Agnai 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"}]}'
```
