О чём урок
Помимо хуков 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, что позволит вам точно проверить, что было бы передано вашей команде! Это значительно упрощает понимание того, какие данные должна проверять ваша команда.
План урока
- Another useful hook
- Что может сбить с толку
- Пример входных данных для хука PostToolUse
- Пример входных данных для хука Stop
- Создание вспомогательного хука
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.