Claude Code hooks ビルダー
hook は、Claude Code が「確認待ちになった」「応答が終わった」などの節目で自動実行するコマンドです。
このページで設定を作り、コピーして ~/.claude/settings.json に貼るだけで有効になります。
使いたいイベントを選び、コマンドを 1 つ書けば、Claude Code がそのまま受け付ける
settings.json の断片をコピーできます。全 33 種の hook イベントを matcher の値つきで載せ、
statusLine 設定にも対応しています。項目ごとの詳細は
hooks リファレンスを参照してください。
~/.claude/settings.json
~/.claude/settings.jsonを開く(無ければ作成する)。- 既に
"hooks"キーがある場合は、その中に各イベントの配列だけを追加する(同じイベント名が既にあれば、その配列に要素として足す)。無ければオブジェクト全体を貼る。 - コマンドがスクリプトファイルの場合は実行権限を付ける(
chmod +x)。hook はあなたのユーザー権限で実行される。 - Claude Code 内で
/hooksを実行し、変更が反映されたことを確認する。
生成しているものは何か
hook は、Claude Code がライフサイクルのイベントごとに実行するシェルコマンドです。標準入力に JSON
(session_id・hook_event_name・cwd と、tool_name や
notification_type などイベント固有の項目)が渡されます。ビルダーが生成する形は次のとおりです。
{
"hooks": {
"<イベント名>": [
{
"matcher": "<任意の絞り込み>",
"hooks": [ { "type": "command", "command": "<コマンド>", "timeout": 600 } ]
}
]
}
}
- matcher は hook を発火させる対象の絞り込みです。ツール系イベントではツール名、
Notificationでは通知の種類、といった具合です。|区切りの名前は完全一致、正規表現の記号を含むと JavaScript の正規表現として扱われます。空なら全件に一致します。 - 全イベントで同じコマンドを使うのが一般的な形です。標準入力の
hook_event_nameを読んでスクリプト内で分岐します。ビルダーは選んだ各イベントに同じハンドラを書き出します。 - 終了コード 2 は、対応イベント(
PreToolUse・UserPromptSubmit・PermissionRequestなど)で動作をブロックし、標準エラー出力が理由として表示されます。それ以外の終了コードでは動作は続行されます。 - statusLine は別のトップレベルキーで、枠は 1 つだけです。そのコマンドには
context_window.used_percentage・rate_limits・modelが渡されます。これは hook には来ないデータです。
バージョンを確認してください。Claude Code 2.1.101 より前の版は、設定ファイルに未知のイベント名があるとファイル全体を無視します。その場合、ファイル内の hook と permissions がすべて黙って無効になります。
StopFailure や PostCompact のような新しいイベントを追加する前に claude --version を確認してください。
hook を自分で書かずに「確認待ち」を知りたいなら
上の「確認が必要になったら通知する」「セッション状態を追跡する」プリセットと同じことを、AgentManager が自動で設定します。 すべての Claude Code セッションの状態を一覧し、確認待ちになった瞬間に通知します。無料で使え、アカウント登録は不要です。
macOS 13 以降 — 無料プランは同時に 2 セッションまで表示