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 вечер
- Создайте
.cursor/hooks.jsonв корне репозитория (или~/.cursor/hooks.jsonдля глобальных user hooks). - Добавьте скрипт, например
.cursor/hooks/format.sh, сделайте executable (chmod +x). - Для project hooks указывайте путь от корня проекта:
.cursor/hooks/format.sh(не./hooks/...). - Подпишитесь на событие, начните с безопасного
afterFileEditили matcher наbeforeShellExecution. - Проверьте exit codes: 0 ок, 2 блок, иное — fail-open.
- Для 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; общий вход — гайд новичка.
Хотите нейросети под свои задачи, а не «для всех»?
Когда базовых гайдов уже мало, помогает разбор под вашу работу. Наставничество, курсы и подписка Артёма Денисова — все форматы на странице обучения. Тех-pillar — n8n для начинающих.