reymer.ai
Урок 14 из 1915 мин

Реализация хука

Цели урока

После прохождения этого урока вы сможете:

  • 1Создать рабочий хук с нуля
  • 2Обработать входные данные хука
  • 3Вернуть результат из хука

Практическая реализация хука

Создадим хук, который логирует все операции записи файлов.

Шаг 1: Создание скрипта

bash
#!/bin/bash
# log-writes.sh

# Читаем JSON из stdin
input=$(cat)

# Извлекаем информацию о файле
file_path=$(echo "$input" | jq -r '.tool_input.file_path')

# Логируем
echo "$(date): File written: $file_path" >> ~/.claude/write-log.txt

# Возвращаем continue для продолжения
echo '{"continue": true}'

Шаг 2: Настройка хука

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "/absolute/path/to/log-writes.sh"
          }
        ]
      }
    ]
  }
}

Входные данные хука

Хук получает JSON с информацией о событии через stdin. Структура зависит от типа хука и инструмента.

Для отладки используйте jq . > debug.json в команде хука, чтобы сохранить входные данные в файл.

Курс адаптирован на русский язык на основе материалов Anthropic Academy. © Anthropic