Universal Claude.md – Réduire les tokens de sortie de Claude
(github.com/drona23)- Un fichier de configuration qui réduit le gaspillage de tokens de sortie en supprimant chez les modèles Claude les introductions, conclusions et reformulations inutiles
- En ajoutant
CLAUDE.mdà la racine du projet, l’effet est appliqué immédiatement sans modifier le code, avec une réduction moyenne de 63 % des tokens - Les réponses sont condensées grâce à 12 règles, dont sortie ASCII uniquement, interdiction de spéculer et limitation stricte au périmètre demandé
- L’impact sur les coûts est important dans les environnements à fort volume de sortie, comme les pipelines d’automatisation, la génération de code ou les boucles d’agents, mais cela peut être inefficace pour une requête unique
- Publié sous licence MIT, le projet permet une gestion des règles par profils, selon l’équipe ou la tâche, ainsi que des contributions de la communauté
Aperçu du problème
- Dans Claude Code, chaque mot généré entraîne un coût en tokens, et les paramètres par défaut laissent peu de contrôle à l’utilisateur sur le format des réponses
- Par défaut, le modèle ajoute automatiquement des formules de politesse d’ouverture comme "Sure!" ou "Great question!", des conclusions formelles comme "I hope this helps!", des reformulations de la question et des suggestions inutiles
- Il utilise aussi des caractères susceptibles de casser les parseurs, comme les tirets cadratins, guillemets intelligents et caractères Unicode, et peut produire une abstraction excessive du code ou des marques d’accord erronées
- Résultat : un gaspillage de tokens avec très peu de valeur informationnelle réelle
Solution
- Ajouter un fichier
CLAUDE.mdà la racine du projet permet à Claude Code de le lire automatiquement et de modifier immédiatement son comportement de sortie - Cela fonctionne sans changement de code ni configuration supplémentaire, avec une baisse d’environ 63 % de l’usage des tokens de sortie
- Exemple de structure
your-project/ └── CLAUDE.md
Cas favorables et défavorables
-
Cas favorables
-
Pipelines d’automatisation, boucles d’agents, génération de code et autres tâches à fort volume de sortie
- Quand les réponses verbeuses et répétitives de Claude s’accumulent dans des tâches structurées et récurrentes
- Dans un environnement d’équipe où un format de sortie cohérent entre les sessions est nécessaire
-
-
Cas défavorables
- Pour une requête courte unique ou un usage ponctuel,
CLAUDE.mdconsomme lui-même des tokens d’entrée à chaque fois, ce qui peut au contraire augmenter le coût - Aucun effet sur la correction des hallucinations ou des erreurs d’architecture nécessitant une résolution en profondeur
- Dans les pipelines qui ouvrent une nouvelle session à chaque tâche, l’avantage lié à une session persistante disparaît
- Pour garantir la fiabilité d’un parseur à grande échelle, un mode JSON ou des outils basés sur un schéma sont plus adaptés
- Cela peut sembler trop contraignant pour des travaux exploratoires ou centrés sur la discussion
- Pour une requête courte unique ou un usage ponctuel,
-
Compromis réel
- Comme
CLAUDE.mdconsomme lui-même des tokens d’entrée, le bénéfice net n’apparaît que lorsque le volume de sortie est suffisamment élevé - Pour les usages à faible volume, le coût peut être supérieur aux économies réalisées
- Comme
Résultats du benchmark
- Test réalisé avec les mêmes 5 prompts
Test Standard Optimisé Réduction Explication de async/await 180 mots 65 mots 64 % Revue de code 120 mots 30 mots 75 % Explication d’une API REST 110 mots 55 mots 50 % Correction d’hallucination 55 mots 20 mots 64 % Total 465 mots 170 mots 63 % - Environ 295 mots économisés, sans perte d’information
- Il s’agit toutefois d’un indicateur de tendance : aucun contrôle statistique ni expérimentation répétée n’a été effectué
- Le gain net n’apparaît que dans les cas de fort volume de sortie
-
Exemple d’économies à grande échelle
Volume d’usage Tokens économisés par jour Économie mensuelle (base Sonnet) 100 fois/jour environ 9 600 environ $0.86 1 000 fois/jour environ 96 000 environ $8.64 3 projets environ 288 000 environ $25.92
Exemple avant/après
-
Réponse standard à une revue de code (120 mots)
- Inclut des compliments verbeux, des explications et des suggestions
-
Après application de
CLAUDE.md(30 mots)- Transmet uniquement l’essentiel, sous une forme comme "Bug: <= causes an off-by-one error...", avec une réduction de 75 % des tokens
Éléments modifiés
| N° | Problème | Méthode de correction |
|---|---|---|
| 1 | Introduction flatteuse | Interdite - commencer la réponse dès la première ligne |
| 2 | Conclusion creuse | Interdite - suppression de "I hope this helps!" |
| 3 | Reformulation de la question | Interdite - exécution immédiate |
| 4 | Tirets cadratins, guillemets intelligents, Unicode | Sortie ASCII uniquement imposée |
| 5 | Formule du type "As an AI..." | Interdite |
| 6 | Avertissements inutiles | Autorisés uniquement en cas de risque réel pour la sécurité |
| 7 | Suggestions hors demande | Interdites - exécuter uniquement ce qui est demandé |
| 8 | Abstraction excessive du code | Seul le code fonctionnel le plus simple est autorisé |
| 9 | Hallucinations sur des faits incertains | Dire explicitement "je ne sais pas", spéculation interdite |
| 10 | Ignorer les corrections de l’utilisateur | Les corrections deviennent des faits de référence pour la session |
| 11 | Relecture de fichiers en doublon | Interdite pour un même fichier |
| 12 | Extension du périmètre | Interdiction de modifier du code hors demande |
Conseils de la communauté
- Rédiger les règles en fonction des schémas d’échec réellement observés est le plus efficace
- Exemple : si Claude avale les erreurs d’un pipeline -> ajouter une règle du type "en cas d’échec d’une étape, arrêter immédiatement et signaler l’erreur complète ainsi que la traceback"
-
Le fichier
CLAUDE.mdpeut être fusionné de manière hiérarchique- Global (
~/.claude/CLAUDE.md) : règles générales (ton, ASCII, etc.) - Racine du projet : contraintes propres au projet (ex. : interdiction de modifier
/config) - Sous-répertoires : règles détaillées par tâche
- Cela permet de répartir la gestion des règles et d’éviter qu’un fichier ne devienne trop volumineux
- Global (
Configuration par profils
- Il est possible de choisir un niveau de compression différent selon le type de projet
Profil Usage recommandé CLAUDE.mdGénérique profiles/CLAUDE.coding.mdDéveloppement, revue de code, débogage profiles/CLAUDE.agents.mdAutomatisation, systèmes multi-agents profiles/CLAUDE.analysis.mdAnalyse de données, recherche, reporting
Mode d’emploi
- Option 1 (générique)
curl -o CLAUDE.md https://raw.githubusercontent.com/drona23/claude-token-efficient/… - Option 2 (choix d’un profil)
git clone https://github.com/drona23/claude-token-efficient cp claude-token-efficient/profiles/CLAUDE.coding.md your-project/CLAUDE.md -
Option 3 (manuel)
- Copier directement le contenu de
CLAUDE.mddepuis le dépôt
- Copier directement le contenu de
Règle de priorité
-
Les commandes utilisateur priment toujours
- Si l’utilisateur demande explicitement, par exemple, "explique en détail", Claude s’y conforme tel quel
CLAUDE.mdn’entrave pas l’intention de l’utilisateur
Comment contribuer
- Si vous identifiez un comportement perfectible, ouvrez une Issue
- Le comportement par défaut problématique
- Le prompt qui l’a déclenché
- La règle corrective proposée
- Les propositions de la communauté seront intégrées dans une prochaine version, avec crédit attribué aux contributeurs
Vérification et références
- Les résultats complets du benchmark sont disponibles dans
BENCHMARK.md - Le projet a été conçu à partir de cas réels de mécontentement dans la communauté Claude
- De nombreuses sources de référence associées sont incluses (issues GitHub, The Register, DEV Community, Medium, Anthropic Docs, etc.)
Licence
- Licence MIT, utilisation, modification et redistribution libres
1 commentaires
Commentaires sur Hacker News
Le benchmark ici est biaisé vers des tâches explicatives uniques et ne me semble pas adapté aux boucles agentiques comme la génération de code
Je me demande si, quand un projet est en cours, les explications verbeuses de Claude n’aident pas au contraire à maintenir la cohérence et la concentration de la session
La règle « ne pas répéter le contexte redondant » est bonne, mais je pense au contraire qu’utiliser davantage de jetons de raisonnement orientés objectif peut aider
On manque encore de données pour savoir si cette approche est réellement efficace en codage agentique
/handoffpour générer automatiquement un rapport Markdown avant que la session n’atteigne sa limite de compressionCe fichier sert d’archive permanente de la session et de « rapport quotidien », ce qui le rend pratique pour y revenir plus tard ou le partager à un manager
Pour préserver la cohérence à long terme, je pense qu’une telle méthode de documentation résumée est meilleure
J’ai publié la méthode d’installation ici
D’après des recherches récentes, les chemins de raisonnement redondants (self-consistency) et les ensembles de modèles aident à améliorer les performances
S’obséder sur une longueur minimale va à l’encontre de l’objectif d’apprentissage RL
Le code de test est ici
Le planning mode de Claude Code ne fonctionne pas correctement, donc je suis sceptique vis-à-vis de l’approche par fichiers .md
À mon avis, le planning mode devrait simplement être une fonctionnalité qui désactive l’écriture de fichiers
La règle « la réponse toujours à la 1re ligne, le raisonnement ensuite » ignore la nature autorégressive des LLM
Fixer d’abord la réponse fait courir au raisonnement ultérieur un risque de biais de confirmation
Une méthode qui compresse le raisonnement, comme dans l’article Compressed Chain of Thought (CCoT), serait plus efficace
Il y a une légère perte de qualité, mais des gains en vitesse et en coût (lien vers l’article)
Autrement dit, la règle « réponse d’abord » ne change que l’ordre de sortie, pas l’ordre réel du raisonnement
Ce benchmark est dépourvu de sens car il compare seulement le nombre de jetons de sortie sans tenir compte de la précision
Il serait facile d’obtenir un bon score avec un prompt du type « réponds toujours en un seul mot »
Des règles comme « si l’utilisateur signale une erreur factuelle, accepte-la sans discuter » sont dangereuses
Je pense que ce genre de solution universelle risque surtout de perdre vite son intérêt ou d’être absorbé par CC
Changer fréquemment de workflow est trop fatigant
La configuration par défaut de Claude Code est pour l’instant la plus stable
J’aime bien les Skills, mais je n’utilise presque jamais MCP ni worktree
Il suffit de traiter CLAUDE.md comme une note de brouillon destinée à un collègue intelligent pour que cela fonctionne très bien
Si Anthropic ne l’a pas ajouté directement, c’est probablement parce que le gain de performance n’a pas été démontré
Même si elles sont utiles un temps, elles sont vite absorbées par les fonctions natives ou disparaissent
Donc, même en utilisant ce genre de scripts expérimentaux, on peut rester à jour en actualisant souvent les fichiers md
À la question « si le fichier est chargé dans le contexte à chaque message, n’est-ce pas du gaspillage de jetons ? »,
je pense que la fonction de personnalisation de Claude joue déjà ce rôle
À mes yeux, la concision n’a de valeur que lorsqu’elle améliore la qualité
Les outils connexes vus sur Reddit sont aussi intéressants :
Headroom compresse le contexte de 34 %,
RTK compresse la sortie CLI de 60 à 90 %,
MemStack fournit une mémoire persistante pour éviter des relectures de fichiers inutiles
J’ai l’impression que ce genre de tentative résulte plutôt d’une mauvaise compréhension des principes de base des LLM
« Réponse d’abord, raisonnement ensuite » ignore la structure autorégressive des transformers
Comme l’apprentissage RL ajuste déjà la longueur optimale et la qualité, des modifications excessives peuvent entraîner une baisse de performance
Le modèle a été entraîné à effectuer un raisonnement en plusieurs étapes à partir de l’anglais
C’est une approche expérimentale qui vise l’efficacité plus que la qualité
C’est pourquoi je n’utilise que des outils first-party plutôt que des solutions tierces comme OpenCode
Comme on le voit dans la vidéo de Karpathy, plus le modèle utilise de jetons, plus la précision a tendance à augmenter
Cette approche pourrait au contraire dégrader le modèle
Mais forcer le modèle à donner directement une réponse sans raisonnement risque de créer un biais de fixation précoce
Je ne comprends pas pourquoi ce genre de projet sans intérêt devient tendance sur HN
Les vrais outils pour réduire l’usage des jetons sont claude-mem et lumen
Autrefois, on faisait de la recherche sur de nouveaux algorithmes de hachage, de chiffrement et de compression
Aujourd’hui, l’ironie est qu’on cherche comment dire à une IA de se taire