Ещё один полезный хук

Урок 18 из 22 курса «Claude Code в действии»: официальный курс Anthropic Academy (Антропик) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

Помимо хуков PreToolUse и PostToolUse, рассмотренных в этом курсе, существуют и другие хуки: Notification - Запускается, когда Claude Code отправляет уведомление, что происходит, когда Claude требуется разрешение на использование инструмента или после 60 секунд бездействия Claude Code. Stop - Запускается, когда Claude Code завершил ответ. SubagentStop - Запускается, когда субагент (они отображаются как "Task" в пользовательском интерфейсе) завершил работу. PreCompact - Запускается перед операцией компактирования, будь то ручной или автоматической. UserPromptSubmit - Запускается, когда пользователь отправляет запрос, до того как Claude его обработает. SessionStart - Запускается при начале или возобновлении сессии. SessionEnd - Запускается при завершении сессии. Вот что может сбить с толку: Входные данные stdin для ваших команд будут меняться в зависимости от типа выполняемого хука (PreToolUse, PostToolUse, Notification и т.д.) Содержащийся в них tool_input будет отличаться в зависимости от вызванного инструмента (в случае хуков PreToolUse и PostToolUse). Например, вот образец входных данных stdin для хука, где хук — это PostToolUse, который отслеживал использование инструмента TodoWrite. Для справки, это инструмент, который Claude использует для отслеживания задач. А для сравнения, вот пример входных данных для хука Stop: Как вы видите, входные данные stdin для вашей команды будут значительно отличаться в зависимости от хука (PreToolUse, PostToolUse, Stop и т.д.) и используемого matcher (в случае PreToolUse и PostToolUse). Это может усложнить написание хуков — вы можете не знать точную структуру входных данных для вашей команды! Чтобы справиться с этой проблемой, попробуйте создать вспомогательный хук следующим образом: Обратите внимание на предоставленную команду. Она запишет входные данные для этого хука в файл post-log.json, что позволит вам точно проверить, что было бы передано вашей команде! Это значительно упрощает понимание того, какие данные должна проверять ваша команда.

План урока

  1. Another useful hook
  2. Что может сбить с толку
  3. Пример входных данных для хука PostToolUse
  4. Пример входных данных для хука Stop
  5. Создание вспомогательного хука

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды