раздел 06
Hooks - фоновые автоматизации
Hooks - это shell-команды, которые Claude Code запускает автоматически на события: до правки файла, после правки, при остановке, при отправке вашего сообщения, при срабатывании инструмента. Hook видит происходящее и может разрешить, заблокировать или подменить действие.
Зачем
- Авто-формат после каждой правки:
prettier,black,gofmt. Никакого мусора в diff'ах. - Уведомления macOS, когда Claude закончил работу - можно идти за кофе и не сидеть пялиться в терминал.
- Защита от случайностей: блок на чтение
.env, блок наrm -rf, блок на push вmain. - Авто-тесты после изменений Python-файлов:
pytest -xв фоне. - Авто-коммиты после успешной задачи - чтобы не терять прогресс.
- Логирование всех команд Claude в файл - для аудита и отладки.
Hook - это не модель, это обычная shell-команда. Она бесплатная, мгновенная, и работает независимо от того, какую модель вы используете.
Минимальный пример
В ~/.claude/settings.json или .claude/settings.json проекта:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "if echo \"$CLAUDE_FILE_PATHS\" | grep -q '\\.py$'; then black $CLAUDE_FILE_PATHS; fi"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Готово\" with title \"Claude Code\" sound name \"Glass\"'"
}
]
}
]
}
}
Что произойдёт:
- После каждой правки
.pyфайла - автоматически прогонитсяblack - Когда Claude закончил - на macOS появится баннер с уведомлением и звуком
События hooks
Полный набор:
| Событие | Когда срабатывает | Может блокировать? |
|---|---|---|
PreToolUse | До запуска инструмента (Read, Edit, Bash, ...) | Да |
PostToolUse | После успешного выполнения | Нет |
UserPromptSubmit | Когда вы отправили сообщение | Да |
Stop | Когда Claude закончил отвечать | Нет |
Notification | Когда Claude хочет показать уведомление | Нет |
SubagentStop | Когда субагент закончил | Нет |
PreCompact | До авто-сжатия контекста | Нет |
SessionStart | При старте сессии | Нет |
SessionEnd | При закрытии сессии | Нет |
Что в этом разделе
01
События hooks
PreToolUse / PostToolUse / Stop / UserPromptSubmit / Notification - что когда срабатывает.
02
Структура settings.json
Где лежит, как редактировать, /update-config для безопасных правок.
03
5 готовых hooks
Автоформат, уведомления macOS, защита от .env, авто-тесты, авто-коммит.
04
Отладка hooks
Логи, --debug, типичные ошибки и как их быстро найти.
Полезные ссылки
- Hooks reference - официальная дока со всеми событиями
- Hooks examples - готовые примеры
- Awesome Claude Code - hooks - hooks от сообщества