Claude Code hooksの使い方|全14イベント対応・設定から実践例まで徹底解説

Claude Codeでの開発中、「ファイル保存のたびにフォーマッターを手動で実行している」「危険なコマンドをうっかり許可してしまった」といった経験はないでしょうか。hooks機能を活用すると、こうした反復作業や見落としをシェルコマンドやLLM判定で自動化できます。 Claude Code hooksとは、Claude Codeのライフサイクル上の決まったタイミングで自動実行されるユーザー定義のコマンド群です。LLMの判断に頼らず確定的(deterministic)に動作するため、「必ず実行してほしい処理」に適しています。 hooksの基本構造と設定ファイル hooksの設定はJSON形式で記述し、3つの階層で構成されます。 イベント名(いつ発火するか) マッチャーグループ(どのツール・条件で絞り込むか) ハンドラ配列(何を実行するか) { "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" } ] } ] } } 設定ファイルの配置場所とスコープ 設定ファイルの置き場所によって適用範囲が変わります。 配置先 適用範囲 リポジトリ共有 ~/.claude/settings.json 全プロジェクト共通 不可(ローカルのみ) .claude/settings.json プロジェクト単位 可能(git commit対象) .claude/settings.local.json プロジェクト単位 不可(.gitignore推奨) マネージドポリシー 組織全体 管理者が制御 プラグイン hooks/hooks.json プラグイン有効時 プラグインに同梱 スキル・エージェントのfrontmatter コンポーネント稼働中のみ コンポーネントに定義 チームで統一したいルール(自動フォーマット等)は .claude/settings.json、個人環境だけに適用する通知設定は ~/.claude/settings.json に置く、という使い分けが実務では効果的です。 /hooksメニューによる対話的な設定 CLIで /hooks と入力すると、GUIライクなメニューが開きます。JSONを直接編集しなくても、イベント選択→マッチャー指定→コマンド入力→保存先選択の流れで設定を追加できます。 メニュー内ではフックごとにソースラベルが表示されます。 [User]: ~/.claude/settings.json [Project]: .claude/settings.json [Local]: .claude/settings.local.json [Plugin]: プラグイン同梱のhooks 全hooksを一括で無効化するトグルもこのメニューに用意されています。 ...

2026年2月9日 · 5 分 · 13100 文字 · uiuifree

Claude Code ヘッドレスモード完全ガイド|-pフラグの使い方からCI/CD連携・自動化まで

Claude Codeをスクリプトやパイプラインから自動実行したいとき、対話モードでは人間の入力待ちが発生して困ります。ヘッドレスモードは、この問題を解決するCLI実行方式です。-p(--print)フラグひとつで対話なしの非対話実行に切り替わり、CI/CDパイプラインやcronジョブから直接呼び出せるようになります。 ヘッドレスモードの基本と仕組み Claude Codeのヘッドレスモードとは、ターミナルのREPL(対話型インターフェース)を起動せずにプロンプトを送り、応答を標準出力に返す実行方式です。公式ドキュメントでは「Claude Agent SDK」の一部として位置づけられており、CLI経由での利用は-pフラグで実現します。 # 最もシンプルなヘッドレス実行 claude -p "auth.pyのバグを見つけて修正して" 通常のclaudeコマンドがインタラクティブREPLを起動するのに対し、-pを付けると応答をテキストで返して即座に終了します。パイプ入力にも対応しているため、他のコマンドの出力を直接受け渡せます。 # パイプで入力を渡す cat error.log | claude -p "このエラーログの原因を特定して" # 別のコマンドの出力を分析 git diff HEAD~3 | claude -p "このdiffをレビューして脆弱性がないか確認して" 通常モードとの違い 観点 通常モード (claude) ヘッドレスモード (claude -p) ユーザー入力 対話形式で逐次入力 起動時にプロンプトを一括指定 ツール承認 都度ユーザーに確認 --allowedToolsで事前許可 出力形式 ターミナルUI text / json / stream-json 主な用途 日常の開発作業 スクリプト・CI/CD・バッチ処理 スラッシュコマンド /commit等が利用可 利用不可(タスクを説明して指示) 主要なCLIフラグ一覧 ヘッドレスモードで頻繁に使うフラグを用途別に整理します。すべてのフラグは公式CLIリファレンスで確認できます。 出力制御 フラグ 説明 使用例 --output-format text プレーンテキスト出力(デフォルト) claude -p "要約して" --output-format json セッションID・メタデータ付きJSON claude -p "要約して" --output-format json --output-format stream-json 改行区切りのストリーミングJSON claude -p "説明して" --output-format stream-json --json-schema JSON Schemaに準拠した構造化出力 後述の構造化出力を参照 --verbose 詳細ログ(ターンごとの出力を表示) デバッグ時に使用 --include-partial-messages 部分的なストリーミングイベントを含める stream-jsonとの併用が必要 実行制御 フラグ 説明 使用例 --max-turns N エージェントのターン数上限 claude -p "テスト実行" --max-turns 5 --max-budget-usd N API呼び出しの費用上限(USD) claude -p "分析して" --max-budget-usd 3.00 --model 使用モデルの指定 claude -p "query" --model sonnet --allowedTools 許可するツールの指定 claude -p "修正して" --allowedTools "Read,Edit,Bash" --disallowedTools 禁止するツールの指定 claude -p "分析して" --disallowedTools "Edit" --dangerously-skip-permissions 全パーミッションチェックをスキップ コンテナ内での使用を推奨 会話管理 フラグ 説明 使用例 --continue / -c 直近の会話を継続 claude -p "続きを実装して" -c --resume SESSION_ID 特定セッションを再開 claude -p "追加修正" --resume "$sid" システムプロンプトのカスタマイズ フラグ 動作 --system-prompt デフォルトプロンプトを完全に置換 --system-prompt-file ファイルから読み込んで完全置換 --append-system-prompt デフォルトに追記(推奨) --append-system-prompt-file ファイルからデフォルトに追記 大半のケースでは--append-system-promptが安全です。Claude Codeの組み込み機能(ファイル読み取り・コマンド実行など)を維持しつつ、追加指示だけを上乗せできます。 ...

2026年2月9日 · 4 分 · 9617 文字 · uiuifree