Claude Code hooks ビルダー
使いたいイベントを選び、コマンドを 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 を確認してください。
状態追跡のスクリプトを書きたくないなら
AgentManager は出来合いの hook をインストールしてこれらのイベントを自動登録し、 すべての Claude Code セッションをライブの状態ボードとして表示します。無料で使え、アカウント登録は不要です。
macOS 13 以降 — 無料プランは同時に 2 セッションまで表示