одноразовое чтение: Крючок Кода Клода, Предотвращающий Избыточное Чтение Файлов

Разработчик создал PreToolUse-хук под названием read-once, который решает проблему склонности Claude Code многократно читать одни и те же файлы в течение сессии, что потребляет ненужные токены.
Проблема и решение
Claude Code часто перечитывает файлы, которые уже есть в контексте. Например, открытие файла на 500 строк, внесение небольшого изменения и повторное чтение Claude всего файла обходится примерно в 2000+ токенов за каждое чтение. В типичных сессиях одни и те же файлы могут читаться 5-10 раз.
Хук read-once отслеживает, какие файлы Claude уже прочитал в текущей сессии. Когда Claude пытается перечитать неизмененный файл, хук блокирует это и отображает сообщение типа: "read-once: config.rs (~3400 токенов) уже в контексте (прочитано 4 минуты назад, без изменений). Экономия за сессию: ~12 000 токенов."
Как это работает
- При первом чтении: Записывает путь к файлу, время изменения и временную метку, затем разрешает чтение как обычно.
- При повторном чтении неизмененного файла: Блокирует чтение, так как у Claude уже есть содержимое.
- При повторном чтении измененного файла: Вместо разрешения полного перечитывания хук вычисляет разницу и возвращает только то, что изменилось. У Claude уже есть старая версия в контексте, и ему нужна только дельта. Для файла на 500 строк, где изменились 3 строки, это использует ~30 токенов вместо ~2000, экономя 80-95% на итерациях файлов.
Функции и конфигурация
Инструмент учитывает TTL с истечением срока действия записей кэша через 20 минут (настраивается). После истечения срока повторные чтения разрешены, потому что Claude мог сжать контекст и потерять предыдущее содержимое.
Конфигурация выполняется через переменные окружения:
READ_ONCE_TTL=1200- секунды до истечения кэша (по умолчанию 20 минут)READ_ONCE_DIFF=1- включить режим различийREAD_ONCE_DIFF_MAX=40- максимальное количество строк различий перед возвратом к полному перечитываниюREAD_ONCE_DISABLED=1- полностью отключить
Технические детали
Весь инструмент составляет примерно 250 строк bash без зависимостей, кроме jq и diff. Он лицензирован под MIT и устанавливается путем добавления себя в ваши хуки .claude/settings.json.
Разработчик создал этот инструмент, потому что запускает Claude Code в автономном цикле, где затраты на токены быстро накапливаются. Только режим различий, по сообщениям, сократил использование токенов за сессию примерно на 30%.
📖 Read the full source: r/ClaudeAI
👀 Смотрите также

Бесплатный калькулятор стоимости OpenClaw показывает расходы на конфигурацию перед выполнением.
Разработчик создал бесплатный инструмент с открытым исходным кодом для браузера, который рассчитывает стоимость конфигурации OpenClaw перед запуском, разбивая расходы по основной модели, цепочкам резервного копирования, расходу на проверки активности и режиму выставления счетов.

OpenClaw Суперспособности: Библиотека из 31 навыка для решения проблем безопасности, стоимости и надежности.
Разработчик выпустил openclaw-superpowers — библиотеку из 31 готового к использованию навыка для OpenClaw. Библиотека решает распространённые проблемы, такие как неконтролируемые расходы на API, уязвимости безопасности и потеря контекста, и устанавливается одной командой.

lazyclaude: TUI для управления конфигурацией кода Claude
lazyclaude — это инструмент с терминальным пользовательским интерфейсом, вдохновлённый lazygit, который предоставляет единый вид для управления всей конфигурацией Claude Code, хранящейся на диске, включая файлы памяти, навыки, агентов, MCP-серверы, настройки, разрешения, хуки, сочетания клавиш, сессии, статистику, плагины и задачи.

Исследование Aura: Локальный инструмент компилирует документы в навигационную вики с постоянной памятью для ИИ
Aura Research — это инструмент с открытым исходным кодом, который обрабатывает исходные документы (PDF-файлы, статьи, заметки, код, более 60 форматов) и преобразует их в структурированную вики на языке markdown со связанными статьями, страницами понятий и главным указателем. Всё сжимается в архив .aura, оптимизированный для поиска с помощью RAG, и работает полностью локально, без передачи данных за пределы вашего компьютера.