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

✍️ OpenClawRadar📅 Опубликовано: 8 марта 2026 г.🔗 Source
одноразовое чтение: Крючок Кода Клода, Предотвращающий Избыточное Чтение Файлов
Ad

Разработчик создал 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% на итерациях файлов.
Ad

Функции и конфигурация

Инструмент учитывает 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

Ad

👀 Смотрите также

Самостоятельно размещенный контекстный бандит на Rust: Syntra и Lycan для адаптивных систем принятия решений
Инструменты

Самостоятельно размещенный контекстный бандит на Rust: Syntra и Lycan для адаптивных систем принятия решений

Два проекта с открытым исходным кодом: Lycan (язык выполнения графов с узлами стратегий и обученными весами) и Syntra (приложение Docker/API, обслуживающее скомпилированные капсулы Lycan). При использовании на собственном продукте для дебатов по AI-акциям обнаружили ошибки в конвейере данных до ошибок времени выполнения.

OpenClawRadar
SIDJUA v0.9.7: Открытая мультиагентная ИИ-система с обеспечением управления до выполнения действий
Инструменты

SIDJUA v0.9.7: Открытая мультиагентная ИИ-система с обеспечением управления до выполнения действий

SIDJUA v0.9.7 — это саморазмещаемый, открытый многозадачный AI-фреймворк, который применяет правила управления до действий агентов, блокируя несанкционированные действия, такие как превышение бюджета или нарушения области применения. Поддерживает несколько провайдеров LLM, работает на 4 ГБ ОЗУ и включает настольный графический интерфейс, созданный с помощью Tauri v2.

OpenClawRadar
GSD-Lite: Конечный автомат для кода Claude, обеспечивающий TDD и предотвращающий пропуск тестов
Инструменты

GSD-Lite: Конечный автомат для кода Claude, обеспечивающий TDD и предотвращающий пропуск тестов

GSD-Lite — это сервер MCP с открытым исходным кодом, который добавляет в Claude Code 12-шаговый рабочий процесс, обеспечивая разработку через тестирование с помощью специальных антирационализационных подсказок и раздельных контекстов агентов для выполнения, проверки и отладки.

OpenClawRadar
SoulPrint: Локальный инструмент для совместного поиска в истории Claude и ChatGPT
Инструменты

SoulPrint: Локальный инструмент для совместного поиска в истории Claude и ChatGPT

SoulPrint — это инструмент с открытым исходным кодом на Python, который импортирует экспорты бесед из Claude (.json) и ChatGPT (.zip) в локальный архив SQLite, позволяя выполнять полнотекстовый поиск по обоим провайдерам одновременно с ранжированием BM25 и выделенными фрагментами.

OpenClawRadar