Cursor Hooks — это способ наблюдать, блокировать и расширять agent loop своими скриптами. Хуки описываются в hooks.json (project или user), запускаются как процессы и обмениваются JSON через stdin/stdout. Канон: cursor.com/docs/hooks. Не путать с Rules (текст инструкций) и Skills (процедуры для агента) — hooks исполняют код на событиях.

Соседи: Cursor для начинающих, Cursor CLI, Cloud Agents, Bugbot. Pillar — n8n / автоматизация.

Для кого Cursor Hooks

Берите hooks, если нужны guardrails: запрет опасного shell, аудит MCP, автоформат после правок, политика для subagent. Если достаточно «помни про стиль» — rules. Если нужен чеклист деплоя — skill. Built-in skill /create-hook помогает сгенерировать конфиг.

Категория Примеры событий Cloud Agents
Agent hooks beforeShellExecution, afterFileEdit, subagentStart, stop… часть (command-only)
Tab hooks beforeTabFileRead, afterTabFileEdit нет (IDE-only)
App lifecycle workspaceOpen нет
Config source .cursor/hooks.json / ~/.cursor/hooks.json / plugins project (+ team/enterprise)

*По cursor.com/docs/hooks (август 2026). Таблица support для cloud — из официальной доки. Партнёрские интеграции security/governance — в разделе Partner Integrations той же страницы.

Как пользоваться: маршрут на 1 вечер

  1. Создайте .cursor/hooks.json в корне репозитория (или ~/.cursor/hooks.json для глобальных user hooks).
  2. Добавьте скрипт, например .cursor/hooks/format.sh, сделайте executable (chmod +x).
  3. Для project hooks указывайте путь от корня проекта: .cursor/hooks/format.sh (не ./hooks/...).
  4. Подпишитесь на событие, начните с безопасного afterFileEdit или matcher на beforeShellExecution.
  5. Проверьте exit codes: 0 ок, 2 блок, иное — fail-open.
  6. Для Cloud Agents коммитьте project hooks; user-level с ноутбука в VM не приедет.
{
  "version": 1,
  "hooks": {
    "afterFileEdit": [
      { "command": ".cursor/hooks/format.sh" }
    ],
    "beforeShellExecution": [
      {
        "command": ".cursor/hooks/approve-network.sh",
        "timeout": 30,
        "matcher": "curl|wget|nc"
      }
    ]
  }
}

Agent, Tab и Cloud

Agent hooks покрывают sessionStart/End, pre/postToolUse, shell, MCP, read/edit, submit prompt, compact, stop, afterAgentResponse/Thought, subagentStart/Stop. Tab hooks отдельно — только для Tab completions. Cloud: работают command hooks вроде beforeShellExecution, afterFileEdit, pre/postToolUse, subagent*, stop; не работают sessionStart/End, Tab, workspaceOpen; MCP hooks отложены. Prompt-based hooks в cloud не поддерживаются.

Третьесторонние хуки (Claude Code и др.) — см. docs reference/third-party-hooks. Enterprise может раздавать team/enterprise hooks через dashboard.

Сильные стороны

  • Реальный контроль исполнения, не только «просьба» в промпте.
  • Matcher на команды — узкий scope без шума на каждый tool call.
  • JSON stdin/stdout — удобно для политики allow/deny и аудита.
  • Одинаковый project-конфиг подхватывают Cloud Agents из репо.
  • Можно комбинировать с partner integrations (security/secrets).

Типичные ошибки

  • Путь ./hooks/... в project hooks.json — скрипт не находится (нужен путь от корня проекта).
  • Считать, что user ~/.cursor/hooks.json работает в Cloud Agent.
  • Писать prompt-hook и ждать его на cloud — там только command-based.
  • Игнорировать exit 2 vs fail-open: сломанный хук может молча пропускать действие.
  • Путать hooks с Automations/Bugbot — это разные контуры продукта.

FAQ: Cursor Hooks

Что такое Cursor Hooks?

Cursor Hooks — скрипты (или prompt-hooks), которые срабатывают до/после этапов agent loop: shell, MCP, правки файлов, subagent и др. Обмен JSON через stdio. Канон: cursor.com/docs/hooks.

Где настраиваются hooks?

Project: .cursor/hooks.json (+ скрипты, обычно .cursor/hooks/). User: ~/.cursor/hooks.json. Также hooks из плагинов Customize. Cloud Agents берут project hooks из репо, не user-level.

Чем command hook отличается от prompt hook?

Command hook — ваш shell-скрипт со stdin/stdout JSON. Prompt hook — LLM оценивает условие на естественном языке (type: prompt). В Cloud Agents поддерживаются только command-based hooks.

Какие exit codes важны?

0 — успех, использовать JSON-ответ. 2 — заблокировать действие (как permission deny). Другие коды — ошибка хука; по умолчанию fail-open, действие идёт дальше.

Работают ли hooks в Cloud Agents?

Да, command-based из .cursor/hooks.json репозитория (и team/enterprise на Enterprise). Не все события: нет sessionStart/End, Tab hooks, workspaceOpen; MCP hooks отложены. User ~/.cursor/hooks.json недоступен.

Для чего hooks на практике?

Форматтер после правок, аудит команд, блок опасного shell/SQL, сканирование секретов, контроль Task/subagent, inject контекста на sessionStart (локально).

Вывод

Cursor Hooks — исполняемый слой контроля agent loop. Старт: один project hook на afterFileEdit или beforeShellExecution → проверка локально → commit для Cloud Agents. Инструкции агенту — в Rules и Skills; общий вход — гайд новичка.

Артём Денисов эксперт Нетологии и автор курса Яндекс Практикума по промпт-инжинирингу. Помогает поставить guardrails на агента без ручных чеклистов.

Хотите нейросети под свои задачи, а не «для всех»?

Когда базовых гайдов уже мало, помогает разбор под вашу работу. Наставничество, курсы и подписка Артёма Денисова — все форматы на странице обучения. Тех-pillar — n8n для начинающих.