CCR + Ollama: lokale modellen in Claude Code
Definitie
Claude Code Router (CCR) is een lokale proxy die Claude Code-requests onderschept en doorstuurt naar configureerbare providers. Met Ollama als provider kunnen lokale LLMs worden ingezet voor background-taken, lange context en on-demand codesessies.
Context
Met een Claude Max-abonnement (OAuth) is echte hybrid routing via CCR naar Anthropic niet mogelijk zonder een aparte raw API key. CCR heeft geen werkende “anthropic” transformer. De praktische setup is daarom twee modi: cloud via claude, lokaal via hybrid.
Kernpunten
Installatie:
- CCR:
npm install -g @musistudio/claude-code-routerof via Homebrew - Config:
~/.claude-code-router/config.json - Starten:
ccr start, stoppen:ccr stop, herstarten:ccr restart
Beschikbare Ollama-modellen (2026-04-18):
| Model | Tag | Grootte | Rol |
|---|---|---|---|
| Gemma 4 | gemma4:e4b | 9.6 GB | background (snel) |
| Gemma 4 | gemma4:26b | 18 GB | think / longContext |
| Qwen3-Coder | qwen3-coder:30b | 19 GB | default coding (MoE, efficiënt) |
Let op tagnamen: gemma4:4b bestaat niet, gebruik gemma4:e4b. qwen3-coder:30b is een MoE-model (30B params, 3B actief).
Routing-configuratie (definitief):
"Router": {
"background": "ollama,gemma4:e4b",
"default": "ollama,qwen3-coder:30b",
"think": "ollama,gemma4:26b",
"longContext": "ollama,gemma4:26b",
"longContextThreshold": 60000
}Shell-integratie (~/.zshrc):
hybrid() {
unset ANTHROPIC_API_KEY
unset ANTHROPIC_BASE_URL
unset ANTHROPIC_AUTH_TOKEN
eval "$(ccr activate)"
echo "Lokale modus — alles via Ollama"
claude "$@"
}Auth-conflict voorkomen: ccr activate zet ANTHROPIC_AUTH_TOKEN. Als ANTHROPIC_API_KEY ook aanwezig is, klaagt Claude Code. Altijd unset ANTHROPIC_API_KEY voor eval "$(ccr activate)".
Bekende beperkingen
- Anthropic cloud routing via CCR werkt niet met OAuth (Max-account). Vereist raw API key van console.anthropic.com.
- OAuth token (
sk-ant-oat01-) werkt wel direct via curl maar niet via CCR’s Anthropic-provider (transformer ontbreekt). - Token verloopt elke paar uur; Claude Code ververst automatisch in keychain.
Performance (getest 2026-04-20)
| Model | Snelheid Apple Silicon | Bruikbaar voor interactief? |
|---|---|---|
| gemma4:e4b | ~30-50 tok/s | Ja |
| gemma4:26b | ~10-20 tok/s | Marginaal |
| qwen3-coder:30b | ~10-15 tok/s | Traag, merkbaar |
Conclusie: lokale modellen zijn significant trager dan cloud Sonnet. Met Claude Max (geen tokenlimieten) is de enige reden voor hybrid: privacy of offline gebruik. Niet als standaardmodus.
Gebruik
claude # cloud sessie via OAuth Max (standaard)
hybrid # lokale sessie via CCR + Ollama (privacy / offline)
On-demand model wisselen binnen hybrid-sessie: /model ollama,gemma4:e4b
Bronnen
- raw-sessie-2026-04-18-ccr-lokale-modellen-setup
- CCR GitHub: github.com/musistudio/claude-code-router