CC逆引きリファレンス

stream-json 出力にフックのライフサイクルイベントを含めたい

11. フック

コマンド / 機能

--include-hook-events

フックイベントを stream-json に含める

概要

--include-hook-events フラグを付けると、--output-format stream-json の出力にフックの発火・完了などのライフサイクルイベントが含まれるようになります。外部システムでフックの実行状況を監視・デバッグしたい場合に使います。

設定例

# stream-json 出力にフックイベントを含めて実行
claude -p "コードをレビューして" \
  --output-format stream-json \
  --include-hook-events

# 出力例(フックイベント部分)
# {"type":"hook_event","hook":"PreToolUse","matcher":"Bash","status":"started"}
# {"type":"hook_event","hook":"PreToolUse","matcher":"Bash","status":"completed","exitCode":0}
# {"type":"hook_event","hook":"PostToolUse","matcher":"Write","status":"completed","exitCode":0}

# jq でフックイベントだけ抽出
claude -p "..." --output-format stream-json --include-hook-events \
  | jq 'select(.type == "hook_event")'
公式ドキュメントを見る

こんな時に使う

  • 外部監視システムでフックの実行状況を追跡したい時
  • フックが期待通りに発火しているかデバッグしたい時
  • CI ログにフックの実行結果を残したい時

使い方

  1. 1--output-format stream-json と併用して --include-hook-events を追加
  2. 2出力される JSON Lines に hook_event タイプの行が挿入される
  3. 3jq などで type == hook_event の行を抽出して解析

Tips

  • 通常の stream-json 出力にはフックイベントは含まれないため、必要な時だけ明示的に付ける
  • フックの exitCode や matcher も含まれるため障害調査に有用
  • --include-partial-messages と併用するとさらに詳細な実行過程を追える