Hooks в Claude Code: автодействия по событию

Что такое hooks в Claude Code, чем они отличаются от команд и как заставить инструмент сам запускать проверки после правок. Простыми словами, на опыте QuboLab.

Обновлено 30 июня 2026 г.

Коротко

Hook — это автодействие, которое Claude Code выполняет сам, когда наступает определённое событие. Например: каждый раз, когда помощник изменил файл, автоматически запускается проверка кода или форматирование — без вашей команды. Если команда со слешем — это «по кнопке, когда я захотел», то hook — «само, по событию». Удобно для того, что должно происходить всегда и без напоминаний.

Определение

Hook (по-английски «крючок», «зацепка») — это правило вида «когда случилось X — сделай Y», которое срабатывает автоматически. Вы один раз описываете его в настройках, и дальше Claude Code сам исполняет его в нужный момент.

События бывают разные: помощник собирается выполнить инструмент, уже выполнил его, изменил файл, завершил ответ. К каждому такому моменту можно «прицепить» свою команду — например, прогнать линтер (проверку стиля кода) или автоформатирование. Главное отличие от обычной просьбы: hook не нужно вызывать. Он отрабатывает сам, потому что вы заранее договорились, что в этой ситуации он нужен.

Когда использовать

Hooks хороши там, где действие должно происходить всегда, а не когда вы вспомнили:

  • Автопроверка кода. После каждой правки — прогнать проверку на ошибки, чтобы поймать их сразу, а не на «боевом» сайте.
  • Автоформатирование. Привести код к единому виду, не задумываясь об этом вручную.
  • Защита от опасного. Hook может перехватить рискованную команду и потребовать подтверждения — связка с режимом разрешений.

Когда НЕ стоит

Не делайте hook из всего:

  • Разовое действие. Если что-то нужно один раз — попросите словами, hook тут лишний.
  • Когда вы ещё не нащупали процесс. Сначала пройдите задачу руками пару раз, поймите, что именно должно срабатывать автоматически, — и только потом фиксируйте в hook.
  • Тяжёлая операция на каждый чих. Если на событие повесить долгую команду, работа начнёт тормозить. Hook должен быть быстрым.

Пошаговая инструкция

Hooks настраиваются в файле настроек Claude Code. Покажу логику на самом частом примере — автопроверка после правки файла.

  1. 1
    Решить, что и когда должно срабатывать

    Сформулируйте правило словами: «после того как помощник изменил файл — запусти проверку кода». Сначала на бумаге, чтобы понять событие (изменение файла) и действие (проверка).

  2. 2
    Открыть настройки

    Hooks описывают в файле настроек .claude/settings.json внутри проекта. Это обычный текстовый файл; если его нет — его можно создать. В нём есть раздел hooks, куда и добавляют правила.

  3. 3
    Добавить правило

    В правиле указывают событие (например, после применения инструмента, меняющего файлы) и команду, которую надо выполнить. Команда — обычная строчка терминала, та же, что вы запускали бы руками (например, запуск линтера или форматтера).

  4. 4
    Проверить на деле

    Дайте помощнику изменить любой файл и посмотрите: проверка должна запуститься сама. Если что-то не так — поправьте команду или событие в настройках. Это обычная отладка, как с любым правилом.

Пример

Самый ценный hook в реальной работе — автопроверка кода после правок. Логика простая: помощник что-то изменил → сразу прогоняется проверка → если она нашла проблему, видно её тут же, а не когда сайт уже сломался у пользователей.

В настройках это выглядит примерно так (упрощённо):

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

Здесь событие — «помощник применил инструмент правки файла» (Edit или Write), а действие — запустить проверку npm run lint. Дальше это происходит само, и мне не нужно каждый раз помнить «а проверил ли я».

Частые ошибки

На чём спотыкаются новички:

  • Путают hook и команду. Команду вы запускаете сами; hook срабатывает автоматически на событие. Если действие нужно «по требованию» — это команда, а не hook.
  • Вешают на событие долгую операцию. Тяжёлая команда на каждую правку превращает работу в ожидание. Hook должен быть быстрым.
  • Не проверяют, что hook вообще сработал. Добавили правило и забыли. Стоит один раз убедиться, что оно отрабатывает, иначе вы думаете, что защищены, а это не так.
  • Ошибка в команде. Если в hook вписана команда, которой нет в проекте, он будет молча падать. Сначала проверьте, что та же команда работает руками.

Частые вопросы

Чем hook отличается от slash-команды?+

Команду со слешем вы запускаете сами, когда захотели. Hook срабатывает автоматически на событие — например, после каждой правки файла — без вашего участия. Команда — «по кнопке», hook — «само».

Нужно ли уметь программировать, чтобы настроить hook?+

Чуть-чуть технического придётся коснуться: hook описывают в текстовом файле настроек, и в нём указывают команду терминала. Но сама команда — обычно та же, что вы и так запускали бы руками (проверка, форматирование). Программировать с нуля не нужно.

Hooks работают во всех проектах сразу?+

По умолчанию hook живёт в настройках конкретного проекта (.claude/settings.json). Можно вынести правило в личные настройки — тогда оно будет действовать во всех ваших проектах. Чаще удобнее держать hooks по проектам, потому что проверки у всех разные.

Может ли hook остановить опасное действие?+

Да, это одно из главных применений. Hook на событие «перед выполнением команды» может проверить, что именно собирается сделать помощник, и потребовать подтверждения или вовсе заблокировать рискованный шаг. Это работает в связке с режимом разрешений.

Термины

Определения из глоссария QuboLab

Материалы QuboLab

Наши продукты, кейсы и исследования по теме