Tous les articles
IA & dev

Claude Code avec OpenRouter : la configuration pas à pas (et ses limites)

Par Elouan Laurent

Comment brancher Claude Code sur OpenRouter ?

Trois variables d'environnement suffisent. ANTHROPIC_BASE_URL pointe vers https://openrouter.ai/api, ANTHROPIC_AUTH_TOKEN porte votre clé OpenRouter, et ANTHROPIC_API_KEY reste vide. Au lancement suivant, les requêtes de Claude Code partent vers l'endpoint (le point d'accès de l'API) d'OpenRouter au lieu de celui d'Anthropic.

export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
export ANTHROPIC_API_KEY=""

La première variable change l'adresse. La deuxième authentifie. La troisième empêche Claude Code de se rabattre sur votre compte Anthropic.

Une limite avant de commencer : le chemin garanti passe par les modèles Claude, servis par le fournisseur Anthropic.

Le pas à pas : clé, variables d'environnement et vérification

1. Créer la clé API. Elle se génère dans votre compte OpenRouter. Stockez-la dans OPENROUTER_API_KEY, ce qui évite de la coller en clair dans vos scripts.

2. Exporter les variables. Dans un terminal, les trois export ci-dessus valent pour la session en cours. Pour les garder, ajoutez-les à votre .zshrc ou à votre .bashrc. La doc d'OpenRouter prévient que la clé y reste alors en clair, dans un fichier facile à commiter par erreur. Elle conseille de la lire depuis le trousseau du système.

Un détail compte plus que les autres. ANTHROPIC_API_KEY doit valoir une chaîne vide, pas être absente. Le blog d'OpenRouter, mis à jour le 24 septembre 2026, prévient qu'une variable non définie peut renvoyer Claude Code vers l'authentification Anthropic directe.

3. Vider la session en cache. Si vous vous êtes déjà connecté à Claude Code avec un compte Anthropic, tapez /logout : la commande retire la session gardée en mémoire. Tapez ensuite /status pour vérifier que la connexion passe bien par OpenRouter.

4. Limiter la config à un projet. La doc d'intégration d'OpenRouter propose de placer ces réglages dans .claude/settings.local.json. Ils ne s'appliquent alors qu'à ce dépôt.

Le piège voisin s'appelle .claude/settings.json. La doc Claude Code déconseille d'y mettre la clé : ce fichier est commité, donc partagé avec tous ceux qui clonent le dépôt.

Quel modèle pour quelle tâche ?

Claude Code raisonne en quatre familles : Fable, Opus, Sonnet et Haiku. Avec OpenRouter, chacune se remappe vers le modèle de votre choix par une variable dédiée :

  • ANTHROPIC_DEFAULT_FABLE_MODEL ;
  • ANTHROPIC_DEFAULT_OPUS_MODEL ;
  • ANTHROPIC_DEFAULT_SONNET_MODEL ;
  • ANTHROPIC_DEFAULT_HAIKU_MODEL ;
  • CLAUDE_CODE_SUBAGENT_MODEL, pour les sous-agents (les tâches que Claude Code délègue en parallèle).

OpenRouter fournit des alias qui suivent la dernière version, du type ~anthropic/claude-sonnet-latest[1m]. Vous n'avez pas à retoucher la config à chaque sortie de modèle. Exception : un alias Opus latest coupe le mode rapide (voir le tableau des erreurs).

Fable se comporte à part dans le menu. Sur OpenRouter, cette famille n'apparaît dans /model que si ANTHROPIC_DEFAULT_FABLE_MODEL est définie.

Pour choisir dans le menu plutôt qu'en variable, activez CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1. Les modèles du gateway (la passerelle entre Claude Code et les fournisseurs) apparaissent alors dans /model. La doc Claude Code précise que cette découverte est désactivée par défaut.

Reste la question que posent la plupart des guides : peut-on mettre Llama, DeepSeek ou Gemma derrière Claude Code ? Techniquement, OpenRouter les expose. Mais Anthropic ne prend pas en charge le routage de Claude Code vers des modèles non Claude, quel que soit le gateway.

OpenRouter dit la même chose à sa manière. Sa doc prévient que Claude Code est optimisé pour les modèles Anthropic et peut mal fonctionner avec d'autres fournisseurs. L'intégration n'est garantie qu'avec le fournisseur Anthropic.

Je n'ai pas testé ces modèles dans Claude Code. Je ne dirai donc pas lequel « tient » une session de code.

Combien ça coûte vraiment ?

OpenRouter ne majore pas le prix des tokens. Sa FAQ indique qu'il répercute le tarif des fournisseurs sans marge : un token Sonnet coûte le même prix qu'en direct chez Anthropic.

Le surcoût arrive à l'achat de crédits. D'après le blog d'OpenRouter du 24 septembre 2026, chaque achat supporte 5,5 % de frais, avec un minimum de 0,80 $. La FAQ annonce 5 % pour un paiement en crypto.

Les modèles gratuits existent, avec un plafond. Relevé le 29 septembre 2026 dans la FAQ : 50 requêtes par jour sans crédits achetés. Avec au moins 10 $ de crédits, on passe à 1 000.

Une session Claude Code enchaîne beaucoup de requêtes. Ce plafond se consomme donc vite, et rien ne garantit que ces modèles fonctionnent dans Claude Code.

Le calcul détaillé face à l'API directe est dans mon article sur ce que coûte OpenRouter. Ici, je ne chiffre pas de coût de session : je n'en ai pas mesuré.

Les erreurs à connaître avant de perdre une heure

Les pannes viennent rarement de la clé elle-même. Elles viennent de ce que le gateway relaie, ou pas, entre Claude Code et le modèle.

Le guide de compatibilité des gateways de Claude Code documente les erreurs 400. Les lignes 401 et /fast viennent du tableau de dépannage de sa page « Connect to an LLM gateway » et de la doc d'OpenRouter. Les champs bêta (des options d'API encore expérimentales) y reviennent souvent.

Symptôme Cause Remède
Erreur 401 Clé envoyée dans le mauvais en-tête HTTP ANTHROPIC_AUTH_TOKEN passe par Authorization: Bearer, ANTHROPIC_API_KEY par x-api-key : utiliser la variable qu'attend le gateway
400 avec Extra inputs are not permitted Champs bêta non relayés par le gateway Relayer l'en-tête et le champ ensemble, ou poser CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
400 qui nomme un champ de schéma d'outil Champs d'outils bêta (strict, defer_loading) envoyés sans leur en-tête Même remède que la ligne précédente
/fast affiche Fast mode has been disabled by your organization Avec le seul ANTHROPIC_AUTH_TOKEN, Claude Code considère le mode rapide désactivé CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1
/fast affiche « Fast mode ON », sans effet Opus pointe vers l'alias ~anthropic/claude-opus-latest : les requêtes partent sans le paramètre speed Figer un ID Opus précis, comme anthropic/claude-opus-5

Face à une 401, vérifiez d'abord /status, puis la variable qui porte la clé.

Les 400 sont plus sournoises, parce qu'elles peuvent apparaître après une mise à jour de Claude Code. La doc d'Anthropic le rappelle : un gateway qui ne relaie pas les nouveaux en-têtes et champs casse les fonctions correspondantes.

Ce que je n'ai pas mesuré

Ce guide s'appuie sur les documentations d'OpenRouter et de Claude Code, pas sur un banc de test. Je n'ai mesuré ni la latence, ni la qualité des réponses, ni le coût d'une session par OpenRouter.

Ma chaîne de production d'articles fait tourner chaque étape dans sa propre session d'agent IA. Ça m'a appris une chose : la doc d'un outil qui évolue vite se relit à la date où on l'applique. Les variables et les remèdes ci-dessus valent pour fin septembre 2026.

Les proxys locaux que citent d'autres guides sortent de ce cadre : je ne les ai pas testés.

Si votre besoin est un support garanti sur toutes les fonctions de Claude Code, restez en direct chez Anthropic. OpenRouter prend son sens quand une seule clé et une seule facture pour plusieurs fournisseurs pèsent plus que ce support.

À lire ensuite