En une ligne : on demande souvent si Claude Code peut pointer vers OpenRouter, et presque personne ne calcule d’abord quelle classe de modèle portera la facture une fois la liaison faite. D’abord le chemin après la machine et les variables exigées par la documentation, puis les quatre classes sur le même volume supposé, puis l’abonnement à côté du paiement à l’usage, et seulement ensuite les réglages qu’un développeur seul peut vraiment tourner.
Où va la requête une fois sortie de la machine
Claude Code parle en amont l’API Messages d’Anthropic. OpenRouter expose une entrée compatible, que sa documentation appelle Anthropic skin : les blocs de réflexion et les appels d’outils passent, et le coût tombe sur les crédits OpenRouter. Aucun processus local de relais n’est nécessaire.
L’URL de base est https://openrouter.ai/api, sans /v1 à la fin. Claude Code ajoute le reste du chemin. Une URL qui contient /v1 est l’un des moyens les plus courants de remplir toutes les variables et d’atteindre quand même le mauvais hôte.
Le cadre de compatibilité est étroit. Le guide Claude Code d’OpenRouter ne garantit l’intégration qu’avec le fournisseur de première partie d’Anthropic. D’autres identifiants peuvent apparaître dans le sélecteur. La même page dit que Claude Code est optimisé pour les modèles Anthropic et peut mal se comporter ailleurs. Brancher OpenRouter n’est pas le même geste que choisir en silence l’identifiant le moins cher du catalogue. Un prix affiché bas et une boucle d’outils qui va au bout sont deux vérifications distinctes.
L’achat de crédits et le prix du token sont aussi deux comptes. Le texte Claude Code d’OpenRouter dit que l’inférence n’est pas majorée : on paie le tarif du catalogue. L’achat de crédits ajoute 5,5 %, avec un minimum de 0,80 $. Face à un changement de classe, ces frais sont le petit nombre. Les tableaux mettent le rapport sur une seule page.
Quatre variables, et la ligne vide doit rester
Le démarrage rapide place la clé dans ANTHROPIC_AUTH_TOKEN et met ANTHROPIC_API_KEY à une chaîne vide explicite. Le jeton part en Authorization: Bearer, ce que la passerelle attend. La clé API part en x-api-key, et Claude Code la traite comme un identifiant Anthropic direct. La chaîne vide empêche le repli. Effacer l’ancienne clé sans écrire ="" peut laisser une session enregistrée en place dans une session interactive.
export OPENROUTER_API_KEY="<your-openrouter-api-key>"
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
export ANTHROPIC_API_KEY=""
L’ordre compte. ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY" est développé quand le shell lit cette ligne. Si la clé est définie plus bas, ou injectée par un gestionnaire de secrets après le profil, le jeton devient une chaîne vide et chaque requête échoue à l’authentification. Dans ~/.zshrc, définir OPENROUTER_API_KEY d’abord.
Si vous vous êtes déjà connecté à Claude Code avec un compte Anthropic, lancez une fois /logout, quittez, puis rouvrez. La documentation dit qu’une session en cache à côté d’un identifiant de passerelle provoque un conflit d’authentification au démarrage. Le symptôme visible est souvent un modèle introuvable, y compris des identifiants propres à OpenRouter comme openrouter/auto. Sur macOS, ce cache est un élément du trousseau nommé Claude Code-credentials. Une installation native n’écrit pas forcément ~/.claude/.credentials.json.
Vérification avec /status dans la session. La ligne d’authentification doit nommer ANTHROPIC_AUTH_TOKEN, et l’URL de base doit être https://openrouter.ai/api. Si la ligne cite encore ANTHROPIC_API_KEY, ou si la méthode de connexion est encore un compte Claude, ce processus n’a pas reçu les variables. La même requête doit apparaître sur la page Activity d’OpenRouter.
Un projet peut garder les variables dans .claude/settings.local.json. Ne pas les mettre dans un fichier .env — l’installateur natif n’en lit pas — et ne pas committer la clé. Un fichier versionné donne la clé de crédits à chaque clone. Pour une seule machine, la documentation préfère le profil du shell, et la lecture depuis le trousseau du système plutôt qu’une chaîne sk-or- collée dans un dotfile.
Une clé vide et une déconnexion sont deux étapes
/logout n’efface que la session OAuth en cache. Une vraie ANTHROPIC_API_KEY encore présente dans le shell n’est pas touchée, et les requêtes peuvent continuer à être facturées comme un usage Anthropic direct.
Un processus qui ne démarre pas, ou une machine à court de mémoire, est une panne différente de ce chemin de facturation. L’installation et les erreurs de démarrage sont dans le guide des erreurs de déploiement de Claude Code.
Les quatre classes font le prix unitaire
Claude Code répartit le travail entre Fable, Opus, Sonnet et Haiku, chacune avec sa variable. Les sous-agents utilisent CLAUDE_CODE_SUBAGENT_MODEL. L’exemple d’OpenRouter pointe les classes vers ~anthropic/claude-…-latest et l’exemple de sous-agent vers Opus. Cet exemple choisit un alias mobile. Ce n’est pas un budget personnel. Les alias suivent le catalogue. Aujourd’hui, ~anthropic/claude-opus-latest a le prix de anthropic/claude-opus-5.5. Demain, ce n’est pas obligatoirement cet identifiant.
Ce tableau est le catalogue public d’OpenRouter au 2026-10-20, en dollars par million de tokens. La lecture de cache est le tarif cache read du catalogue. Il s’applique seulement quand le fournisseur touche vraiment un cache de préfixe, pas comme une remise sur chaque token d’entrée.
| Classe | Identifiant fixé dans cet article | Entrée | Sortie | Lecture cache | 1 M entrée + 1 M sortie |
|---|---|---|---|---|---|
| Fable | anthropic/claude-fable-5.1 |
10 $ | 50 $ | 0,25 $ | 60 $ |
| Opus | anthropic/claude-opus-5.5 |
4 $ | 20 $ | 0,20 $ | 24 $ |
| Sonnet | anthropic/claude-sonnet-5.5 |
2 $ | 10 $ | 0,10 $ | 12 $ |
| Haiku | anthropic/claude-haiku-5.5 |
0,10 $ | 0,50 $ | 0,01 $ | 0,60 $ |
Le même jour, anthropic/claude-fable-5 suivait 5.1 en entrée et en sortie, 10 $ / 50 $, mais la lecture de cache était à 1 $, pas à 0,25 $. anthropic/claude-opus-5 était une autre ligne : 5 $ en entrée, 25 $ en sortie. anthropic/claude-sonnet-5 suivait 5.5 en entrée et en sortie, avec une lecture de cache à 0,20 $, le double des 0,10 $ de 5.5. Partager le nom Opus ou Sonnet ne veut pas dire partager la facture. Si le budget de cet article est celui que vous voulez tenir, fixez l’identifiant. Ne vous arrêtez pas à latest.
export ANTHROPIC_DEFAULT_FABLE_MODEL="anthropic/claude-fable-5.1"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-5.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-5.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-5.5"
export CLAUDE_CODE_SUBAGENT_MODEL="anthropic/claude-haiku-5.5"
La dernière ligne est un choix de budget, pas l’exemple officiel. L’exemple place les sous-agents sur Opus. S’ils cherchent surtout des fichiers, lancent des tests et rédigent des résumés, les laisser sur la même classe Opus facture chaque branche à 4 $ / 20 $. Avant de les passer sur Haiku, confirmez dans /model que les quatre classes sont listées, puis vérifiez la colonne modèle d’Activity contre l’identifiant fixé.
60 $ divisés par 0,60 $, c’est 100. C’est un rapport de catalogue, pas la mesure d’une session. Comment le texte devient un token facturé est dans la comparaison tokens et prix. L’usage et les prix affichés des autres familles cette semaine sont dans les classements OpenRouter.
Un même volume supposé, et l’écart entre les classes
Ce n’est pas un jour moyen tiré d’un journal. La question est une seule : garder les tokens, changer la classe, que fait le catalogue. Supposons une journée de travail de 8 millions de tokens d’entrée et 0,8 million de tokens de sortie, environ 10 pour 1, pour un agent qui renvoie le contexte et écrit beaucoup moins. Cette section suppose une lecture de cache à zéro.
| Toute la journée sur cette classe | Ce jour-là | 22 journées de ce type |
|---|---|---|
| Fable 5.1 | 120 $ | 2 640 $ |
| Opus 5.5 | 48 $ | 1 056 $ |
| Sonnet 5.5 | 24 $ | 528 $ |
| Haiku 5.5 | 1,20 $ | 26,40 $ |
| Moitié Haiku, 40 % Sonnet, 10 % Opus | 15 $ | 330 $ |
Le calcul se vérifie. Une journée Opus 5.5, c’est 8 × 4 $ + 0,8 × 20 $ = 48 $. La ligne mixte partage les mêmes 8 millions / 0,8 million : la moitié des tokens sur Haiku fait 0,60 $, 40 % sur Sonnet font 9,60 $, 10 % sur Opus font 4,80 $, et la somme est 15 $. Vingt-deux, c’est environ un mois de jours travaillés. Ce n’est ni une remise ni un forfait.
Une seconde hypothèse, marquée de la même façon : si la moitié de l’entrée de cette journée Opus est facturée en lecture de cache, alors 4 millions × 4 $ + 4 millions × 0,20 $ + 16 $ de sortie = 32,80 $, et non 48 $. Une sortie d’outil qui change casse le préfixe, et le tour suivant revient au plein tarif d’entrée. 32,80 $ n’est pas une promesse.
Les 5,5 % à l’achat de crédits sont hors tableau. Sur 48 $, c’est environ 2,64 $. Sur 330 $, environ 18 $. Ils ne ferment pas l’écart de 2 310 $ entre un mois de journées entièrement Fable et la ligne mixte. Changez d’abord la classe.
Ne pas classer ce tableau contre un abonnement Pro
48 $ dépasse déjà un mois de Pro, et Pro n’est pas un Opus illimité. Les chiffres sont des tarifs de catalogue multipliés par des tokens supposés. Si votre session n’a pas envoyé 8 millions de tokens d’entrée, le tableau n’est pas votre journée.
Un abonnement, la console et OpenRouter sont trois compteurs
Le 2026-10-20, la page de tarifs Claude affichait encore ces montants, hors taxe, et indiquait que les offres peuvent changer. Pro coûte 20 $ par mois, ou 17 $ par mois en annuel (200 $ d’avance). Max 5x coûte 100 $ par mois, Max 20x 200 $ par mois. Pro et Max incluent Claude Code et partagent l’usage avec Claude sur le web, le bureau et le téléphone. Le centre d’aide décrit une limite de session de cinq heures plus une limite hebdomadaire. Max ajoute une limite hebdomadaire séparée pour Fable. Les facteurs 5x et 20x sont par session de cinq heures, par rapport à Pro.
OpenRouter est un autre compteur. Le centre d’aide dit que si ANTHROPIC_API_KEY est défini, Claude Code facture l’API au lieu de l’usage inclus dans l’abonnement. Le chemin OpenRouter exige aussi /logout, une clé API vide et ANTHROPIC_AUTH_TOKEN. Une fois le chemin ouvert, la première requête dépense des crédits OpenRouter. Elle ne puise pas dans ce qui reste du forfait Pro.
Choisissez selon le mur que vous heurtez, pas selon la passerelle qui paraît plus récente :
- Un usage qui reste dans Pro ou Max est un prix plafonné. Après 20 $ ou 100 $, les sessions supplémentaires de la période ne continuent pas à s’accumuler au tarif Opus. Elles touchent la limite. Si la limite suffit, il n’y a pas de raison de sortir le travail sur un compteur de tokens seulement pour utiliser OpenRouter.
- Si vous touchez la limite chaque semaine et que vous achèteriez de toute façon des crédits API, regardez si le mur est Fable ou Opus. Déplacer les sous-agents et les modifications ordinaires vers Haiku et Sonnet coupe souvent plus directement que de monter d’un cran Max. Un palier plus haut achète plus d’usage d’abonnement. Il ne baisse pas le prix du token.
- Si vous voulez un plafond dur sur une clé, et une colonne modèle par requête, la limite de clé et la page Activity d’OpenRouter montrent ce que la barre d’usage de l’abonnement ne montre pas. Vous payez les tarifs du catalogue pour cette vue, plus 5,5 % à l’achat de crédits. Quand les tarifs directs de la console correspondent au catalogue, ces 5,5 % sont l’écart propre à la passerelle, en échange du basculement et d’une clé sur toutes les requêtes. « Pas de majoration sur l’inférence » décrit cette couche. Cela ne veut pas dire que la passerelle est moins chère que Pro.
Claude Code et un assistant dans l’éditeur sont-ils le même produit : c’est le sujet de Claude Code face à Cursor. Cet article compare les outils. Celui-ci compare les compteurs une fois la liaison faite.
Cinq réglages, dans l’ordre d’un développeur seul
D’abord, ne pas laisser la session sur Fable ou Opus toute la journée. Les quatre variables sont ce réglage. Le raisonnement long reste sur Fable, les modifications difficiles sur Opus, les changements ordinaires sur Sonnet, la recherche et les complétions courtes sur Haiku. Une fois l’identifiant fixé, un changement de prix d’alias ne remplace pas en silence la classe que vous avez calculée.
Ensuite, descendre les sous-agents à part. Copier l’exemple officiel les fait suivre Opus. Une session parente qui lance trois sous-agents peut dépenser plus sur les branches que dans la réponse visible du fil principal, si chaque branche est en Opus. Sur un budget personnel, mettez CLAUDE_CODE_SUBAGENT_MODEL sur Haiku, et ne le montez que lorsque cette sous-tâche est le raisonnement difficile.
Troisièmement, /fast coûte plus cher. La documentation décrit jusqu’à environ 2,5 fois la vitesse de sortie, à un tarif supérieur à celui de l’Opus correspondant. Cela couvre Opus 4.6, 4.7, 4.8 et Opus 5. Pas Fable. Pour que /fast de Claude Code envoie vraiment speed: "fast" via OpenRouter, il faut Claude Code 2.1.96 ou plus récent, CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1, et la variable Opus fixée sur un identifiant concret tel que anthropic/claude-opus-5. Fixée sur ~anthropic/claude-opus-latest, /fast peut afficher qu’il est actif alors que la requête omet speed. Un comportement compte plus que l’affichage : si la session est sur Fable, /fast n’accélère pas Fable. Claude Code bascule la session vers l’Opus configuré, et les requêtes suivantes sont facturées en Opus. Laissez l’interrupteur coupé si vous n’achetez pas de la vitesse.
Quatrièmement, plafonner la clé. Une clé OpenRouter peut avoir sa propre limite. Gardez la clé Claude Code à part des clés d’essai, et fixez le plafond mensuel au montant que vous pouvez accepter de brûler. La colonne modèle d’Activity sert à voir si la journée est revenue sur Fable. Le script de statusline du dépôt d’exemples OpenRouter cumule le coût et les remises de cache de cette session. Chaque rafraîchissement redemande le point de génération. Une longue session rattrape peu à peu. Ce n’est pas une facture.
Cinquièmement, un contexte plus long est une facture d’entrée. Un [1m] en fin de nom ne change que la fenêtre supposée par Claude Code, pour qu’il ne compacte pas trop tôt. OpenRouter retire la marque avant le routage. Une fenêtre supposée plus grande est aussi un préfixe plus grand que vous pouvez envoyer. Compacter, ne pas lire tout le dépôt, garder un préfixe stable éligible au cache : ce sont des économies d’entrée. La lecture de cache est déjà d’un ordre de grandeur sous l’entrée dans le tableau, et elle ne s’applique que tant qu’une sortie d’outil n’a pas cassé le préfixe.
À côté de la facture modèle, il y a la facture machine. Une session laissée tourner la nuit, avec une compilation et un simulateur qui se disputent la mémoire du même Mac, n’apparaît pas chez OpenRouter. Le dimensionnement mémoire est dans le guide mémoire serveur pour Claude Code. Gardez les deux factures séparées, sinon un dépassement de tokens se lit comme une machine lente.
Ne pas faire d’un modèle non Anthropic l’économie par défaut
Le sélecteur apparaît après CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1. La documentation le décrit comme une liste choisie, pas le catalogue entier, et certaines entrées routent vers des fournisseurs autres qu’Anthropic. Elle demande aussi de garder Anthropic première partie en tête de priorité, et le mode rapide n’est servi que là.
Un appel d’outil raté renvoie un tour complet de contexte. Un tarif qui n’est qu’une fraction d’Opus, recommencé deux fois, peut revenir dans le même ordre de grandeur alors que la modification n’est pas finie. Si DeepSeek ou une autre famille a sa place dans la boucle de code, testez-la comme un outil à part. Ne la glissez pas comme substitut silencieux de l’une des quatre variables de Claude Code. Capacité et prix ensemble sont dans DeepSeek V4 Flash face à Claude Opus.
Ordre pour un développeur seul
Vérifiez d’abord si vous êtes encore dans le pool de l’abonnement. Si oui, et si la limite tient, restez sur Pro ou Max. Si vous payez déjà au token, séparez d’abord les quatre classes et les sous-agents, puis posez un plafond mensuel sur la clé. Les autres modèles du sélecteur viennent après.
Questions
Quels modèles le guide OpenRouter garantit-il vraiment pour Claude Code ? Seulement Anthropic première partie. D’autres modèles peuvent apparaître dans le sélecteur. Ils sont hors de cette phrase.
OpenRouter ajoute-t-il une marge sur le prix du token ? Sa page Claude Code dit que l’inférence n’est pas majorée, et que le tarif est celui du catalogue. Le supplément est à l’achat de crédits : 5,5 %, minimum 0,80 $.
Pro est-il moins cher que le paiement au token ? Pas sans un volume. Si vous restez dans Pro (20 $ par mois, ou 17 $ annualisés) ou dans Max (100 $ / 200 $), l’abonnement est un plafond. Après la connexion à OpenRouter, les requêtes dépensent des crédits et ne puisent plus dans cet usage inclus. Les 48 $ et 15 $ plus haut sont un calcul de catalogue sur des tokens supposés, pas votre facture.
/fast fait-il économiser ? Non. Il échange un tarif plus haut contre une sortie plus rapide, et seulement sur une partie des modèles Opus. L’activer pendant une session Fable déplace la session vers une facturation Opus.
Peut-on mettre la clé dans ~/.zshrc ? Cela fonctionne, et c’est en clair. Un dotfile qui arrive dans un dépôt ou dans un presse-papiers fait fuiter la clé. La lire depuis le trousseau du système est l’habitude plus serrée. En cas de fuite, révoquez-la sur la page des clés d’OpenRouter. Pour un projet, utilisez settings.local.json et ne le committez pas.
J’ai changé l’URL de base et Activity est toujours vide. Pourquoi ? Regardez d’abord /status. La ligne d’authentification doit être ANTHROPIC_AUTH_TOKEN, et l’URL de base https://openrouter.ai/api sans /v1. Effacez une ancienne connexion de compte avec /logout. Une ANTHROPIC_API_KEY restante dans le shell doit être une chaîne vide. La déconnexion seule ne l’efface pas.
ZavCloud Developer Infrastructure
Une fois le modèle au compteur, ne faites pas disputer la mémoire au build
Une longue session, Xcode et un simulateur partagent la mémoire d'un même Mac. Cette facture n'est pas chez OpenRouter.
Un nœud Mac dédié se loue au mois, à part des tokens.