Курс

Автоматические действия [hooks]

БЛОК 4: ДЛЯ ПРОДВИНУТЫХ • Урок 12 из 19

ХуКи ⏰

Хук это, по простому говоря, правило для Claude Code: «когда произойдёт X, автоматически сделай Y».

image.png

Пример:

Claude сохранил изменения в файле → автоматически запускается проверка. Ты не просишь каждый раз, а всё срабатывает само, по заранее прописанным сценариям.

Когда это надо

Ну.. начинать с этого точно не стоит. Это стадия, к которой приходишь, когда работы становится дохрена. Обычно она начинается с мысли: «Бля, а нахера я это в сотый раз повторяю?».

Если у тебя пока нет такой потребности, пропускай этот урок. Вернёшься когда почувствуешь, что пора.

Что можно автоматизировать

🤨 Проверки после действий Claude Code:

  • Сохранил код → запускаются тесты
  • Создал файл → проверка на ошибки
  • Сделал коммит → запускается сборка


🔔 Уведомления:

  • Claude закончил задачу → звук или сообщение в тг
  • Claude ждёт ответа → черкнул об этом тебе в телегу

Короче, действия которые много раз повторяются, и заёбывают своей скучностью – сюда!

Как настроить 🛠️

Самый простой способ это попросить братишку через чат:

Настрой так, чтобы после каждого коммита автоматически запускались тесты.

Или:

Сделай чтобы после создания файлов запускалась проверка на ошибки.

Клодыч создаст нужные настройки и объяснит что он сделал. Никакие команды вводить не нужно, просто разговариваешь с ним как обычно.

Настройки сохраняются в .claude/settings.json (для проекта) или ~/.claude/settings.json (глобально для всех проектов).

Хуки в VS Code: что работает, а чо нет

В 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 или браузер — хуки становятся глазами и ушами:

  • Закончил задачу → уведомление в Telegram
  • Ждёт ответа → черкнул тебе
  • Перед опасной операцией → автоматическая проверка без твоего участия
  • Сессия началась → подгрузил контекст и переменные

Если тебе интересна тема управления Claude Code с телефона, об этом будет отдельный урок 📱

Дополнительные детали

Хук это shell-команда (или промпт, или мини-агент) которая выполняется в нужный момент. Результат определяется exit-кодом:

  • 0 — успех, продолжаем
  • 1 — ошибка, показываем пользователю, продолжаем
  • 2 — блок, останавливаем действие (только для PreToolUse)

Настройки хранятся в JSON:

{ "hooks": { "PostToolUse": [{ "matcher": "Edit|Write", "hooks": [{ "type": "command", "command": "npm test" }] }] } }

matcher определяет для каких инструментов срабатывает хук: Edit, Write, Bash, или * для всех.

Настройки хранятся в файлах Claude Code (не путать с настройками VS Code):

  • ~/.claude/settings.json — глобально для всех проектов
  • .claude/settings.json — для конкретного проекта (можно шарить через git)
  • .claude/settings.local.json — локально (не попадает в git)

💭 От Тома:
Короче, хуки это ещё один способ затюнить Claude Code под себя. Ускорить работу, убрать рутину, добавить автоматические проверки. А новые типы хуков (prompt и agent) — это вообще тема: ты по сути ставишь второго Claude проверять первого. Автоматически, без твоего участия.

Если ты ща ничё не понимаешь – не парься.
Просто повторяй пока не поймёшь.