О чём урок
Видео: «Хуки»
Хуки позволяют выполнять команды в определённые моменты жизненного цикла Claude Code. Ключевое отличие хуков от всего остального, что рассматривается в этом курсе, заключается в том, что хуки детерминированы — они выполняются всегда.
Вы можете указать Claude в файле CLAUDE.md запускать Prettier после каждого редактирования файла. В большинстве случаев он это сделает. Но иногда нет. Хук гарантирует, что это произойдёт каждый раз, без исключений.
Типичные сценарии использования включают:
- Автоматическое форматирование после редактирования файлов
- Логирование всех выполненных команд для обеспечения соответствия требованиям
- Блокировка опасных операций, таких как изменение production файлов
- Отправка уведомлений себе, когда Claude завершает задачу
Хуки настраиваются в файле settings.json. Вы выбираете событие, при необходимости задаёте matcher (сопоставитель) для инструментов, к которым оно применяется, и указываете команду для выполнения. Некоторые из наиболее распространённых событий:
- PreToolUse — выполняется перед вызовом инструмента
- PostToolUse — выполняется после завершения вызова инструмента
- UserPromptSubmit — выполняется при отправке prompt, до того как Claude его обработает
- Stop — выполняется, когда Claude завершает ответ
- Notification — выполняется, когда Claude отправляет уведомление
Это лишь некоторые из событий, к которым можно привязать хуки — Claude Code поддерживает гораздо больше. Полный список см. в справочнике по хукам(откроется в новой вкладке).
Вы настраиваете их с помощью команды /hooks в Claude Code или путём прямого редактирования settings.json.
Самый распространённый хук: автоформатирование после редактирования. Установите хук PostToolUse с matcher'ом "Edit|MultiEdit|Write", чтобы он срабатывал всякий раз, когда Claude изменяет файл. Команда проверяет расширение файла и запускает соответствующий formatter — Prettier для TypeScript, gofmt для Go, или любой другой, который используется в вашем проекте.
Хуки PreToolUse могут блокировать вызовы инструментов до их выполнения. Ваш хук получает имя инструмента и входные данные в формате JSON через stdin. Код выхода определяет поведение:
- Код выхода 0 — продолжить в обычном режиме.
- Код выхода 2 — заблокировать действие. Сообщение stderr передаётся обратно Claude в качестве обратной связи, чтобы он знал, почему действие…
План урока
- Зачем использовать хуки
- Как они работают
- Практический пример
- Блокировка с помощью PreToolUse
- Обмен хуками с вашей командой
- Итоги
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.