Claude Code の Hooks 機能は、AI の動作に合わせてシェルコマンドを自動実行できる強力な仕組みです。設定次第でフォーマッタ起動 / 監査ログ / 通知送信などを完全自動化できます。本記事では Hooks の種類と、現場で本当に使える実務パターンを 10 個厳選して解説します。
Hooks とは:settings.json で定義する自動実行ルール
Hooks は Claude Code の動作イベント(ツール実行前後、セッション終了等)に合わせて、シェルコマンドを自動実行する仕組みです。
- 設定ファイル:settings.json(プロジェクト / ユーザー / エンタープライズ)
- 定義形式:JSON で「どのイベントで、どのコマンドを、どの条件下で動かすか」を記述
- 実行主体:Claude 本体ではなく Claude Code ハーネスが実行
- 記憶では代替不可:メモリや指示では再現できず、Hook だけが保証する
「ファイル保存したら必ず prettier を走らせたい」「危険なコマンドを検知したらブロックしたい」──こうした絶対的な強制を実現するのが Hooks です。
Hooks の主なイベント種類
代表的な Hook イベントです(実際はさらに多く、公式ドキュメントの Hooks リファレンスで全リストが確認できます)。
- PreToolUse:任意のツール実行前に発火
- PostToolUse:任意のツール実行後に発火
- UserPromptSubmit:ユーザーがプロンプト送信した時
- UserPromptExpansion:プロンプト展開時
- Stop / StopFailure:Claude の返答が終了・失敗した時
- PermissionRequest / PermissionDenied:権限要求イベント
- Notification:通知イベント時
- SubagentStop:サブエージェント終了時
- SessionStart / SessionEnd:セッション開始 / 終了
これらに合わせて、好きなシェルコマンドを仕込めます。
実務パターン 1:編集ファイルに自動で prettier
Edit / Write でファイルを保存したら、自動で prettier を走らせる設定です。
PostToolUse に matcher "Edit|Write" を指定し、Hook スクリプト内で stdin から渡される JSON から編集対象ファイルパスを取り出して prettier --write を実行します(環境変数名や入力形式は Claude Code バージョンで変わるので、公式ドキュメントの Hooks リファレンスを参照してください)。人が忘れてもフォーマットが保たれます。
実務パターン 2:危険コマンドの実行ブロック
rm -rf / や DROP TABLE 等の危険なコマンドを Bash 実行前に検知してブロック。
PreToolUse の matcher "Bash" でスクリプトを差し込み、パターンマッチしたら exit 2 で中断させます。不慮の事故を防ぐ安全装置になります。
実務パターン 3:編集後に TypeScript 型チェック
PostToolUse で .ts / .tsx を編集したら tsc --noEmit を走らせ、型エラーがあれば Claude に警告。コード品質の自動ガードレールになります。
実務パターン 4:セッション終了時に Slack へ通知
Stop イベントで Slack Webhook にポスト。長時間の Claude タスクが終わった時にデスクトップ通知 + Slack 通知がセットで届くようになります。
実務パターン 5:秘匿情報の検知
PreToolUse で Write / Edit 前に grep で API キー / トークンのパターンを検知し、含まれていたらブロック。機密情報の誤コミットを防げます。
実務パターン 6:自動テスト実行
PostToolUse で .test.ts が編集されたら該当テストを自動実行。失敗したら Claude に知らせて修正を促せます。
実務パターン 7:コミット前チェック
PreToolUse で git commit 検知 → lint / typecheck / test を順次実行。手動で忘れがちなチェックを自動化できます。
実務パターン 8:作業ログの監査記録
全ツール使用を PostToolUse で監査ログに記録。誰が何をしたかの完全なトレースが残せます。規制産業で重要です。
実務パターン 9:カスタムプロンプト注入
UserPromptSubmit で特定キーワードを検知したら、コンテキスト情報を Claude に追加注入。「deploy」と入れたら自動で本番環境情報を付与、のような運用が可能です。
実務パターン 10:長時間タスクの完了通知
Stop で 30 分以上動いていたセッションに限り、Mac の osascript で音を鳴らす。集中して別作業していても完了が分かります。
設定ファイルの階層
settings.json には次の 3 階層があります。
- プロジェクト設定:.claude/settings.json(リポジトリ内、Git 管理)
- ユーザー設定:~/.claude/settings.json(全プロジェクト共通)
- ローカル設定:.claude/settings.local.json(Git 管理外、個人秘匿情報)
チーム共有のルールはプロジェクト設定に、個人の好みはユーザー設定に、API キー等はローカル設定に分けるのがベストプラクティスです。
Hooks の落とし穴
使い始めで注意すべきポイントです。
- 無限ループ:Hook が他の Hook を誘発するパターンに注意
- 重い処理:全ツール実行後に走る処理は UX を悪化させる
- シェル依存:Windows と Mac でコマンド差があるため、クロスプラットフォーム配慮
- デバッグ:Hook がサイレントに失敗すると気づきにくい、ログを取る
- エンタープライズ強制:管理者設定の Hook は個人が外せない
段階的に入れて、動作確認を重ねるのが無難です。
Claude Code 人材の Hooks スキル
弊社に登録する Claude Code 実務経験者のうち、Hooks の活用経験があるのは約 5 割。Hooks を使いこなせる人材は、チーム全体の生産性を底上げできるため、社内リスキリング / 内製化支援で特に重宝されています。
まとめ
Claude Code Hooks は settings.json だけで AI の挙動を強制できる強力な仕組みです。フォーマッタ自動化 / 危険操作ブロック / 監査ログ等、本記事で紹介した 10 パターンをベースに、自社のワークフローに合わせた Hooks を育てていきましょう。
関連リンク
- Claude Code 人材紹介サービス:https://claudecode.co.jp/claude-code-talent
- Claude Code 最新モデル徹底解説:https://claudecode.co.jp/info/claude-code-latest-model-2026
- Claude Code Skills 完全ガイド:https://claudecode.co.jp/info/claude-code-skills-guide
- Claude Code MCP 完全入門:https://claudecode.co.jp/info/claude-code-mcp-guide