de una sola lectura: Un Gancho de Código Claude que Evita Lecturas Redundantes de Archivos

Un desarrollador ha creado un gancho PreToolUse llamado read-once que aborda la tendencia de Claude Code de leer repetidamente los mismos archivos durante una sesión, lo que consume tokens innecesarios.
El Problema y la Solución
Claude Code a menudo vuelve a leer archivos que ya tiene en contexto. Por ejemplo, abrir un archivo de 500 líneas, hacer una pequeña edición y hacer que Claude lea todo el archivo nuevamente cuesta aproximadamente 2,000+ tokens por lectura. En sesiones típicas, los mismos archivos podrían leerse de 5 a 10 veces.
El gancho read-once rastrea qué archivos ha leído Claude en la sesión actual. Cuando Claude intenta volver a leer un archivo sin cambios, el gancho lo bloquea y muestra un mensaje como: "read-once: config.rs (~3,400 tokens) ya está en contexto (leído hace 4m, sin cambios). Ahorro en sesión: ~12,000 tokens."
Cómo Funciona
- En la primera lectura: Registra la ruta del archivo, la hora de modificación y la marca de tiempo, luego permite la lectura normalmente.
- En la relectura de un archivo sin cambios: Bloquea la lectura ya que Claude ya tiene el contenido.
- En la relectura de un archivo modificado: En lugar de permitir una relectura completa, el gancho calcula la diferencia y devuelve solo lo que cambió. Claude ya tiene la versión anterior en contexto y solo necesita el delta. Para un archivo de 500 líneas donde cambiaron 3 líneas, esto usa ~30 tokens en lugar de ~2,000, ahorrando 80-95% en iteraciones de archivos.
Características y Configuración
La herramienta es consciente del TTL con entradas de caché que expiran después de 20 minutos (configurable). Después de la expiración, se permiten relecturas porque Claude puede haber compactado el contexto y perdido contenido anterior.
La configuración se realiza mediante variables de entorno:
READ_ONCE_TTL=1200- segundos antes de que expire el caché (predeterminado 20 min)READ_ONCE_DIFF=1- habilitar modo de diferenciasREAD_ONCE_DIFF_MAX=40- líneas máximas de diferencia antes de recurrir a relectura completaREAD_ONCE_DISABLED=1- desactivarlo por completo
Detalles Técnicos
Toda la herramienta tiene aproximadamente 250 líneas de bash sin dependencias más allá de jq y diff. Tiene licencia MIT y se instala agregándose a sus ganchos .claude/settings.json.
El desarrollador construyó esta herramienta porque ejecuta Claude Code en un bucle autónomo donde los costos de tokens se acumulan rápidamente. Solo el modo de diferencias supuestamente redujo su uso de tokens por sesión en aproximadamente un 30%.
📖 Read the full source: r/ClaudeAI
👀 Ver también

Sistema de Memoria Automática de Código Abierto para Agentes LLM Logra un 94% de Precisión en Recuperación
Un desarrollador creó un complemento de memoria para agentes basados en LLM que extrae, clasifica y persiste automáticamente hechos entre sesiones sin comandos explícitos del usuario. El sistema logró un 94.2% de precisión en una prueba de memoria de 52 puntos de control utilizando archivos markdown estructurados en lugar de bases de datos vectoriales.

Habilidad de Claude Code Convierte Diseños de Stitch a Next.js con Cero Desviación de Píxeles
Una habilidad de Claude Code convierte diseños de Google Stitch AI en componentes Next.js con puntos de verificación obligatorios para prevenir la desviación de píxeles, preservando valores exactos y manejando recursos.
MartinLoop: Plano de Control de Código Abierto para Agentes de Codificación de IA con Límites de Presupuesto y Registros de Auditoría
MartinLoop es un plano de control de código abierto que añade límites de presupuesto estrictos, registros de auditoría en JSONL, clasificación de fallos y verificaciones de finalización basadas en pruebas a los agentes de codificación de IA.

Fino: Servidor MCP de Código Abierto para Análisis de Finanzas Personales con Claude
Fino es un servidor MCP gratuito y de código abierto que conecta Claude a cuentas bancarias a través de Plaid, almacena datos de transacciones localmente en SQLite y proporciona a Claude herramientas para análisis financiero.