read-once: Um Gancho de Código do Claude que Evita Leituras Redundantes de Arquivos

Um desenvolvedor criou um hook PreToolUse chamado read-once que aborda a tendência do Claude Code de ler repetidamente os mesmos arquivos durante uma sessão, o que consome tokens desnecessários.
O Problema e a Solução
O Claude Code frequentemente relê arquivos que já estão em contexto. Por exemplo, abrir um arquivo de 500 linhas, fazer uma pequena edição e fazer o Claude ler o arquivo inteiro novamente custa aproximadamente 2.000+ tokens por leitura. Em sessões típicas, os mesmos arquivos podem ser lidos de 5 a 10 vezes.
O hook read-once rastreia quais arquivos o Claude leu na sessão atual. Quando o Claude tenta reler um arquivo inalterado, o hook bloqueia e exibe uma mensagem como: "read-once: config.rs (~3.400 tokens) já está em contexto (lido há 4m, inalterado). Economia da sessão: ~12.000 tokens."
Como Funciona
- Na primeira leitura: Registra o caminho do arquivo, horário de modificação e timestamp, então permite a leitura normalmente.
- Na releitura de arquivo inalterado: Bloqueia a leitura, pois o Claude já tem o conteúdo.
- Na releitura de arquivo alterado: Em vez de permitir uma releitura completa, o hook calcula o diff e retorna apenas o que mudou. O Claude já tem a versão antiga em contexto e só precisa do delta. Para um arquivo de 500 linhas onde 3 linhas mudaram, isso usa ~30 tokens em vez de ~2.000, economizando 80-95% nas iterações de arquivo.
Recursos e Configuração
A ferramenta é consciente de TTL, com entradas de cache expirando após 20 minutos (configurável). Após a expiração, releituras são permitidas porque o Claude pode ter compactado o contexto e perdido o conteúdo anterior.
A configuração é feita por variáveis de ambiente:
READ_ONCE_TTL=1200- segundos antes do cache expirar (padrão 20 min)READ_ONCE_DIFF=1- ativar modo diffREAD_ONCE_DIFF_MAX=40- máximo de linhas diff antes de voltar à releitura completaREAD_ONCE_DISABLED=1- desativar completamente
Detalhes Técnicos
Toda a ferramenta tem aproximadamente 250 linhas de bash sem dependências além de jq e diff. É licenciada sob MIT e instala-se adicionando-se aos seus hooks .claude/settings.json.
O desenvolvedor construiu esta ferramenta porque executa o Claude Code em um loop autônomo onde os custos de tokens se acumulam rapidamente. Apenas o modo diff supostamente reduziu o uso de tokens por sessão em cerca de 30%.
📖 Leia o código-fonte completo: r/ClaudeAI
👀 See Also

Agente de revisão de PR open source PrixAI detecta 10/10 bugs plantados a um custo 6x menor que o CodeRabbit
Um usuário do Reddit construiu o PrixAI, um agente de revisão de PR de código aberto que usa modelos de inferência locais/baratos para igualar os recursos do CodeRabbit com um custo 6 vezes menor, detectando todos os 10 problemas intencionalmente inseridos em um PR de teste.

O FOMOE Permite a Inferência do Modelo Qwen3.5 de 397B em Hardware de Desktop de US$ 2.100
FOMOE (Fast Opportunistic Mixture of Experts) permite executar o modelo principal Qwen3.5 de 397 bilhões de parâmetros a 5-9 tokens/segundo em hardware de consumo usando duas GPUs de US$ 500, 32 GB de RAM e uma unidade NVMe com quantização Q4_K_M.

PeaDB: Banco de Dados Compatível com Redis Codificado com Assistência de IA em C++20
Um desenvolvedor criou o PeaDB, uma substituição direta do Redis 7.2.5 escrita em C++20 usando Codex, Copilot e Claude, implementando cerca de 147 comandos com persistência, replicação e suporte a cluster. Os benchmarks mostram desempenho próximo ao do Redis.

Demonstração de Fábula Claude: Correção de Bugs Proativamente Incansável com Automação de Navegador
Simon Willison descreve como o Claude Fable 5 automatizou a depuração de um problema de barra de rolagem horizontal sem instruções explícitas. Ele usou automação de navegador, injeção de JavaScript e um servidor web CORS personalizado.