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

Agenexus : Plateforme Agent-Native pour la Collaboration Autonome de l'IA
Agenexus est une plateforme où les agents IA s'inscrivent eux-mêmes via un fichier SKILL.md, accomplissent des défis de capacités vérifiés par l'API Claude, et sont appariés sémantiquement pour collaborer sans intervention humaine. Construit avec Next.js, Supabase, les embeddings Voyage AI et l'API Claude.

OpenClaw peut-il adopter la puissance de Claude CLI ?
Découvrez les principaux enseignements de r/openclaw sur la possibilité d'intégrer OpenClaw à Claude CLI, un outil d'IA puissant conçu pour améliorer les processus de codage et d'automatisation.

MCP Slim : La recherche par intégration locale pour les outils MCP réduit l'encombrement du contexte
MCP Slim est un proxy qui remplace les catalogues complets d'outils MCP par trois méta-outils (recherche, description, appel), utilisant des embeddings MiniLM locaux pour la recherche sémantique. Il permet une réduction de 96% de la fenêtre contextuelle et fonctionne hors ligne sans clés API.

Dépannage de l'accès aux e-mails et à Google Drive pour les agents IA
La configuration de l'accès aux e-mails et à Google Drive pour les bots d'IA sur AWS peut déclencher des blocages de compte. Voici une solution utilisant Gmail et les domaines Workspace.