Gemma 4 + Claude Code Router : faire tourner Claude Code sur un modèle local (2026)
Claude Code est l'agent de codage en terminal d'Anthropic, apprécié pour sa gestion du contexte et la qualité du code produit. Par défaut, il ne dialogue qu'avec l'API cloud d'Anthropic : chaque fichier touché part sur leurs serveurs et chaque session est facturée sur votre compte.
Si vous tenez à la confidentialité du code, si vous devez travailler hors ligne ou si vous êtes coincé derrière un réseau d'entreprise verrouillé, c'est un vrai blocage. Claude Code Router (CCR) est un proxy open source issu de la communauté, qui s'intercale entre Claude Code et l'API d'Anthropic pour traduire les requêtes vers un backend compatible OpenAI — par exemple une instance Ollama locale qui fait tourner Gemma 4.
Ce guide déroule toute la mise en place : installation de CCR, branchement de Gemma 4 en amont, utilisation réelle et — tout aussi important — les contraintes légales, techniques et de support à accepter avant de s'engager. Nous ne faisons pas la promo de CCR. C'est une solution de zone grise, et nous voulons que vous choisissiez en connaissance de cause.
Pourquoi vouloir Claude Code sur un modèle local ?
Avant le comment, le pourquoi. Trois scénarios légitimes.
Bases de code réglementées. Finance, défense, santé, secteur public : impossible d'envoyer le code source vers un cloud tiers. Les CGU d'Anthropic n'y changent rien. Un modèle local sur le poste maintient le code dans le périmètre réseau.
Réseau mauvais ou coupé. Télétravail en mauvais Wi-Fi, vols long-courriers, recherche sur le terrain, laboratoires sécurisés. L'API cloud tombe, le modèle local continue.
Modèles personnalisés ou fine-tunés. Vous avez peut-être un Gemma 4 spécialisé (bio-info, EDA, DSL maison) et vous voulez l'UX Claude Code par-dessus vos propres poids.
Ce sont des raisons d'ingénieur. « Économiser sur Claude » est une autre motivation, que cet article ne défend pas.
Avertissement légal et conformité (à lire en premier)
Avertissement : La configuration qui suit réécrit le endpoint de Claude Code pour pointer vers un proxy tiers. Selon l'évolution des CGU d'Anthropic, cela peut enfreindre les conditions d'utilisation de Claude Code et mettre votre compte en risque. Cet article est de la documentation technique, pas du conseil juridique. Pour un déploiement en entreprise, faites valider au préalable par vos équipes juridique et sécurité.
Il faut aussi accepter ces compromis techniques :
- Dégradation des fonctionnalités. L'extended thinking, le prompt caching et certains formats de tool use sont calibrés pour les modèles Anthropic. Avec Gemma 4, ils peuvent se dégrader, mal se comporter ou échouer silencieusement.
- Qualité de sortie. Gemma 4 26B / 31B sont de très bons modèles ouverts, mais sur du raisonnement multi-fichiers complexe ils restent derrière Claude 3.5 / 4. Calibrez les attentes.
- Projet communautaire, pas de SLA. CCR est maintenu par des bénévoles. Un changement du wire format côté Anthropic peut le casser du jour au lendemain, sans contrat de support pour rattraper.
Si ces compromis sont acceptables, poursuivons.
Claude Code Router, concrètement ?
CCR est un petit proxy HTTP local, généralement écrit en Node.js. Sa mission est étroite :
- Écouter sur un port local.
- Accepter des requêtes au format de l'API Messages d'Anthropic.
- Les traduire dans un format compatible OpenAI (Ollama, LiteLLM, OpenRouter…).
- Retraduire la réponse en streaming dans le format attendu par Claude Code.
L'intérêt tient dans cette couche de traduction. Rôles de message, blocs d'appel d'outil, deltas en streaming, stop reasons — tout diffère entre les deux familles d'API. CCR normalise l'ensemble pour que Claude Code croie discuter avec Anthropic.
Prérequis
- Node.js 18+ (CCR est un projet Node)
- Ollama installé et lancé (ollama.com)
- Gemma 4 26B ou 31B récupéré via Ollama
- Claude Code (
npm install -g @anthropic-ai/claude-code) - Matériel : 26B ~16 Go de RAM, 31B ~24 Go. Voir le guide matériel en fin d'article.
Étape 1 — installer Claude Code Router
Cloner le dépôt et installer les dépendances :
git clone https://github.com/<org>/claude-code-router.git
cd claude-code-router
npm installL'URL exacte varie selon le fork. CCR est communautaire, le projet peut être renommé ou dupliqué. Cherchez « claude code router » ou « claude code proxy » sur GitHub et choisissez le fork activement maintenu.
Étape 2 — pointer CCR vers Ollama
Créez un fichier .env (ou config.json selon le fork) dans le dossier CCR :
UPSTREAM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=gemma4:26b-a4b
PORT=8082Démarrez le proxy :
npm startVous devriez voir quelque chose comme :
Claude Code Router started on port 8082
Upstream: ollama (gemma4:26b-a4b)
Ready to accept connectionsVérification rapide :
curl http://localhost:8082/v1/modelsVous devez récupérer une liste JSON contenant votre modèle Gemma 4.
Étape 3 — rediriger Claude Code vers CCR
Claude Code lit ANTHROPIC_BASE_URL pour choisir l'endpoint. Pointez-le sur le proxy local :
export ANTHROPIC_BASE_URL="http://localhost:8082"
export ANTHROPIC_API_KEY="local" # non vide, la valeur est ignorée
claudeClaude Code démarre normalement, mais toutes les requêtes passent désormais par CCR vers votre Gemma 4 local.
Pour éviter de reconfigurer à chaque fois, mettez ces variables dans ~/.zshrc / ~/.bashrc, ou mieux, isolez le mode local dans un alias — claude continue d'utiliser l'API officielle :
alias claude-local='ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=local claude'Étape 4 — utilisation réelle
Expliquer du code :
> Explique ce que fait src/auth/middleware.tsGemma 4 lit le fichier et vous en fait un résumé. Correct sur un fichier isolé ; nettement plus faible dès qu'il faut raisonner entre modules.
Générer un nouvel endpoint :
> Crée src/api/health.ts avec un handler GET /api/health qui renvoie le statut et la versionLes tâches CRUD et le scaffolding HTTP passent bien.
Déboguer :
> npm test échoue avec "Cannot read properties of undefined". Regarde src/utils/parser.tsAvec une trace claire, Gemma 4 localise généralement le bug. Les bugs logiques subtils sans signal d'erreur sont nettement plus durs.
Comparatif honnête de l'expérience
| Dimension | Claude Code officiel | CCR + Gemma 4 26B | CCR + Gemma 4 31B |
|---|---|---|---|
| Qualité de génération | Excellente | Correcte (≈ GPT-3.5) | Bonne (≈ GPT-4) |
| Raisonnement multi-fichiers | Excellent | Faible | Moyen |
| Compatibilité tool use | Native | Partielle | Partielle |
| Extended thinking | Oui | Non | Non |
| Vitesse | Rapide (cloud) | 20–40 t/s | 15–30 t/s |
| Confidentialité | Code envoyé | Entièrement local | Entièrement local |
| Hors ligne | Non | Oui | Oui |
| Coût mensuel | Au token | 0 € | 0 € |
Bien pour : génération isolée, explication de code, bugs simples, environnements offline ou cloisonnés.
Pas bien pour : refactors d'architecture, éditions multi-fichiers longues, tout ce qui dépend de l'extended thinking.
CCR face aux autres configurations locales
| Option | Support local natif | Proxy requis | Intégration Git | Édition multi-fichiers | Maturité |
|---|---|---|---|---|---|
| Aider + Gemma 4 | Natif | Non | Commits auto | Fort | Élevée (30K+ étoiles) |
| Codex CLI + Gemma 4 | Config nécessaire | Non | Aucune | Fichier par fichier | Moyenne |
| CCR + Claude Code + Gemma 4 | Non | Oui (CCR) | Aucune | Fort (via Claude Code) | Faible (expérimental) |
| Cursor + Ollama | Plugin requis | Non | Aucune | Fort | Moyenne |
Notre avis franc : si le besoin est « modèle local + terminal », Aider est la piste la plus mûre — il a été pensé pour des backends locaux. CCR ne se justifie que si vous êtes très investi dans le workflow de Claude Code et avez une contrainte claire de confidentialité ou de travail hors ligne.
Dépannage
« Port already in use » — changez PORT dans .env, ou tuez le processus qui tient 8082 :
lsof -i :8082
kill -9 <PID>« Authentication failed » côté Claude Code — ANTHROPIC_API_KEY doit être non vide, et ANTHROPIC_BASE_URL doit bien pointer sur le port CCR.
Sortie tronquée ou illisible — la traduction de CCR n'est pas parfaite. Mettez à jour (git pull && npm install), essayez le 31B (meilleure fidélité de format), simplifiez le prompt.
Réponses lentes — vérifiez avec ollama ps qu'Ollama tourne sur GPU, envisagez une quantification GGUF si la RAM est tendue.
FAQ
Anthropic peut-il bannir mon compte ? Le risque n'est pas nul. Réécrire le endpoint peut enfreindre les CGU. Nous ne donnons pas de conseil juridique ; traitez cela comme un risque personnel et consultez le juridique pour un usage commercial.
Gemma 4 remplace-t-il complètement Claude ? Non. Claude Code est optimisé pour des capacités propres à Anthropic (extended thinking, formats spécifiques de tool use, gestion profonde du contexte). Gemma 4 vous donne un sous-ensemble, pas la parité.
Ça marche sous Windows ? Oui. Node.js et Ollama sont multiplateformes, les étapes sont identiques.
Puis-je pointer CCR vers GPT-4 ou un autre modèle cloud ? Oui, CCR gère plusieurs backends dont OpenAI. Mais vous perdez l'argument « confidentialité locale » et vous payez toujours le fournisseur amont.
Pourquoi ne pas utiliser directement Aider ou Codex CLI ? Franchement, c'est souvent la meilleure réponse. Le repo map d'Aider et ses commits Git automatiques collent mieux au local. Ne choisissez CCR que si l'UX de Claude Code est non négociable. Voir le guide Aider + Gemma 4.
Gemma 4 E2B / E4B sont-ils utilisables ? Techniquement oui, en pratique non. Les 4B / 8B ne tiennent pas sous une charge agentique. Minimum 26B.
Utilisable en production par une équipe ? Non recommandé. Entre le risque CGU et un proxy à mainteneur unique, nous ne le mettrions pas sur le chemin critique d'une équipe. Usage personnel ou pilote restreint, d'accord ; chemin partagé de production, non.
Articles liés
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


