【初心者向け】Claude CodeのHooks機能の使い方と設定手順

Claude Codeを使い始めたものの、毎回同じ確認を頼むのが面倒ではありませんか。Hooks機能を使うと、決めたタイミングで通知やチェックを自動実行できます。
ただし、設定したコマンドは自分の権限で動くため、安全確認が欠かせません。
本記事では、仕組みや設定手順、活用例、動かない場合の対処法を解説します。最初は小さな通知から試し、安全に自動化の範囲を広げましょう。

監修者
SHIFT AI代表 木内翔大
使い方がわかっても、作業を任せるところまでは進めず「結局は自分で手を動かしている」という方は少なくありません。
チャットに指示を出して、返ってきた内容を確認して、また次を頼む。この繰り返しは自分の時間を使い続けます。
AIエージェントなら「リサーチから資料作成までやっておいて」と伝えるだけで、調べる・まとめる・作るところまで自分で進みます。
SHIFT AIのAIエージェントを学べる無料セミナーでは、この任せ方を実演を交えて解説し、空いた時間を収入につなげた会員の事例も紹介しています。
オンライン開催です。下のボタンから、セミナーの詳細をご確認ください。
Claude CodeのHooks機能の基本
Hooks機能の基本は、次の2点に分けると理解しやすくなります。
- 決められたタイミングで処理を自動実行する仕組み
- 日本語の指示やCLAUDE.mdとの違い
まずは、普段の指示とは異なる役割を押さえましょう。
決められたタイミングで処理を自動実行する仕組み
Hooks機能は、決めた条件に合うと作動する自動スイッチです。
Claude Codeがツールを使う前後や作業を終えたときに、指定した処理が動きます。
- 編集後のファイル確認
- 入力待ちを知らせる通知
- 応答終了後のログ保存
- 毎回同じ条件で行う品質チェック
- 特定操作の直前に毎回行う安全確認
毎回「終わったら知らせて」と頼む必要がなくなり、作業漏れも防ぎやすくなります。
>Anthropic公式のHooksガイドはこちらから
日本語の指示やCLAUDE.mdとの違い
Hooks機能とほかの指示方法では、処理を実行する確実性と役割が異なります。
日本語の指示は、その場で頼みたい作業に適しています。CLAUDE.mdは、守ってほしい方針を伝えるファイルです。
| 方法 | 主な役割 |
|---|---|
| 日本語の指示 | その場の頼み事 |
| CLAUDE.md | 守ってほしいルール |
| Skills | 繰り返し使う作業手順 |
| permissions | 操作を許可する範囲 |
| Hooks機能 | 特定時点で動く自動処理 |
用途に応じて使い分ければ、複雑な指示を毎回書かずに済みます。CLAUDE.mdは指示であり、特定処理の実行を技術的に保証するものではありません。
Hooks以外の機能や料金プランを含めたClaude Codeの全体像は、以下の記事で解説しています。
Hooks機能を構成する3つの要素
本記事では、機能全体を「Hooks機能」、登録した自動処理を「Hook」と表記します。
設定内のhookは、実行方法を定義する要素です。event、matcherと組み合わせます。
3つを「いつ・何に・何をする」と置き換えると、設定を読みやすくなります。

処理のタイミングを決めるevent
eventは、自動処理を動かすタイミングを表します。
ファイル編集の前後、通知の発生時、応答の終了時などから目的に合うものを選びます。
- PreToolUse:ツールの実行前
- PostToolUse:ツールの実行後
- Notification:通知の発生時
最初に「いつ動いてほしいか」を決めると、必要なeventを選びやすくなります。
イベント名は大文字と小文字を含め、公式表記のまま指定してください。自己流で書き換えると、意図した時点で動きません。
処理対象を絞るmatcher
matcherは、eventから渡される値をパターンと照合する条件です。
照合する値はeventごとに異なります。空のmatcherは、対象を絞らない指定です。
- Write:ファイルの新規作成や上書き
- Edit:既存ファイルの部分編集
- Notification:通知の種類を表す値
PreToolUseやPostToolUseではツール名、Notificationでは通知の種類を照合します。
適切なmatcherで範囲を絞ると、不要な実行を減らせます。
実行内容を指定するhook
hookは、条件に合ったときに実際に行う処理を指定する部分です。
初心者がよく使うcommand形式では、端末で実行するコマンドを登録します。
- 通知の表示
- 整形ツールの実行
- 日時のログ保存
- 処理失敗時のメッセージ出力
- 処理結果をClaude Codeへ返す設定
hookには種類と実行内容を設定します。command形式以外もあります。
内容を理解してから登録すれば、安全性を保てます。
>Anthropic公式のHooksリファレンスはこちらから
Claude CodeにHooks機能を設定する手順
Hooks機能は、目的の決定から動作検証まで4つの手順で設定します。
最初から複雑な自動化を目指さず、停止しやすい処理から試しましょう。

自動化する作業と実行時点の決定
最初に、何をいつ自動実行したいかを1文で整理します。
初心者には、ファイルを変えない通知が適しています。失敗しても成果物へ影響しにくいためです。
- 作動時点:Claude Codeが処理を終え、次の入力を待つとき
- 実行内容:デスクトップ通知の表示
- 停止方法:設定JSONから対象の登録を削除
- 確認方法:テスト用フォルダで動作確認
「event」「対象」「処理」「停止方法」の4点も先にメモします。
成果物を変更しない処理を初回に選ぶと、失敗時の影響も抑えられます。
settings.jsonへの設定追加
設定は、Claude Codeに日本語で依頼して追加します。
読者がJSONを手入力したり、コードの細部まで確認したりする必要はありません。
プロジェクト内の自分だけに適用するHookを設定してください。
変更前に、設定の目的・適用範囲・外部送信の有無を日本語で説明してください。
Claude Codeは依頼内容に合わせて設定を作ります。読者は、何が起き、どこまで影響するかを日本語で確認します。
以下のJSONは設定の完成例です。手入力や暗記は不要であり、Claude Codeに作成と反映を任せられます。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "echo 'ファイル編集を検知しました'"
}
]
}
]
}
}
影響範囲を限定したい場合は、プロジェクトの「.claude/settings.local.json」を選びます。
| 保存先 | 適用範囲 |
|---|---|
| ~/.claude/settings.json | 自分が使う全プロジェクト |
| .claude/settings.json | プロジェクト内でチーム共有 |
| .claude/settings.local.json | プロジェクト内の自分だけ |
設定前に、自分だけに適用されることと、外部へ情報を送らないことを確認してください。
/hooksによる登録内容の確認
追加後は「/hooks」を開き、登録したeventとコマンドを閲覧します。
「/hooks」は登録済みHookの閲覧用です。この画面から設定の追加や変更はできません。
- 設定した目的
- 設定が動くタイミング
- 自分だけかチーム全体かの適用範囲
- 外部送信やファイル削除の有無
個別のHookを選ぶと、保存元も確認できます。
内容がわからない場合は、Claude Codeへ日本語で説明させます。読者自身がJSONを読んで判断する必要はありません。
テスト環境での動作検証
設定後は、重要なファイルがないテスト用フォルダで動作を確かめます。
通知のHookなら、Claude Codeへ確認が必要な作業を依頼し、通知の有無を見ます。
- 意図した場面で処理が動くか
- 別の場面で誤って動かないか
- 処理失敗時に原因を確認できるか
- 設定削除後に元の作業へ戻れるか
成功と失敗の両方を試し、想定外の時点で動かないことも確かめます。
1回の成功だけで判断せず、数回試してください。日時と結果をメモすると、変更後の比較にも役立ちます。
Hooks機能の主な活用例
Hooks機能には、通知から安全対策まで4つの代表的な活用例があります。
目的と危険性を比べ、自分の作業に合うものを一つずつ取り入れましょう。

入力待ちを知らせるデスクトップ通知
デスクトップ通知は、初心者が効果を確認しやすい活用例です。
長い作業中でも、Claude Codeが処理を終えて次の入力を待つ時点に気づけます。
Notificationイベントには、OSの通知コマンドを設定します。対象にできる主な状態は次の2つです。
- idle_prompt:処理を終え、次の入力を待つ状態
- permission_prompt:操作の承認待ちの状態
通知コマンドは、自分のOSに合わせて設定してください。
私のOSで、Claude Codeが処理を終えて次の入力を待つときに
デスクトップ通知を出すHookを設定してください。
プロジェクト内の自分だけに適用し、設定前にコマンドの意味を説明してください。
通知だけなら成果物を変更せず、小さな自動化の便利さを体験できます。
ファイル編集後の自動チェック
PostToolUseを使うと、ファイル編集後の確認作業を自動化できます。
人が確認を頼み忘れても、条件に合う編集の後に毎回同じ処理が動くためです。
- 文章の表記確認
- コードの整形
- 簡単なテストの実行
- 失敗内容の画面表示
- 対象ファイルだけの限定チェック
- 処理時間を抑えた軽い自動事前確認
整形やテストが失敗した際の表示も決めておきます。
最初は対象ファイルを限定してください。重いテストを毎回動かすと、作業時間が延びます。
危険な操作の実行制限
PreToolUseでは、ツールが動く前に内容を調べて制御できます。
重要なファイルへの書き込みや、危険なコマンドの実行を止める用途が代表例です。
- 保護するファイルやフォルダ
- 許可しない操作の種類
- 通常操作を妨げない条件
- 制限を安全に解除する際の手順
別のツールや書き方で、同じ操作が行われる可能性もあります。
Hookだけを過信せず、OS側の権限管理やバックアップも併用します。通常操作への影響もテストしてください。
作業履歴のログ保存
Hookを使えば、処理が起きた日時や作業内容をログへ残せます。
後から問題が起きたときに、いつ何を実行したかを確認しやすくなるためです。
- 記録する日時と処理名
- ログの保存先と保存期間
- ログを閲覧できる人の範囲
- 記録しない会話や秘密情報
- 不要になったログの整理方法
ログの保存期間と、閲覧できる人も決めてください。
目的に不要な本文や入力内容は記録しない方針なら、情報漏洩の危険を抑えられます。不要なログは社内ルールに沿って整理します。
Hooks機能を安全に使うための注意点
Hooks機能を安全に使うには、導入前に確認したい4つの注意点があります。
Hookのコマンドは確認を待たずに動く場合があるため、実行前の確認が重要です。

実行コマンドと外部送信先の確認
他人の設定を使う前に、コマンドと外部URLを1行ずつ確認してください。
Hookは自分のパソコン上で、自分と同じ権限を使って処理を実行するためです。
- ファイルを削除する処理
- 外部へ情報を送る処理
- 広い範囲を変更する処理
- 自分で説明できない処理
- 目的が不明な長いコマンド
「curl」などの外部通信や「rm」などの削除処理には、とくに注意が必要です。
内容が読めなければ登録を止めます。送信先だけでなく、送るデータの内容も確認してください。
認証情報を直接書かない設定
APIキーやパスワードは、Hookの設定ファイルへ直接書かないでください。
チーム共有するsettings.jsonへ書くと、Gitを通じて外部へ漏れるおそれがあります。
- APIキー
- パスワード
- アクセストークン
- 秘密情報を含む環境変数
- 外部サービスへの接続用認証情報
ログ出力にも秘密情報を含めないでください。
書き込んだ認証情報は、管理画面で無効化して再発行します。最初は外部連携のないHookを選んでください。
ローカル環境から始める段階的な導入
初回は、自分だけに適用するsettings.local.jsonへ設定します。
チーム全体へ共有すると、ほかの人のOSや作業にも影響する可能性があるためです。
- 通知
- 読み取りだけのチェック
- ファイル変更を伴う処理
- チーム全体への共有
- 共有後の一時停止手順の周知
チーム共有へ移す前に、利用OSや必要なコマンドも確認します。
影響の小さい設定から進めると、原因を探しやすくなります。共有時は事前に停止手順も添えてください。
permissionsやGitを併用した安全対策
Hooks機能だけでなく、permissionsとGitも併用してください。
permissionsはClaude Codeのツール呼び出しを制限します。HookのOSコマンドは制限しません。
- permissions:Claude Codeのツール呼び出しを制限
- OS側の権限:Hookコマンドが利用できる権限を管理
- Git:変更差分の確認と復元
Hookコマンドは自分と同じOS権限で動き、permissionsによる隔離の対象外です。permissionsはClaude Codeの操作に対する補助的な防御です。
注意点を押さえておけば、AIは安心して任せられる相手になります。
作業をまるごと任せるAIエージェントでは、この見極めがそのまま成果の差になります。
SHIFT AIのAIエージェントを学べる無料セミナーでは、AIに作業を任せる方法を、実演を交えて解説しています。下のボタンから詳細をご確認ください。
スキルゼロから始められる!
無料AIセミナーに参加するHooks機能が動かない場合の対処法
Hooks機能が動かない場合は、設定から実行環境まで4点を順番に確認します。
一度に複数箇所を変えず、原因を一つずつ切り分けましょう。

settings.jsonの保存場所と記述内容
最初に、設定ファイルの保存場所とJSONの記述を確認します。
別プロジェクトのsettings.local.jsonへ保存した設定は、現在の作業では動きません。
- 読み込まれる場所へ保存されているか
- 括弧やカンマが不足していないか
- 既存設定を誤って消していないか
同名ファイルが複数ある場合は、読み込まれたファイルを確認します。
Claude CodeへJSONの構文確認も頼めます。修正前の設定を保存すれば、元へ戻せます。
eventとmatcherの指定範囲
設定が表示される場合は、eventとmatcherがテスト内容に合うかを見ます。
PostToolUseを設定しても、ファイル編集が起きなければ対象のHookは動きません。
- eventが実際に発生したか
- matcherが実際の入力値と一致したか
Notificationのmatcherへツール名を書いても一致しません。
一時的に条件を単純化すると、原因を探しやすくなります。確認後は元の条件へ戻してください。
コマンドのパスと実行権限
条件が正しければ、コマンドの場所と実行権限を確認してください。
普段の端末で動くコマンドでも、HookではPATHなどの環境差により見つからない場合があります。PATHは、実行ファイルを探す場所の一覧です。
- 実行ファイルを絶対パスで指定
- 対象スクリプトの実行権限を確認
デバッグログを有効にすると、Hookの実行結果を追いやすくなります。
コマンド単体でもテストしてください。Hook設定と分けて調べると、原因を早く特定できます。
claude --debug
ログは「~/.claude/debug/<session-id>.txt」で確認できます。保存先を決める場合は「–debug-file」を使います。
設定の無効化と削除
原因がわからない場合は、設定JSONから問題のHookを削除して元の作業へ戻します。
「/hooks」で対象を確認し、保存元の設定JSONから該当する登録を削除してください。
- 「/hooks」で対象と保存元を確認
- 設定JSONから対象の登録を削除
- 再登録後にもう一度テスト
- 変更前の設定内容を復元用に保存
全Hookを一時停止する場合は、設定へ次の項目を追加します。
"disableAllHooks": true
managed scopeのHookには、この一時停止設定が効きません。管理者へ変更を依頼してください。削除前には設定をコピーします。
SHIFT AIでは、AIエージェントに仕事を任せる方法を学べる無料セミナーを開催しています。
「リサーチから企画書の作成までやっておいて」と伝えるだけで、調べる・まとめる・資料に起こすところまでAIが進めます。当日はその様子の実演に加えて、AIで収入を増やした会員の事例も紹介します。
登壇するのは、SHIFT AI代表の木内翔大です。オンライン開催で、参加は無料です。下のボタンから、セミナーの詳細をご確認ください。
スキルゼロから始められる!
無料AIセミナーに参加するClaude CodeのHooks機能を小さな自動化から始める
Claude CodeのHooks機能は、決めた時点で指定した処理を自動実行する仕組みです。
eventで「いつ」、matcherで「何に」、hookで「何をするか」を設定します。
- 自分専用の設定から開始
- コマンドと送信先の確認
- テスト後の段階的な拡大
まずは自分だけに適用する通知から始め、動作と停止方法を確かめてください。
業務へ広げる際は、機密情報と人が確認する範囲の設計が課題になります。
ここまでの手順どおりに進めれば、目の前の作業は確実に速くなります。ただ、作業が速くなっただけでは、空いた時間が別の作業で埋まってしまうのもよくある話です。
SHIFT AIでは、AIエージェントに仕事を任せる側に回るための無料セミナーを開催しています。空いた時間を副業や収入につなげた会員の事例もご覧いただけます。
当日は、AIエージェントに作業を任せる実演と、AIで収入や働き方を変えた会員の事例をご覧いただけます。
登壇するのは、SHIFT AI代表の木内翔大です。参加は無料で、オンライン開催です。
「AIは使えているが、働き方は何も変わっていない」という方は、下のボタンから、セミナーの詳細をご確認ください。
スキルゼロから始められる!
無料AIセミナーに参加する目次
執筆者
宇津木隼人
複数のAI系SEOメディアでライターの経験。
専門・得意な領域はSEO/GEO/コンテンツマーケ/アプリケーション開発。





スキルゼロから始められる!
無料AIセミナーに参加する