CC逆引きリファレンス

フックハンドラーのタイプを使い分けたい

11. フック

コマンド / 機能

command / http / prompt / agent

4種類のフックハンドラー

概要

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)

使い方

  1. 1type フィールドでハンドラーの種類を指定
  2. 2command: シェルコマンド文字列
  3. 3http: POST エンドポイント URL
  4. 4prompt/agent: 評価・実行するプロンプト文字列

Tips

  • timeout でタイムアウト時間(秒)を設定可能
  • agent タイプは ツールアクセスがあるため強力だが低速
  • prompt タイプは軽量な判断に最適