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

⏱️ Примерное время: ~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.*