Урок 14 из 19•15 мин
Реализация хука
Цели урока
После прохождения этого урока вы сможете:
- 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 в команде хука, чтобы сохранить входные данные в файл.
