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-router of via Homebrew
  • Config: ~/.claude-code-router/config.json
  • Starten: ccr start, stoppen: ccr stop, herstarten: ccr restart

Beschikbare Ollama-modellen (2026-04-18):

ModelTagGrootteRol
Gemma 4gemma4:e4b9.6 GBbackground (snel)
Gemma 4gemma4:26b18 GBthink / longContext
Qwen3-Coderqwen3-coder:30b19 GBdefault 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)

ModelSnelheid Apple SiliconBruikbaar voor interactief?
gemma4:e4b~30-50 tok/sJa
gemma4:26b~10-20 tok/sMarginaal
qwen3-coder:30b~10-15 tok/sTraag, 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