CC逆引きリファレンス

サブエージェントの起動・終了をフックしたい

11. フック

コマンド / 機能

SubagentStart / SubagentStop

サブエージェントのライフサイクル

概要

SubagentStart はサブエージェントが起動した時、SubagentStop は完了した時に発火します。エージェントタイプ名でマッチングでき、特定のエージェントの前後処理を実装できます。

設定例

// .claude/settings.json
{
  "hooks": {
    "SubagentStart": [
      {
        "matcher": "code-reviewer",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'コードレビュー開始' >> ~/.claude/agent.log"
          }
        ]
      }
    ],
    "SubagentStop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "echo 'サブエージェント完了' >> ~/.claude/agent.log"
          }
        ]
      }
    ]
  }
}
公式ドキュメントを見る

こんな時に使う

  • 特定のサブエージェントの実行をログに記録したい時
  • サブエージェント起動前に環境を準備したい時
  • サブエージェント完了後にクリーンアップしたい時

使い方

  1. 1hooks.SubagentStart / hooks.SubagentStop にフックを定義
  2. 2matcher にエージェント名を指定(省略で全エージェント)
  3. 3SubagentStop の decision で次のアクションを制御可能

Tips

  • matcher なしで全サブエージェントを対象にできる
  • フックはメインセッションで動作する(サブエージェント内ではない)