Caveman - économiser les tokens Claude/Codex avec un parler d’homme des cavernes
(github.com/JuliusBrussee)- Une astuce qui force les réponses en parler d’homme des cavernes pour réduire en moyenne de 65 à 75 % les tokens de sortie
- Trois niveaux de compression, Lite · Full · Ultra, pour ajuster l’intensité tout en conservant la précision technique et en produisant des réponses courtes et efficaces
- Dans des benchmarks réels, les explications liées à React, PostgreSQL et Git voient toutes leur consommation de tokens tomber à moins de la moitié
- Offre en même temps une vitesse de réponse environ 3 fois supérieure, une meilleure lisibilité et une réduction des coûts
- Installation possible par une commande simple sur Claude Code et Codex, avec un fonctionnement persistant sur toute la session
Présentation de Caveman
- Un plugin pour Claude Code et Codex qui convertit les réponses du LLM en « parler d’homme des cavernes » (
caveman-speak) afin de réduire l’usage des tokens d’environ 75 % - Produit des réponses courtes et efficaces en supprimant les mots inutiles tout en gardant la précision technique
- L’installation se fait avec une commande sur une seule ligne et reste active dans toutes les sessions
- Seuls les tokens de sortie sont réduits — aucun effet sur les tokens de réflexion/raisonnement
- Éléments supprimés :
- Salutations et introductions : "Sure, I'd be happy to help" (8 tokens gaspillés)
- Débuts d’explication causale : "The reason this is happening is because" (7 tokens)
- Formulations de recommandation : "I would recommend that you consider" (7 tokens)
- Entrées superflues : "Sure, let me take a look at that for you" (10 tokens)
- Éléments conservés : blocs de code, termes techniques (comme polymorphism), messages d’erreur, messages de commit git et de PR
Exemples Before / After
- La même explication technique est compressée en phrases courtes
- Explication des causes d’un rerender de composant React : 69 tokens → 19 tokens
- Explication d’un bug de middleware d’authentification : plus de 75 % de réduction des tokens
- Trois niveaux de compression réglables : Lite / Full / Ultra
- Lite (
/caveman lite) : supprime les formulations inutiles tout en gardant la grammaire — professionnel, sans verbiage - Full (
/caveman full) : mode caveman par défaut — articles omis, phrases courtes et fragmentaires - Ultra (
/caveman ultra) : compression maximale — style télégraphique, tout est abrégé
- Lite (
Benchmarks
- La comparaison de l’usage réel des tokens via l’API Claude montre une réduction moyenne de 65 %
- Plage de réduction : 22 % à 87 %
- Explication d’un bug de rerender React : 1 180 → 159 tokens (87 % de réduction)
- Configuration du pool de connexions PostgreSQL : 2 347 → 380 tokens (84 % de réduction)
- Build multi-stage Docker : 1 042 → 290 tokens (72 % de réduction)
- Explication de git rebase vs merge : 702 → 292 tokens (58 % de réduction)
- Refactorisation callback → async/await : 387 → 301 tokens (22 % de réduction, effet minimal)
- Seuls les tokens de sortie diminuent, les tokens de réflexion et de raisonnement restent inchangés
- Les principaux bénéfices sont une meilleure lisibilité et une hausse de la vitesse de réponse ; la baisse des coûts est un effet secondaire
Fondement scientifique
- L’article de mars 2026 "Brevity Constraints Reverse Performance Hierarchies in Language Models" montre qu’en imposant des réponses concises à de grands modèles, on obtient jusqu’à 26 points de pourcentage de gain de précision sur certains benchmarks, avec inversion du classement de performance
- "Verbose not always better. Sometimes less word = more correct"
- Une réponse courte peut parfois être plus juste qu’une réponse verbeuse
Installation
- Installation en une ligne :
npx skills add JuliusBrussee/caveman - Plugin Claude Code :
claude plugin marketplace add JuliusBrussee/caveman - Codex : cloner le dépôt puis rechercher et installer Caveman dans le menu
/plugins - Déclencheurs :
/caveman, "talk like caveman", "caveman mode", "less tokens please" - Désactivation : "stop caveman" ou "normal mode"
- Une seule installation → s’applique ensuite à toute la session
Utilisation
-
Commandes de déclenchement :
/caveman,$caveman, “talk like caveman”, “caveman mode”, “less tokens please” -
Commandes d’arrêt : “stop caveman”, “normal mode”
-
Réglage de l’intensité
Level Trigger Caractéristiques Lite /caveman liteGrammaire conservée, suppression des mots inutiles Full /caveman fullMode par défaut, suppression des articles et du verbiage Ultra /caveman ultraCompression maximale, expression centrée sur les abréviations -
Le réglage reste actif jusqu’à la fin de la session
-
Licence MIT / Python 100 % / prise en charge des plugins Claude Code & Codex
2 commentaires
Le style spartiate, ici aussi..? haha
Avis Hacker News
C’est l’auteur du post. Certaines personnes réfutent des affirmations plus fortes que ce que ce dépôt avance réellement. En fait, c’était fait comme une blague, pas comme un commentaire de niveau recherche
Cette compétence ne cherche pas à réduire les reasoning tokens cachés, mais à diminuer le superflu du texte généré. Le code lui-même n’est pas affecté
Je pense que les modèles d’Anthropic sont suffisamment ajustés via RL pour qu’il soit difficile de dégrader volontairement fortement leurs performances
Le chiffre « ~75 % » indiqué dans le README venait de tests préliminaires, donc ça aurait dû être formulé avec plus de prudence. Un benchmark formel est maintenant en préparation
La compétence n’est pas gratuite : elle consomme une partie du contexte au chargement. Donc une vraie évaluation doit inclure les tokens d’entrée/sortie, la latence et la qualité
Il existe aussi des recherches montrant que des prompts concis peuvent réduire la longueur des réponses tout en maintenant la qualité (lien vers l’article)
En résumé, c’est une idée intéressante, mais il y a beaucoup d’interprétations exagérées, et le README devrait être réécrit plus précisément avant une évaluation formelle
(Et je ne comprends toujours pas pourquoi ce genre de commentaire lié au sujet continue d’être downvoté)
Si on ajoute un prompt du type « comporte-toi bêtement », on peut évidemment dégrader les performances. La vraie question, c’est l’impact réel d’un style de sortie particulier
J’ai toujours pensé que quand on force un LLM à parler autrement que dans son style par défaut, sa capacité de raisonnement diminue.
Parce qu’une partie des couches du modèle doit alors se concentrer soit sur « quoi dire », soit sur « comment le dire »
Dans des expériences de fiction collaborative ou de jeu de rôle, j’ai vu que plus le modèle doit prendre de faits en compte, plus il lui devient difficile de maintenir le style
L’idée est amusante. Mais j’aimerais aussi voir une approche qui mise non pas sur des tokens plus simples, mais sur des tokens plus riches.
Par exemple, utiliser une expression plus fine comme « improve idiomatically » au lieu de « make good ». Le langage est un modulateur qui ajuste notre rapport au réel, donc un usage plus précis pourrait donner de meilleurs résultats. Hâte de voir les benchmarks
J’ai parlé à Claude en mode caveman, et la compréhension était moins bonne, avec beaucoup de malentendus.
Au contraire, il fallait souvent expliquer davantage, et s’il y avait des fautes de frappe, la perte de contexte était importante.
Au final, j’avais l’impression qu’il fallait plus de mots. Et le LLM semblait aussi tirer moins d’informations de ses propres réponses précédentes
J’ai vu un billet où un développeur au cerveau de Grug rencontre les outils d’IA (grugbrain.dev)
L’idée est intéressante. Mais dans mon entreprise, la performance est évaluée selon la consommation de tokens. Est-ce qu’il existe aussi une compétence pour rendre Claude volontairement verbeux ?
/tmpà chaque boucleIdée mignonne, mais en pratique, le goulot d’étranglement, ce sont les tokens d’entrée.
Le modèle lit une grande quantité de fichiers, de sorties d’outils et d’arbres de répertoires, mais la sortie ne contient que quelques centaines de lignes de code et une brève explication
Au passage, on peut transmettre la même idée sans « Cute idea, but » (lien)
Il y a aussi cette recherche connexe : ‘Brevity Constraints Reverse Performance Hierarchies in Language Models’ (2026)
Intéressant. On pourrait peut-être aussi décompresser le résultat avec un modèle 2B
Quelqu’un l’a peut-être déjà tenté, ou alors je me demande si je devrais l’implémenter moi-même
Si les LLM communiquaient dans un langage non humain au lieu du langage humain, on pourrait gagner en efficacité.
Un petit modèle local traduirait l’entrée humaine vers un langage plus adapté aux LLM, puis un grand modèle réfléchirait dans ce langage avant d’être retraduit
Des modèles avec une petite fenêtre de contexte, comme Apple Fundamental Models, pourraient peut-être servir de couche de traduction
Il semble aussi possible de faire découvrir ce langage par renforcement. Ça ferait un projet vraiment passionnant
Parce qu’il faudrait inventer une langue totalement nouvelle et une nouvelle méthode d’entraînement. Mais si quelqu’un lève des fonds VC pour ça, je veux bien en être