read-once : Un crochet de code Claude qui empêche les lectures redondantes de fichiers

Un développeur a créé un crochet PreToolUse appelé read-once qui répond à la tendance de Claude Code à relire les mêmes fichiers pendant une session, ce qui consomme des jetons inutiles.
Le problème et la solution
Claude Code relit souvent des fichiers qu'il a déjà en contexte. Par exemple, ouvrir un fichier de 500 lignes, effectuer une petite modification et faire relire l'intégralité du fichier par Claude coûte environ 2 000+ jetons par lecture. Dans des sessions typiques, les mêmes fichiers peuvent être lus 5 à 10 fois.
Le crochet read-once suit les fichiers que Claude a lus dans la session en cours. Lorsque Claude tente de relire un fichier inchangé, le crochet le bloque et affiche un message tel que : "read-once : config.rs (~3 400 jetons) déjà en contexte (lu il y a 4 min, inchangé). Économies de session : ~12 000 jetons."
Comment cela fonctionne
- À la première lecture : Enregistre le chemin du fichier, l'heure de modification et l'horodatage, puis autorise la lecture normalement.
- À la relecture d'un fichier inchangé : Bloque la lecture puisque Claude a déjà le contenu.
- À la relecture d'un fichier modifié : Au lieu d'autoriser une relecture complète, le crochet calcule la différence et renvoie uniquement ce qui a changé. Claude a déjà l'ancienne version en contexte et n'a besoin que du delta. Pour un fichier de 500 lignes où 3 lignes ont changé, cela utilise ~30 jetons au lieu de ~2 000, économisant 80 à 95 % sur les itérations de fichiers.
Fonctionnalités et configuration
L'outil est conscient du TTL avec des entrées de cache expirant après 20 minutes (configurable). Après expiration, les relectures sont autorisées car Claude peut avoir compacté le contexte et perdu le contenu précédent.
La configuration se fait via des variables d'environnement :
READ_ONCE_TTL=1200- secondes avant l'expiration du cache (par défaut 20 min)READ_ONCE_DIFF=1- activer le mode diffREAD_ONCE_DIFF_MAX=40- lignes de diff maximum avant de revenir à une relecture complèteREAD_ONCE_DISABLED=1- désactiver complètement
Détails techniques
L'outil entier fait environ 250 lignes de bash sans dépendances au-delà de jq et diff. Il est sous licence MIT et s'installe en s'ajoutant à vos crochets .claude/settings.json.
Le développeur a créé cet outil car il exécute Claude Code dans une boucle autonome où les coûts en jetons s'accumulent rapidement. Le mode diff seul aurait réduit leur utilisation de jetons par session d'environ 30 %.
📖 Lire la source complète : r/ClaudeAI
👀 See Also

French: Serveur MCP Local pour Claude Code avec Réduction de 98% des Tokens
Semble est un serveur MCP open source pour Claude Code qui remplace les workflows grep+read, en utilisant les embeddings, BM25 et le reclassement pour réduire l'utilisation des tokens d'environ 98% tout en indexant les dépôts en ~250ms.

Centre de commande : Environnement de codage IA pour ceux qui se soucient de la qualité
Command Center est un environnement de codage agentique qui se concentre sur les parties difficiles du code généré par l'IA : la révision, le refactoring et le déploiement avec une discipline d'ingénierie traditionnelle. Il comprend des walkthroughs, des agents de refactoring et une récupération par snapshots.

Specsmaxing : Lutter contre la psychose de l'IA avec des spécifications YAML et ACAI
Acai.sh présente le Specsmaxxing : une méthode pour lutter contre la perte de contexte des agents IA en rédigeant les exigences en YAML et en utilisant des Critères d'Acceptation Numérotés pour l'IA (ACAI) que les agents référencent dans le code.

Kula : Surveillance de serveur Linux autonome sans aucune dépendance.
Kula est un outil de surveillance de serveurs Linux léger qui s'exécute sous la forme d'un binaire unique sans dépendances externes ni bases de données. Il collecte les métriques système chaque seconde depuis /proc et /sys, les stocke dans un tampon circulaire à plusieurs niveaux intégré, et propose à la fois une interface tableau de bord web et une interface utilisateur en terminal (TUI).