# Provider & Model Reference

## OpenRouter — Paid Models

| Model | Provider ID | Context | Max Output | Best For |
|-------|-------------|---------|------------|----------|
| Qwen 3 Coder | `qwen/qwen3-coder` | 131K | 16K | Default coding agent |
| Qwen 3.7 Max | `qwen/qwen3.7-max` | 131K | 32K | Highest quality coding |
| Qwen 3.7 Plus | `qwen/qwen3.7-plus` | 131K | 32K | High quality, cost-effective |
| MiniMax M3 | `minimax/minimax-m3` | 1M | 64K | Huge context tasks (full repos) |
| MiniMax M2.7 | `minimax/minimax-m2.7` | 1M | 64K | Huge context, cheaper than M3 |
| Xiaomi MiMo 2.5 | `xiaomi/mimo-v2.5` | 131K | 16K | Fast, affordable |
| Xiaomi MiMo 2.5 Pro | `xiaomi/mimo-v2.5-pro` | 131K | 32K | Better quality, reasoning |
| Gemma 4 31B | `google/gemma-4-31b-it` | 262K | 16K | Open-weight, often has free tier |
| Nemotron 3 Ultra | `nvidia/nemotron-3-ultra-550b-a55b` | 131K | 16K | 550B MoE, best raw reasoning |

## OpenRouter — Free Models

| Model | Notes |
|-------|-------|
| `qwen/qwen3-coder:free` | Free tier of Qwen Coder |
| `google/gemma-4-31b-it:free` | Free tier of Gemma 4 31B |
| `google/gemma-4-26b-a4b-it:free` | Free tier of Gemma 4 26B MoE |
| `nvidia/nemotron-3-ultra-550b-a55b:free` | Free tier of 550B MoE |
| `nvidia/nemotron-3-nano-30b-a3b:free` | Free tier of Nano MoE |
| `nvidia/nemotron-nano-12b-v2-vl:free` | Free vision model |
| `nvidia/nemotron-nano-9b-v2:free` | Free small model |
| `nvidia/nemotron-3-super-120b-a12b:free` | Free 120B MoE |
| `meta-llama/llama-3.3-70b-instruct:free` | Llama 3.3 70B |
| `meta-llama/llama-3.2-3b-instruct:free` | Tiny, fast |
| `openai/gpt-oss-120b:free` | OpenAI open model 120B |
| `openai/gpt-oss-20b:free` | OpenAI open model 20B |
| `qwen/qwen3-next-80b-a3b-instruct:free` | Qwen Next 80B MoE |
| `nex-agi/nex-n2-pro:free` | Nex AGI N2 Pro |
| `liquid/lfm-2.5-1.2b-instruct:free` | Liquid 1.2B |
| `liquid/lfm-2.5-1.2b-thinking:free` | Liquid 1.2B thinking |
| `cognitivecomputations/dolphin-mistral-24b-venice-edition:free` | Dolphin 24B |
| `nousresearch/hermes-3-llama-3.1-405b:free` | Hermes 3 405B |
| `poolside/laguna-m.1:free` | Poolside Laguna M |
| `poolside/laguna-xs.2:free` | Poolside Laguna XS |
| `openrouter/free` | Auto-routes to best free model |
| `openrouter/owl-alpha` | Owl Alpha |

**Key observation:** Several paid-tier models (qwen3-coder, gemma-4-31b-it, nemotron-3-ultra) also have free tiers — append `:free` to use without billing.

## DeepSeek

| Model | Provider ID | Context | Max Output | Behavior |
|-------|-------------|---------|------------|----------|
| DeepSeek V4 Flash | `deepseek-v4-flash` | 1M | 16K | Reasoning tokens by default (~50+ tokens of reasoning before output) |
| DeepSeek V4 Pro | `deepseek-v4-pro` | 64K | 8K | Also uses reasoning tokens, slower |

**Note:** Both DeepSeek models consume tokens for internal reasoning before producing visible output. Set `max_tokens` >= 1024 for reliable responses. The `reasoning_content` field contains the chain-of-thought in Chinese by default.

## Local Models (llama-swap :9292)

| Model ID | Size | Context | Cold Load | Notes |
|----------|------|---------|-----------|-------|
| `qwen36-35b-mtp` | 21 GB | 250K | ~44s | Best local reasoning, MoE |
| `qwopus-9b` | 7 GB | 175K | ~20s | Coder-tuned 9B, MTP |
| `qwen35-9b-mtp` | 5.5 GB | 250K | ~7s | Uncensored, fast load |
| `gemma-12b` | 6.3 GB | 256K | ~8s | QAT, best quality/speed |
| `gemma-26b` | 13.3 GB | 256K | ~42s | 26B MoE QAT, best quality |
| `nex-n2-mini` | 20 GB | 250K | ~52s | Qwen-based MoE |
| `bonsai-8b` | 1.1 GB | 64K | ~6s | 1-bit ternary, fast, weak reasoning |

All local models are GGUF and do NOT support function calling.

## Hermes Provider Configuration

```yaml
# OpenRouter (auto-discovers models)
openrouter:
  api_key_env: OPENROUTER_API_KEY

# DeepSeek
deepseek:
  api_key_env: DEEPSEEK_API_KEY
  models:
    deepseek-v4-flash:
      max_input_tokens: 1048576
      max_output_tokens: 16384
    deepseek-v4-pro:
      max_input_tokens: 65536
      max_output_tokens: 8192
```

**Usage:**
- `/model openrouter/qwen/qwen3-coder` — switch Hermes to OpenRouter
- `/model deepseek/deepseek-v4-flash` — switch to DeepSeek
- `/model custom:local-gateway/qwen36-35b-mtp` — switch to local model

## OpenCode Provider Config

```json
{
  "provider": {
    "openrouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OpenRouter",
      "options": {
        "baseURL": "https://openrouter.ai/api/v1",
        "apiKey": "sk-or-..."
      },
      "models": { "...": "..." }
    },
    "deepseek": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "DeepSeek",
      "options": {
        "baseURL": "https://api.deepseek.com/v1",
        "apiKey": "sk-9..."
      },
      "models": { "...": "..." }
    }
  }
}
```

## Open Interpreter Profiles

```toml
# OpenRouter profile
[profiles.or-qwen-coder]
provider = "openai"
api_base = "https://openrouter.ai/api/v1"
api_key = "sk-or-..."
model = "qwen/qwen3-coder"
context_window = 131072
max_output = 16384

# DeepSeek profile
[profiles.ds-flash]
provider = "openai"
api_base = "https://api.deepseek.com/v1"
api_key = "sk-9..."
model = "deepseek-v4-flash"
context_window = 1048576
max_output = 16384
```

## Auth Setup

All API keys stored in `~/.hermes/.env`:
- `OPENROUTER_API_KEY=sk-or-...`
- `DEEPSEEK_API_KEY=sk-9...`
- `OPENCODE_GO_API_KEY=...`

Aider reads these from env vars. OpenCode stores them in `~/.config/opencode/opencode.json`. Open Interpreter stores them in `~/.openinterpreter/config.toml`.
