Skip to main content

Hooks イベントリファレンス

更新 2026-07-14 4分で読めます GitHub で編集 ↗

Claude Code のフックシステムは 30 個のイベントタイプ5 種類のフックタイプイベント別マッチャースマート動作 をサポートします。フックはエージェンティックハーネスで唯一「必ず実行される」ことが保証される決定論的 (deterministic) な制御ポイントです — プロンプトは無視されうるが、フックは無視されません。

フックの基本概念と設定方法は Hooks ガイド を参照してください。このページはイベントの全リファレンスです。

フックタイプ

利用可能なフックタイプは 5 種類です。

タイプ説明
commandシェルスクリプト実行".claude/hooks/moai/handle-session-start.sh"
promptLLM 評価プロンプトテキストを LLM が実行して結果を返す
agentサブエージェント検証エージェントが作業を検証して結果を返す
httpWebhook エンドポイントHTTP POST リクエストでイベントを伝達
mcp_toolMCP ツール実行MCP サーバーのツールをリモート呼び出し

イベント全リファレンス (30 個)

ライフサイクルイベント

イベント説明マッチャー
SessionStartセッション開始
SessionEndセッション終了
Stopエージェント停止
SubagentStopサブエージェント停止
SubagentStartサブエージェント開始
StopFailure停止失敗errorType
Setup初期設定

ツールイベント

イベント説明マッチャー
PreToolUseツール実行前toolName
PostToolUseツール実行後toolName
PostToolUseFailureツール実行失敗toolName, errorType
PostToolBatch並列ツールバッチ実行後 (v2.1.89+)

コンテキストイベント

イベント説明マッチャー
PreCompactコンテキスト圧縮前
PostCompactコンテキスト圧縮後
InstructionsLoadedインストラクションロード完了

入力イベント

イベント説明マッチャー
UserPromptSubmitユーザープロンプト送信
UserPromptExpansionスラッシュコマンドプロンプト展開 (v2.1.90+)
ElicitationElicitation 開始
ElicitationResultElicitation 完了

セキュリティイベント

イベント説明マッチャー
PermissionRequest権限リクエストtoolName
PermissionDenied権限拒否toolName

チームイベント

イベント説明マッチャー
TeammateIdleチームメイトのアイドル状態への移行
TaskCompletedタスク完了マーク
TaskCreatedタスク生成

ワークツリーイベント

イベント説明マッチャー
WorktreeCreateワークツリー生成
WorktreeRemoveワークツリー削除

環境イベント

イベント説明マッチャー
ConfigChange設定変更configSource
CwdChanged作業ディレクトリ変更
FileChangedファイル変更

UI イベント

イベント説明マッチャー
Notificationユーザー通知
MessageDisplayアシスタントメッセージテキスト表示中 (ストリーミング中の発話)

スマート動作 (Smart Behaviors)

MoAI-ADK フックは単純なイベント処理を超えて知的な動作を行います。

PermissionDenied 自動リトライ

読み取り専用ツール (Read, Grep, Glob) の権限が拒否されると、フックが自動的にリトライをトリガーします。これはバックグラウンドエージェントで権限プロンプトが表示されない問題を緩和します。

StopFailure エラータイプ応答

エージェント停止失敗時にエラータイプに応じて差別化された応答を提供します。長時間実行セッションでの安定性を保証します。

PostCompact セッションメモ復元

コンテキスト圧縮後に重要なセッションメモ (進行状態、SPEC 参照) を自動的に復元します。コンテキスト圧縮はトークンを節約する代わりに情報を失う取引ですが、このフックがその損失から核心情報を守ります。

SubagentStart コンテキスト注入

サブエージェント開始時に必要なコンテキスト (プロジェクトルール、MX タグ、進行状態) を自動注入します。

マッチャー (Matchers)

マッチャーを使うと特定の条件でのみフックが実行されるようフィルタリングできます。すべてのイベントにフックを掛けるとその分だけ実行コストが増えるので、マッチャーで範囲を絞るのが基本です。

json
{
  "hooks": {
    "PreToolUse": [{
      "matcher": { "toolName": "Bash" },
      "hooks": [{
        "type": "command",
        "command": "echo 'Bash tool detected'",
        "timeout": 5
      }]
    }]
  }
}

利用可能なマッチャーフィールド

マッチャーフィールド適用イベント説明
toolNamePreToolUse, PostToolUse, PostToolUseFailure, PermissionRequest, PermissionDeniedツール名でフィルタ
errorTypeStopFailure, PostToolUseFailureエラー種別でフィルタ
configSourceConfigChange設定ソースでフィルタ

CLAUDE_ENV_FILE

CwdChangedFileChanged フックを通じて環境変数を継続的に管理できます。

bash
# .claude/hooks/moai/handle-cwd-changed.sh
# CLAUDE_ENV_FILE を通じて環境変数を永続化
echo "MOAI_PROJECT_DIR=$(pwd)" >> "$CLAUDE_ENV_FILE"

これによりセッション間で環境変数を維持し、ディレクトリ変更時に自動的に環境を再設定できます。

MoAI-ADK が使う主要なフック

イベントMoAI ハンドラー役割
SessionStarthandle-session-start.shStatusline 初期化、メトリクスセッション開始
PostToolUsehandle-post-tool.shTask メトリクスロギング
TeammateIdlehandle-teammate-idle.shLSP 品質ゲート検証
TaskCompletedhandle-task-completed.shSPEC ドキュメント存在確認
WorktreeCreate(なし — MoAI はデフォルトで非登録)Claude Code のデフォルト worktree 動作を使用 (isolation: worktree agent 用)。登録時は active creator コントラクト (ディレクトリ生成 + path stdout echo) が義務。
WorktreeRemove(なし — MoAI はデフォルトで非登録)Claude Code のデフォルト worktree クリーンアップ動作を使用。登録時は observer-only コントラクト (出力不要)。
UserPromptSubmithandle-user-prompt.sh品質ゲート自動実行

次のステップ