Ещё один полезный хук
⏱️ Примерное время: ~12 минут · 🎯 Урок 17 курса «Claude Code in Action»
Помимо PreToolUse и PostToolUse, в Claude Code есть и другие хуки:
- Notification — срабатывает, когда Claude Code отправляет уведомление (нужно разрешение на использование инструмента или после 60 секунд простоя)
- Stop — срабатывает, когда Claude Code заканчивает свой ответ
- SubagentStop — срабатывает, когда субагент (отображается в интерфейсе как «Task») завершает работу
- PreCompact — срабатывает перед операцией сжатия (ручной или автоматической)
- UserPromptSubmit — срабатывает, когда пользователь отправляет промпт, до того как Claude его обработает
- SessionStart — срабатывает при запуске или возобновлении сессии
- SessionEnd — срабатывает при завершении сессии
Самое запутанное: входные данные stdin, которые получают ваши команды, меняются в зависимости от типа хука, а tool_input различается в зависимости от того, какой инструмент был вызван (для PreToolUse/PostToolUse).
Чтобы разобраться с этим, создайте вспомогательный хук, который записывает входные данные в файл, — тогда вы сможете их изучить: "PostToolUse": [ { "matcher": "*", "hooks": [ { "type": "command", "command": "jq . > post-log.json" } ] } ]
Эта команда записывает входные данные хука в файл post-log.json, позволяя вам увидеть в точности, какие данные должна анализировать ваша команда.
*Адаптировано с русским переводом. Оригинал: © 2025 Anthropic. All rights reserved.*