フックハンドラーのタイプを使い分けたい
11. フックコマンド / 機能
command / http / prompt / agent4種類のフックハンドラー
概要
Claude Code のフックは4種類のハンドラーを指定できます。command(シェルコマンド)、http(HTTP POST)、prompt(Claude モデル評価)、agent(ツールアクセス付きサブエージェント)です。
設定例
// シェルコマンド(最も一般的)
{
"type": "command",
"command": ".claude/hooks/validate.sh",
"timeout": 30
}
// HTTP エンドポイント
{
"type": "http",
"url": "http://localhost:8080/hook",
"timeout": 10
}
// Claude モデルで評価
{
"type": "prompt",
"prompt": "このコード変更は安全ですか?問題があれば exit 2 で返してください"
}
// ツールアクセス付きエージェント
{
"type": "agent",
"prompt": "コード変更をレビューしてセキュリティ問題を報告してください",
"tools": ["Read", "Grep"]
}こんな時に使う
- シェルスクリプトで処理したい時(command)
- 外部サービスに通知したい時(http)
- Claude に判断を任せたい時(prompt/agent)
使い方
- 1type フィールドでハンドラーの種類を指定
- 2command: シェルコマンド文字列
- 3http: POST エンドポイント URL
- 4prompt/agent: 評価・実行するプロンプト文字列
Tips
- timeout でタイムアウト時間(秒)を設定可能
- agent タイプは ツールアクセスがあるため強力だが低速
- prompt タイプは軽量な判断に最適