Хук это, по простому говоря, правило для Claude Code: «когда произойдёт X, автоматически сделай Y».
Пример:
Claude сохранил изменения в файле → автоматически запускается проверка. Ты не просишь каждый раз, а всё срабатывает само, по заранее прописанным сценариям.
Ну.. начинать с этого точно не стоит. Это стадия, к которой приходишь, когда работы становится дохрена. Обычно она начинается с мысли: «Бля, а нахера я это в сотый раз повторяю?».
Если у тебя пока нет такой потребности, пропускай этот урок. Вернёшься когда почувствуешь, что пора.
🤨 Проверки после действий Claude Code:
🔔 Уведомления:
Короче, действия которые много раз повторяются, и заёбывают своей скучностью – сюда!
Самый простой способ это попросить братишку через чат:
Настрой так, чтобы после каждого коммита автоматически запускались тесты.
Или:
Сделай чтобы после создания файлов запускалась проверка на ошибки.
Клодыч создаст нужные настройки и объяснит что он сделал. Никакие команды вводить не нужно, просто разговариваешь с ним как обычно.
Настройки сохраняются в .claude/settings.json (для проекта) или ~/.claude/settings.json (глобально для всех проектов).
В VS Code работают не все хуки. Вот конкретная картина на февраль 2026:
Хук | VS Code | Терминал |
PreToolUse (перед действием) | ✅ работает | ✅ работает |
PostToolUse (после действия) | ✅ работает | ✅ работает |
Stop (Claude закончил) | ✅ работает | ✅ работает |
SessionStart (начало сессии) | ✅ работает | ✅ работает |
SessionEnd (конец сессии) | ✅ работает | ✅ работает |
Notification (уведомления) | ❌ не работает | ✅ работает |
PermissionRequest (разрешения) | ❌ не работает | ✅ работает |
Почему так? VS Code обрабатывает уведомления и запросы разрешений через свой собственный интерфейс. Эти события просто не доходят до движка хуков.
На практике это значит: если ты хочешь получать уведомление в Telegram когда Claude закончил — используй хук Stop (он работает), а не Notification. А если нужны все хуки без ограничений, включи claudeCode.useTerminal: true в настройках VS Code — тогда Claude Code запустится в интегрированном терминале, где работает абсолютно всё.
Есть команда /hooks — интерактивный менеджер, где можно добавлять, удалять и настраивать хуки вручную. В VS Code она открывается в интегрированном терминале.
Событие Когда срабатывает Для чего использовать PreToolUse Перед выполнением действия Проверка, блокировка опасных операций PostToolUse После успешного действия Форматирование, тесты, логирование Stop Claude закончил отвечать Уведомления, очистка SessionStart Сессия началась Загрузка контекста, переменные окружения Notification Claude хочет привлечь внимание Кастомные уведомления (⚠️ не работает в VS Code, используй Stop) PreCompact Перед сжатием контекста Сохранить важное перед компрессией SessionEnd Сессия завершилась Финальная очистка, запись логов
Защита главной ветки от случайных изменений ⛔️
Перед каждым изменением файла проверяется: ты сейчас в главной ветке? Если да — действие блокируется. Claude получает сообщение почему, и сам переключается на другую ветку.
Автоматическое форматирование кода 🤖
После каждого изменения файла запускается форматирование. Код всегда выглядит одинаково, не нужно просить Claude следить за стилем.
Тесты после сохранения изменений 🤨
Сохранил код в репозиторий = автоматически запускаются тесты. Если что-то сломалось, Claude сразу это видит и может исправить.
Сообщение в Telegram когда Claude закончил 🛎️
Запустил задачу, отошёл от компьютера. Когда Claude закончит, придёт сообщение. Не нужно сидеть и ждать. (Для этого используй хук Stop — он работает и в VS Code, и в терминале.)
Загрузка контекста при старте сессии ⚡️
Когда открываешь новую сессию, автоматически подгружается информация: что было сделано раньше, какие задачи в работе, статус проекта. Братишка сразу в курсе.
Защита от опасных команд ☠️
Перед выполнением команды в терминале проверяется: не удаляет ли она что-то важное? Если команда опасная, она блокируется.
Раньше хуки были только shell-командами. Теперь их три вида:
command — обычная shell-команда. Всё, что описано выше — это command. Запускается скрипт, возвращается результат.
prompt — Claude сам оценивает ситуацию за один ход. Ты пишешь промпт, и когда хук срабатывает, Claude быстро его анализирует и принимает решение. Подходит для простых проверок: «есть ли в коде захардкоженные пароли?»
agent — мини-агент с инструментами. Тот же промпт, но Claude может читать файлы, искать код, и проверить всё глубже. Подходит для сложных проверок: «соответствует ли этот код стандартам проекта?»
Примеры в JSON:
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "prompt",
"prompt": "Проверь команду на безопасность. Если она удаляет файлы или данные — заблокируй."
}]
}]
}
}
prompt и agent работают на быстрой модели (Haiku) по умолчанию — это дёшево и быстро. Тип command подходит для всех событий, а prompt и agent — для основных (PreToolUse, PostToolUse, Stop и др.).
Помнишь скиллы из предыдущих уроков? Хуки можно прописать прямо в шапке скилла:
---
name: secure-deploy
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/safety-check.sh"
---
Такой хук будет работать только когда активен этот скилл. Запустил /secure-deploy — хук включился. Переключился на другую задачу — хук выключился. Удобно для скиллов, где нужны специальные проверки.
Хуки отлично работают в любом окружении, но максимально раскрываются на серверных системах. Когда Claude Code работает на удалённом сервере (VPS), а ты управляешь им через Telegram или браузер — хуки становятся глазами и ушами:
Если тебе интересна тема управления Claude Code с телефона, об этом будет отдельный урок 📱
Хук это shell-команда (или промпт, или мини-агент) которая выполняется в нужный момент. Результат определяется exit-кодом:
Настройки хранятся в JSON:
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "npm test"
}]
}]
}
}
matcher определяет для каких инструментов срабатывает хук: Edit, Write, Bash, или * для всех.
Настройки хранятся в файлах Claude Code (не путать с настройками VS Code):
💭 От Тома:
Короче, хуки это ещё один способ затюнить Claude Code под себя. Ускорить работу, убрать рутину, добавить автоматические проверки. А новые типы хуков (prompt и agent) — это вообще тема: ты по сути ставишь второго Claude проверять первого. Автоматически, без твоего участия.
Если ты ща ничё не понимаешь – не парься.
Просто повторяй пока не поймёшь.