Claude Code hooks: автоматизация перед и после команд
Hooks это команды, которые Claude Code запускает сам по событиям: перед вызовом инструмента, после правки файла, при остановке. Их используют для автолинта, форматирования, запуска тестов и блокировки опасных действий. Прописываются в settings.json.
Какие бывают события
| Событие | Когда срабатывает |
|---|---|
| PreToolUse | перед вызовом инструмента (чтение, запись, bash) |
| PostToolUse | после вызова инструмента |
| Stop | когда агент закончил ответ |
| Notification | на уведомления интерфейса |
Пример: автолинт после записи файла
// .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $CLAUDE_FILE_PATH 2>/dev/null; npm run lint --silent"
}
]
}
]
}
}
После каждой правки файла автоматически гоняется prettier и линт. Агенту не нужно помнить об этом, проект сам держит формат.
Пример: запрет на правку миграций
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "echo $CLAUDE_FILE_PATH | grep -q '/migrations/' && { echo 'миграции не трогать'; exit 2; } || exit 0"
}
]
}
]
}
}
Код выхода 2 блокирует инструмент и возвращает агенту причину. Так критичные папки защищены от случайных правок.
Что удобно автоматизировать
- Форматирование и линт после каждой правки.
- Запуск тестов по затронутым файлам.
- Запрет на коммит в защищённые ветки или папки.
- Уведомление в Telegram или лог при завершении долгой задачи.
Hooks и автоматизация разгоняют расход, когда их много. CLOD даёт доступ к Opus 4.8 и Sonnet 4.6 с оплатой рублём за токены.
Частые вопросы
Hooks встроены в Claude Code?
Да, механизм встроен. Вы только прописываете команды в .claude/settings.json под нужные события.
Чем hook отличается от CI?
Hook срабатывает локально и сразу, в момент работы агента. CI срабатывает позже, на пуше. Hook быстрее даёт обратную связь прямо в сессии.
Можно ли через hook заблокировать команду?
Да. Код выхода 2 в PreToolUse блокирует вызов и возвращает агенту причину. Так защищают опасные действия.
Hooks замедляют Claude Code?
Если команда быстрая, незаметно. Если на каждый чих гонять тесты целиком, агент будет ждать. Выносите тяжёлое на Stop.