Хуки: детерминированная автоматизация
Хуки — это команды оболочки, которые Claude Code запускает автоматически в определённых точках своего жизненного цикла. Там, где разрешения решают, разрешено ли действие, хуки позволяют вам выполнять детерминированную логику вокруг него — форматирование, валидацию, логирование, проверки. Именно так вы делаете поведение гарантированным вместо «пожалуйста, не забудь».
Когда стоит обратиться к хуку
- Авто-форматирование / линтинг после каждой правки файла (
PostToolUse). - Блокировка действия, нарушающего правило, до его выполнения (
PreToolUse). - Уведомление или логирование, когда сессия заканчивается или задача завершается (
Stop). - Внедрение контекста в начале сессии.
Как они работают
Вы регистрируете хуки в settings.json, сопоставляя их с событием (и часто с матчером инструмента). Когда событие срабатывает, Claude запускает вашу команду и читает её результат — ненулевой код выхода или определённый вывод могут заблокировать действие и передать сообщение обратно Claude.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATH\"" }
]
}
]
}
}
Хук получает контекст (например, путь к файлу, имя инструмента) через окружение/stdin — точный формат полезной нагрузки, который варьируется в зависимости от события, смотрите в документации.
Ментальная модель
Хорошие практики
- Держите хуки быстрыми и идемпотентными — они запускаются часто.
- Громко сообщайте о реальных проблемах, но не блокируйте из-за косметических мелочей.
- Относитесь к выводу хука как к обратной связи для Claude — понятное сообщение помогает ему самокорректироваться.
- Хуки запускаются с привилегиями вашей оболочки — проверяйте любой хук, который написали не вы (Проверка стороннего кода).
Готовые к копированию заготовки есть в Рецептах для хуков и settings.json.
Дальше
- settings.json · Разрешения
- Навыки — экспертиза против автоматизации
- Усиление защиты автономных запусков