「Claude Codeに任せたら、本番のファイルを意図せず書き換えられてしまった」「AIが何をしているかわからなくて怖い」——Claude Codeを導入し始めたチームから、こういった声を私たちは繰り返し聞いています。Hooksはまさにこの問題を解決するための機能です。AIが何かアクションを起こす直前または直後に、あらかじめ決めた処理を自動で挟み込めます。設定ファイルを数行書くだけで、ファイル保存時の自動フォーマットや、危険なコマンド実行前の確認ダイアログを実現できます。
目次
- Claude Code Hooksとは何か
- なぜHooksが必要なのか
- 主要フックの種類と使い分け
- Hooksの設定方法
- 実務での活用例
- ファイル保存のたびに自動フォーマット
- 危険なコマンド実行前に確認を挟む
- Slackへの作業完了通知
- 操作ログの自動記録
- 非エンジニアが知っておくべき注意点
- この記事のポイント
- よくある質問(FAQ)
1. Claude Code Hooksとは何か
Claude CodeのHooks(フック)とは、AIが行うツール操作に対して「割り込み処理」を設定できる機能です。
プログラミングの世界では「フック(hook)」は「引っかける」という意味で使われます。ある処理の流れに対して、追加の処理を「引っかける」ように挿入できることから、この名前がついています。
たとえばClaude Codeが「ファイルを書き換える」という操作をしようとしたとき、その直前に「本当に実行してよいか確認する」処理を自動で挟む、といったことができます。
2. なぜHooksが必要なのか
Claude Codeを使い始めた多くのチームが最初にぶつかる壁は、「AIが勝手に動きすぎる」という感覚です。
指示した内容を実行してくれるのは便利ですが、本番環境のファイルを意図せず書き換えてしまったり、削除してはいけないデータを消してしまったりするリスクも生じます。
Hooksはこの問題に対する答えです。AIが何かしようとしたときに「待て」を入れる仕組みを持つことで、人間がコントロールを失わずにAIを活用できます。
私たちmalnaがClaude Codeを社内外で導入支援してきた経験では、Hooksの設定をしていないチームほど「思わぬ操作が起きた」と感じるケースが多く、逆にHooksを丁寧に設定したチームは安心して委任度を上げていけています。
3. 主要フックの種類と使い分け
Claude CodeのHooksは、現時点(2026年3月)で主に4種類あります。
| フックの種類 | 実行タイミング | 主な用途 |
|---|---|---|
| PreToolUse | ツール実行の直前 | 確認ダイアログ・禁止処理 |
| PostToolUse | ツール実行の直後 | ログ記録・通知・後処理 |
| Notification | Claudeからの通知時 | Slack通知・アラート |
| Stop | Claudeの回答完了時 | 完了ログ・次の処理の呼び出し |
4. Hooksの設定方法
HooksはClaude Codeの設定ファイル(CLAUDE.mdまたはsettings.json)に記述します。
基本的な設定の流れは以下の3ステップです。
- プロジェクトルートに設定ファイルを用意する
- フックの種類・対象ツール・実行するコマンドを記述する
- Claude Codeを再起動する
具体的な記述例として、「Bashコマンドを実行しようとしたとき、コマンド名をログファイルに記録する」設定は次のようになります。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "echo $(date) $TOOL_INPUT >> ~/logs/claude_commands.log"
}
]
}
]
}
}
このような設定を書くのが難しいと感じる場合でも、claudecode道場のカリキュラムでは実際に動く設定テンプレートを提供しているため、コピーして使うだけで始められます。
5. 実務での活用例
ファイル保存のたびに自動でフォーマットをかける
コードを書いた後に「見た目を整える(フォーマット)」作業は、毎回手動でやると面倒です。PostToolUseフックを使えば、Claude Codeがファイルを書き換えた直後に自動でフォーマットコマンドを実行できます。
チームで作業する場合、全員が同じフォーマット設定を持っていれば、「誰が書いても同じ見た目になる」状態を維持できます。
危険なコマンドの実行前に確認を挟む
rm -rf(ファイルの強制削除)や本番データベースへのアクセスコマンドは、誤って実行すると取り返しがつきません。PreToolUseフックで「このコマンドは実行してよいですか?」という確認ステップを必ず挟む設定にしておけば、AIが自律的に動いている場面でも人間が最終判断できます。
Slackへの作業完了通知
Claude Codeが長時間かかる処理を終えたとき、StopフックからSlack通知を飛ばす設定にしておくと、終わるまで画面を見ていなくてもよくなります。私たちの社内では、レポート生成タスクが完了したときに担当者のDMへ通知が届く設定を使っています。
操作ログの自動記録
何をいつAIに実行させたかの記録を残すことは、トラブル発生時の原因調査に役立ちます。PostToolUseフックで全操作をCSVやテキストファイルに記録しておくと、「いつ・何の操作が行われたか」をあとから追えます。
6. 非エンジニアが知っておくべき注意点
Hooksは強力な仕組みですが、設定を誤ると意図しない動作を引き起こすこともあります。
特に気をつけたい点は以下の3つです。
- PreToolUseでコマンドを止める設定は慎重に: 必要な処理まで止まってしまうと、Claude Code全体が動かなくなることがある
- ログファイルの肥大化: PostToolUseでログを書き続けると、ファイルが際限なく大きくなる。定期的な削除の設定もセットで入れること
- シークレット(APIキーなど)をコマンドに直書きしない: セキュリティ上のリスクになるため、環境変数を経由して渡す
claudecode道場では、これらの落とし穴を避けるためのチェックリストと、実際にmalnaが使っているHooks設定テンプレートを公開しています。
7. この記事のポイント
- Hooksとは、AIの操作に「割り込み処理」を設定できるClaude Code固有の機能
- PreToolUseで実行前の制御、PostToolUseで実行後のログ・通知が実現できる
- 危険なコマンドへの確認挿入・Slack通知・操作ログ記録など、安全性と自動化を両立できる
- 設定はJSONファイルへの数行の記述だけで完了する
- Hooksなしでチームに展開すると「AIが勝手に動く」と感じるリスクが高くなる
よくある質問(FAQ)
Q. Hooksの設定にはプログラミングの知識が必要ですか?
A. JSON形式のテキストを編集できれば基本的な設定は可能です。ただし、実行するコマンドを自分で書くにはシェルの基礎知識が役立ちます。claudecode道場では、コピーして使えるテンプレートを提供しているため、知識がなくても始めることができます。
Q. HooksはClaude Codeのどのバージョンから使えますか?
A. Hooks機能はClaude Codeの主要バージョンで対応しています。最新の対応状況はAnthropicの公式ドキュメントをご確認ください。
Q. Hooksを設定しなくてもClaude Codeは使えますか?
A. 使えます。Hooksは任意の設定です。ただし、チームで使う場合や本番環境に近い作業を行う場合は、安全性の観点からHooksの設定を強くお勧めします。
Q. 設定したHooksが意図通りに動いているか確認する方法はありますか?
A. PostToolUseでログファイルに記録する設定にしておくと、動作確認がしやすくなります。claudecode道場のカリキュラムでは、デバッグの手順も含めて解説しています。
Q. HooksとClaude Codeのスキル(カスタムコマンド)は何が違いますか?
A. スキルは「ユーザーが明示的に呼び出す処理」、HooksはClaude Codeの操作に「自動で割り込む処理」という違いがあります。両方を組み合わせることで、より細かい制御が可能になります。
組織全体でのClaude Code導入・安全設計の相談はmalnaのAI導入コンサルへ