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--output-format stream-json と併用して --include-hook-events を追加
- 2出力される JSON Lines に hook_event タイプの行が挿入される
- 3jq などで type == hook_event の行を抽出して解析
Tips
- 通常の stream-json 出力にはフックイベントは含まれないため、必要な時だけ明示的に付ける
- フックの exitCode や matcher も含まれるため障害調査に有用
- --include-partial-messages と併用するとさらに詳細な実行過程を追える