Продвинутая функция

Hooks: Создайте свой рабочий процесс

Встраивайте пользовательскую логику на каждом этапе вызова инструментов Claude Code — форматирование, тестирование, проверка безопасности — всё автоматизировано

#Hooks #Automation #ClaudeCode #CI/CD

Что такое Claude Code Hooks?

Hooks — система событий Claude Code, позволяющая запускать пользовательские скрипты до и после вызова инструментов. Автоматический запуск линтеров, выполнение тестов, оповещения при доступе к конфиденциальным файлам — всё без ручного вмешательства.

seo_hooks.what_is_desc2

seo_hooks.flow_user
seo_hooks.flow_user_action
seo_hooks.flow_hook
seo_hooks.flow_hook_action
seo_hooks.flow_tool
seo_hooks.flow_tool_action

Типы хуков

Claude Code предоставляет четыре типа хуков, охватывающих полный жизненный цикл вызова инструментов

seo_hooks.type1_title

Срабатывает перед выполнением — валидация параметров, проверка прав, автоматическое одобрение или отклонение

seo_hooks.type1_example

seo_hooks.type2_title

Срабатывает после выполнения — автоформатирование, запуск тестов, отправка уведомлений

seo_hooks.type2_example

seo_hooks.type3_title

Срабатывает при уведомлениях Claude Code — интеграция со Slack, email и другими каналами

seo_hooks.type3_example

seo_hooks.type4_title

Срабатывает при завершении ответа Claude Code — логирование или очистка

seo_hooks.type4_example

seo_hooks.usecases_title

seo_hooks.usecases_desc

1

seo_hooks.usecase1_title

seo_hooks.usecase1_desc

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "command": "if echo \"$TOOL_INPUT\" | grep -q 'git commit'; then npm run format; fi"
    }]
  }
}
2

seo_hooks.usecase2_title

seo_hooks.usecase2_desc

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash",
      "command": "if echo \"$TOOL_INPUT\" | grep -q 'pytest\\|npm test'; then notify-send 'Tests completed'; fi"
    }]
  }
}
3

seo_hooks.usecase3_title

seo_hooks.usecase3_desc

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Edit|Write",
      "command": "if echo \"$TOOL_INPUT\" | grep -qE '\\.env|credentials|secrets'; then exit 2; fi"
    }]
  }
}

Headless-режим и CI/CD

Запуск Claude Code в CI/CD-конвейерах с флагом -p для автономных задач

seo_hooks.headless_flag_title

seo_hooks.headless_flag_desc

seo_hooks.headless_pipeline_title

seo_hooks.headless_pipeline_desc

seo_hooks.headless_json_title

seo_hooks.headless_json_desc

seo_hooks.headless_code_label
# seo_hooks.headless_code_comment
claude -p "Review this PR and suggest improvements" \
  --output-format json \
  --max-turns 5

Пример настройки settings.json

Определите хуки в .claude/settings.json

.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "command": "~/scripts/pre-bash-hook.sh"
      },
      {
        "matcher": "Edit|Write",
        "command": "~/scripts/protect-sensitive-files.sh"
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Bash",
        "command": "~/scripts/post-bash-hook.sh"
      }
    ],
    "Notification": [
      {
        "command": "~/scripts/send-notification.sh"
      }
    ],
    "Stop": [
      {
        "command": "~/scripts/on-stop.sh"
      }
    ]
  }
}

seo_hooks.best_practices_title

seo_hooks.best_practices_desc

seo_hooks.bp1_title

seo_hooks.bp1_desc

seo_hooks.bp2_title

seo_hooks.bp2_desc

seo_hooks.bp3_title

seo_hooks.bp3_desc

seo_hooks.bp4_title

seo_hooks.bp4_desc

seo_hooks.faq_title

seo_hooks.faq1_q

seo_hooks.faq1_a

seo_hooks.faq2_q

seo_hooks.faq2_a

seo_hooks.faq3_q

seo_hooks.faq3_a

seo_hooks.faq4_q

seo_hooks.faq4_a

Корпоративная автоматизация с QCode.cc

Комбинируйте API-ретранслятор QCode.cc с системой хуков для корпоративных AI-конвейеров

seo_hooks.qcode_advantage1_title

seo_hooks.qcode_advantage1_desc

seo_hooks.qcode_advantage2_title

seo_hooks.qcode_advantage2_desc

seo_hooks.qcode_advantage3_title

seo_hooks.qcode_advantage3_desc

Автоматизируйте рабочие процессы Claude Code

Раскройте полный потенциал AI-кодирования с Hooks + QCode.cc