Claude Code : ce plugin permet d'économiser 90% des tokens en lecture
Les quotas de Claude Code se resserrent. Le bonus de 50% sur les limites hebdomadaires a pris fin le 13 septembre, et toutes les techniques sont bonnes à prendre pour économiser des tokens. Après avoir étudié le fonctionnement de Claude Code et les différentes manières de l’optimiser, Dimitri Mazmanov, principal product manager chez Spotify, a développé un plugin qui réduit de 90% la consommation de tokens en lecture selon ses benchmarks.
Un modèle frontière là où il compte vraiment
Le préambule de Dimitri Mazmanov est très simple : les agents de code ne passent pas la majorité de leur temps à raisonner, mais à réaliser des actions. En l’occurrence des éditions et lectures de fichiers. Or, utiliser un modèle frontière pour lire un fichier de 800 lignes de code est mathématiquement disproportionné. De même, les agents consacrent une grande partie de leur budget tokens à générer du code boilerplate : création de classes, configuration d’un soft, écriture de tests… Comment couper drastiquement cette consommation purement inutile ? En déléguant ces deux opérations à des modèles beaucoup plus adaptés, bien sûr.
Jusqu’alors, il était assez complexe de mettre en place from scratch un système d’orchestration pour sélectionner le modèle adapté à la bonne tâche. Mais avec l’arrivée ces derniers mois des skills et des hooks, le développement de solutions tierces implémentées nativement dans son agent de code est devenu beaucoup plus simple.
Un plugin composé de skills et de hooks
Dimitri Mazmanov a donc développé un plugin complet basé sur deux agents, bulk-reader et code-writer. L’agent reader est chargé de répondre à une seule question posée par Claude Code lors d’une demande de lecture de plusieurs fichiers lourds. Il est typiquement appelé pour analyser du code. Cette unique mission est confiée à un modèle tiers, gemini-2.5-flash, avec une température déterministe (0,2). Le million de tokens en entrée y coûte 0,30 dollar, contre 5 dollars chez Claude Opus 5 : près de dix-sept fois moins cher pour lire les mêmes octets.
Prompt :
You are a precise code analyst. Read the provided files and answer the question concisely. Output structured bullets only. No greetings, no prose, no preambles. Lead every bullet with the exact name, type, or line number. Use nested bullets for details. Skip anything the caller did not ask for.
L’agent writer est chargé de produire le code déterministe et reproductible. Exemple : dupliquer une configuration donnée. Il prend en entrée le fichier source à dupliquer et doit respecter les conventions de naming déjà établies dans le code. On utilise également gemini-2.5-flash.
Prompt :
You generate code files based on a spec and reference files. Match the existing patterns, conventions, naming, and style exactly. Output only the code — no explanations, no markdown fences unless asked. If the spec is ambiguous, make reasonable choices that match the reference code's patterns.
Pour l’utilisation de ces agents, Dimitri Mazmanov avait, lors de ses tests, configuré le cadre d’utilisation des deux agents dans un fichier CLAUDE.md en langage naturel. Problème ? Claude ne respectait pas toujours les instructions d’appel des deux agents. Pour rendre l’appel aux agents déterministe, le product manager a alors construit un plugin Claude Code qui verrouille la lecture via des hooks (un mécanisme que Claude ne peut pas contourner), complétés par des scripts qui font le transport vers les agents et des skills qui indiquent la marche à suivre.
Plus précisément, deux hooks sont utilisés : check-file-size pour contrôler la taille d’un fichier que Claude Code souhaite lire. Si le fichier dépasse un seuil de lignes configurable (350 par défaut), il bloque la lecture et demande à Claude d’utiliser la skill reader. En revanche, les lectures ciblées passent, pour que Claude puisse parfois lire seulement une partie du fichier (peu consommateur de tokens). L’autre hook, check-bash-read, permet de faire de même avec les commandes de lecture en mode bash (cat, head, tail…). Pour l’écriture, la skill unique de writer est suffisante. Les deux skills writer et reader fournissent enfin à Claude les instructions exactes : quand et comment déléguer au script, et donc aux agents derrière.
90% de réduction en lecture, trois limites mineures
Sur un repo Java et avec quatre scénarios différents, Dimitri Mazmanov est parvenu à mesurer une réduction moyenne de 90% de la consommation de tokens en lecture avec Claude Code, en comparant avec et sans délégation à l’agent reader. En écriture, Spotify ne communique aucun chiffre.
Trois problèmes (mineurs) se posent toutefois avec le plugin : le reader ne peut pas retrouver de numéro de ligne précis quand il remonte son analyse. Claude doit alors lire manuellement les fichiers qu’il souhaite seulement éditer. Le modèle qui reçoit la délégation reste moins performant que Claude (c’est logique). Les tâches de debug, de décision d’architecture et de code critique ne sont de toute façon pas déléguées (règles dans les skills). Enfin, chaque délégation à l’agent peut augmenter la latence de la réponse de l’ordre de 10 à 30 secondes.
Une installation en trois commandes
L’installation est très simple et peut s’effectuer aussi bien sur Claude Code que sur Codex, le projet ayant été adapté.
Pour Claude Code, ouvrez votre terminal et entrez les commandes suivantes :
claude plugin marketplace add spotify/portal-ai-plugins claude plugin install portal@portal claude plugin install shunt@portal # optional: token-saving AiKA delegation
Enfin, une fois dans Claude Code, pour lancer le setup :
/portal:setup
Pour Codex :
codex plugin marketplace add spotify/portal-ai-plugins
Et une fois dans codex, entrez le prompt suivant :
Set up Spotify Portal for me.
Grosse limitation toutefois, avec ce plugin, vous dépendez de Spotify Portal, la plateforme interne de développement de Spotify, sur laquelle repose ici l’accès aux agents. Ce n’est pas nécessairement un problème, puisque de nombreuses entreprises utilisent déjà Portal, mais cela ajoute une dépendance lourde. Il est toutefois possible de s’en affranchir assez facilement : le plugin de Spotify peut être modifié afin de remplacer les appels à Portal par un appel direct à l’API de Gemini, moyennant une légère adaptation du script. Votre serviteur s'en est chargé.
Le fork du JDN
Pour installer notre fork du projet (nommé Siphon), rien n’est plus simple. Commencez par récupérer votre clef API Google AI Studio à cette adresse : https://aistudio.google.com/api-keys
Ouvrez ensuite un terminal et lancez la commande (pour exporter la clef en variable d’environnement) :
export GEMINI_API_KEY="your-key"
Pour Claude Code, lancez :
claude plugin marketplace add BenjaminPolge/siphon claude plugin install siphon@siphon-plugins
Pour Codex, où aucun hook ne se déclenche (la délégation repose alors sur le seul bon vouloir de l’agent), lancez :
codex plugin marketplace add BenjaminPolge/siphon codex plugin add siphon@siphon-plugins
Et enfin une fois dans Claude ou Codex :
/siphon:setup
Le plugin revisité est donc installé et prêt à l’emploi. Côté latence, avec notre fork et selon nos tests, les résultats sont nettement meilleurs que les 10 à 30 secondes annoncées chez Spotify. La lecture déléguée d’un fichier de 644 lignes est revenue en 2 secondes, avec 15 882 tokens envoyés à Gemini, mais seulement 299 réinjectés dans le contexte de Claude. Le fork est publié sous licence Apache 2.0, et ne coûte que les appels à Gemini passés sous votre propre clé, soit une fraction de centime par lecture déléguée. Une contrepartie à peser toutefois, les fichiers délégués partent vers l’API de Google (on rajoute donc une dépendance).
Sur le fond, l’intérêt du plugin dépasse sa simple utilisation. Il met en lumière une évolution attendue de l’agentique : un bon agent ne devrait plus s’appuyer en permanence sur le modèle le plus puissant, mais sélectionner le modèle le plus efficient et le mieux adapté à chaque tâche. C’est dans cette direction que l’on espère voir progresser Claude Code et Codex. Non plus seulement en devenant meilleurs pour exécuter des tâches, mais en apprenant à choisir, tâche par tâche, quel modèle mérite réellement d’être sollicité.