Claude Code

Claude Codeのフック(Hooks)特定のタイミングで確実に処理を実行する仕組み

フックは、Claude Codeの動作の特定のタイミング(ツール実行の前後など)で、決めたコマンドを自動実行する仕組みです。指示では保証できない処理を確実に実行する用途、設定の考え方、使用例、安全上の注意を整理します。

公的機関・公式資料などの一次情報と照合して作成しています。このサイトについて

Claude Codeのフックとは

フック(Hooks)は、Claude Codeの動作の特定のタイミング(たとえば、ファイルを編集した後、コマンドを実行する前など)に、あらかじめ決めたコマンドを、自動的に実行する仕組みです。CLAUDE.mdに「編集後は、必ず整形すること」と書いても、Claudeが守る保証はありません。一方、フックは、プログラムとして確実に実行されるため、「必ずやってほしい処理」を、仕組みとして担保できます(CLAUDE.mdの書き方、権限設定とパーミッションモード)。

対応するタイミング(イベント)・設定の書式・入出力の仕様は、更新されることがあります。最新の仕様は、公式ドキュメントで確認してください。

指示とフックの違い

項目 CLAUDE.mdなどの指示 フック
性質 「お願い」。守られない場合がある 「プログラム」。条件が合えば必ず実行される
向く用途 方針・好み・背景の共有 整形、検査、記録、禁止操作のブロックなど
実行主体 Claudeの判断 Claude Codeの仕組み(Claudeの判断を介さない)

主なタイミング(イベントの例)

タイミングは一例
タイミング 内容
ツール実行の前 実行を、許可・拒否・内容の確認ができる
ツール実行の後 実行結果に対して、整形・検査などを行える
ユーザーの入力時 入力に、情報を追加したり、検査したりできる
応答の完了時 作業終了時の通知・検査など
通知の発生時 許可待ちなどの通知に、反応できる
セッションの開始・終了時 準備や後片付け

公式のイベント名では、たとえばツール実行の前がPreToolUse、後がPostToolUse、入力時がUserPromptSubmit、応答の完了時がStop、通知がNotification、セッションの開始・終了がSessionStart・SessionEndです(2026年10月時点)。ほかにも、サブエージェントの開始・終了や、会話の圧縮の前後などのイベントがあります。利用できるイベントの種類は、更新されます。公式のリファレンスで確認してください。

設定の考え方

フックは、設定ファイル(settings.jsonなど。settings.jsonの設定項目)に書きます。基本の要素は次のとおりです。

要素 内容
イベント どのタイミングで動かすか
対象の条件(マッチャー) どのツール・操作のときに動かすか(例:ファイル編集のときだけ)
実行するコマンド 実際に走らせる処理(シェルコマンドやスクリプト。HTTPへの送信やモデルによる判定など、コマンド以外の種類も用意されている)

/hooksコマンドでは、設定済みのフックと、その設定元(ユーザー設定・プロジェクト設定・プラグインなど)を一覧で確認できます(現在は閲覧用で、追加・編集は設定ファイルで行います。スラッシュコマンド)。書式は、必ず公式の最新の例に従ってください。

使用例

用途 内容
自動整形 ファイルを編集するたびに、フォーマッタを実行する
自動テスト・検査 編集後に、静的解析や単体テストを実行する
禁止操作のブロック 特定のファイル(本番設定など)の編集や、危険なコマンドを、実行前に拒否する
記録(ログ) 実行されたコマンドを、ファイルに記録する
通知 作業が終わったとき、許可待ちのときに、通知を出す
文脈の追加 セッション開始時に、最新の情報(例:直近の変更)を渡す

実行前のフックによる制御

ツール実行前のフックでは、その操作を許可するか、ブロックするかを、プログラムで判断できます。たとえば、「.envファイルの編集を拒否する」「rm -rfを含むコマンドを拒否する」といったルールを、確実に適用できます。

終了コードや出力の形式で、結果をClaude Codeに伝えます。たとえば、コマンド型のフックでは、終了コード2がブロック(その操作を止める)の意味になります(ブロックできるイベントの場合)。イベントごとの扱いなど、具体的な仕様は、公式で確認してください。

作るときのコツ

コツ 内容
小さく始める 1つのフックで、動作を確認してから、増やす
軽い処理に 毎回動くため、重い処理は、作業を遅くする
失敗時の挙動を決める エラーのとき、作業を止めるか、続けるか
ログを残す 動作を確認・調査できるように
条件を絞る 必要なツール・ファイルだけに、適用する
試して確認 安全な環境で、意図どおり動くかを確認する

安全上の注意

フックは、あなたの環境で、任意のコマンドを自動実行する仕組みです。慎重な扱いが必要です。

注意点 内容
他人の設定に注意 出所不明の設定ファイル(フック)は、中身を確認する。悪意のあるコマンドが、実行されうる(安全に使うための設定)
権限 フックは、あなたのユーザー権限で動く
入力の扱い 受け取るデータを、そのままシェルに渡さない(コマンドの混入を防ぐ)
機密情報 ログや出力に、秘密情報を含めない
破壊的な処理 削除・上書きなどを、自動実行しない
共有設定 チームで共有する設定は、レビューしてから反映する

Claude Codeのフックの具体例

「ファイルを編集するたびに、整形ツールを実行する」フックを設定すると、指示を毎回書かなくても、コードの書式が、常に揃います。また、「migrations/の編集を拒否する」フックを設定すれば、CLAUDE.mdに書くより、確実に守られます。

Claude CodeのフックのFAQ(よくある質問)

Q. フックは、どこに設定しますか?
A. 設定ファイル(~/.claude/settings.json、.claude/settings.json、.claude/settings.local.jsonなど)です。ユーザー用、プロジェクト用などの階層があり、プラグインや、スキル・サブエージェントの定義の中に書く方法もあります。詳細は、公式で確認してください。

Q. フックが動かないときは?
A. 設定の書式、条件(マッチャー)、コマンドのパス、実行権限を確認し、ログで調べてください(困ったときの対処とデバッグ)。

Q. スクリプトの言語は?
A. シェルから実行できるものであれば、言語は問いません。

筆者の見解(Claude Codeのフック)

フックは、「お願い」を「仕組み」に変える道具だと感じます。AIの判断に任せたくない部分(書式、禁止事項、記録)を、確実に自動化できるのが強みです。一方、強力なぶん、設定ミスや悪用のリスクもあるため、小さく始めて、中身を理解した設定だけを使うことが大切です。

Claude Codeのフックの関連項目

出典(一次情報)

本記事は一般的な情報の提供を目的としています。AIのサービス・機能・料金・仕様は頻繁に更新されるため、最新の内容は各社の公式ドキュメントでご確認ください。「筆者の見解」は一つの考え方です。

PR当サイトはアフィリエイト広告を利用しています。掲載内容は広告主から依頼・指示を受けたものではなく、筆者の調査・体験にもとづきます。