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

Pilot Shell : Une couche de workflow structurée pour Claude Code
Pilot Shell ajoute des workflows pilotés par les spécifications, des hooks de qualité, de l'ingénierie de contexte et une optimisation des tokens à Claude Code — sans la complexité des frameworks multi-agents.

Protocole Pilot : Pile Réseau P2P Open-Source pour les Essaims d'Agents IA
Pilot Protocol est une pile réseau superposée open-source de couche 3 et 4 conçue spécifiquement pour la communication entre agents d'IA, fournissant des tunnels UDP chiffrés directs entre agents avec des adresses virtuelles permanentes de 48 bits.

OpenClaw Plugin de Mémoire Partagée : Coordination Multi-Agents Basée sur SQLite
Un développeur a créé un plugin pour les configurations multi-agents OpenClaw qui permet aux agents de partager leur mémoire en utilisant SQLite, éliminant ainsi le besoin de services externes. Le plugin permet le partage explicite de mémoire via un outil, l'extraction automatique de contexte, le contrôle d'accès, le suivi des entités et la détection de contradictions.

Mise en place de contrôles IA avec Continue pour les revues de PR sous contrôle de source
Continue intègre des vérifications IA directement dans votre flux de travail de demande de tirage en utilisant des fichiers markdown comme contrôles versionnés, visibles via les vérifications d'état GitHub.