- 投稿日:2026/04/06
- 更新日:2026/04/06
「フック機能って何?なんか難しそう…」
Claude Codeを使い始めたとき、正直そう思っていました。
公式ドキュメントを開いたら英語で、専門用語が並んでいて。
「これは上級者向けの機能なんだろうな」と、長い間スルーしていました。
でも正直に言います。
フック機能、めちゃくちゃシンプルです。
そして一度使うと、「なんで今まで使わなかったんだろう」と後悔するくらい便利です。
Claude Codeのフック機能を実際に触りながら理解した内容を、初心者目線でまとめました。
そもそも「フック(Hook)」って何?
私も最初は全く知りませんでした😅
「フック」って、釣り針のフック?
違います(笑)
ソフトウェアの世界でいう「フック」は、
「特定のタイミングで自動的に処理を差し込む仕組み」のことです。
わかりやすく言うと——
「Aという処理が起きたとき、自動でBを実行する」
これがフックの本質です。
料理で例えるなら、「タイマーが鳴ったら(Aが起きたら)、自動で換気扇を止める(Bを実行する)」みたいなイメージです。
Claude Codeのフック機能でできること
Claude Codeには、AIがツールを使うタイミングに合わせて、
自分のスクリプトを自動実行できる仕組みがあります。
具体的には、こういったことができます。
・AIがファイルを編集したあとに、自動でフォーマッターを走らせる
・AIがコマンドを実行するたびに、ログファイルに記録する
・AIの作業が完了したとき、Slackやメールで通知を飛ばす
・危険なコマンドが実行されそうになったら、自動でブロックする
「毎回手動でやっていた作業」が、全部自動化できるわけです。
これを知ったとき、正直テンションが上がりました💻
フックの種類(4種類を覚えよう)
Claude Codeのフックは、大きく4種類あります。
PreToolUse(ツール使用の前)
AIが何かツールを使う「直前」に実行されます。
使いどころ:
・危険な操作をブロックしたい
・実行前にログを残したい
・事前にバリデーションを走らせたい
PostToolUse(ツール使用の後)
AIがツールを使った「直後」に実行されます。
使いどころ:
・編集後に自動フォーマット
・テストの自動実行
・変更履歴の記録
Notification(通知タイミング)
Claude Codeが通知を送ろうとするときに実行されます。
使いどころ:
・Slack通知のカスタマイズ
・独自の通知システムと連携
Stop(作業終了時)
AIのセッションが終了するタイミングで実行されます。
使いどころ:
・作業完了の通知
・後処理スクリプトの自動実行
・ログのまとめ
実際の設定方法(ステップで解説)
フックの設定は、settings.jsonというファイルに書くだけです。
むずかしくありません。
順番に一緒にやってみましょう。
ステップ1:設定ファイルの場所を確認する
まず「どこに設定を書けばいいか」を理解しましょう。
Claude Codeには設定ファイルを置く場所が2つあります。
① プロジェクトごとに設定したい場合
作業しているフォルダの中に .claude というフォルダを作り、 その中に settings.json を置きます。
② すべてのプロジェクトで共通して使いたい場合
ホームディレクトリ(Mac/Linuxなら ~/)に .claude フォルダを作ります。
~/.claude/settings.json
最初は ① のプロジェクトごとの設定 から試すのがおすすめです。
ステップ2:設定ファイルを作る
.claude フォルダと settings.json がない場合は、ターミナルで以下を実行するだけです。
mkdir -p .claude
touch .claude/settings.json
mkdir は「フォルダを作るコマンド」、
touch は「空のファイルを作るコマンド」です。
作成できたら、settings.json をテキストエディタ(VS Codeなど)で開いてください。
最初の中身はこれだけでOKです。
{}
空の {} から始めます。ここにフックの設定を追記していきます。
ステップ3:フックの設定を書いてみる
では実際に書いてみましょう。
今回は「AIがファイルを編集したあと、自動でコードを整形する」という設定を例にします。
settings.json をこのように書き換えてください。
それぞれの意味を噛み砕くと——
・"PostToolUse" → AIがツールを使った「あと」に動かす
・"matcher": "Write" → AIが「ファイルを書く(Write)」操作をしたときだけ反応する
・"command": "npx prettier --write ..." → 実行するコマンド(自動整形ツールのPrettier)
・$CLAUDE_FILE_PATHS → AIが編集したファイルのパスが自動で入る特別な変数
ここで絶対に注意してほしいのが大文字・小文字です。
"Write" は大文字のW、"PostToolUse" は途中も大文字が混ざっています。
正直に言います。
私はここでつまずきました😞
"write"(小文字)と書いたせいで、フックが全然動かなかったんです。
コピペするのが一番安全です。コピペはこちらから👇
{ "hooks": { "PostToolUse": [ { "matcher": "Write", "hooks": [ { "type": "command", "command": "npx prettier --write $CLAUDE_FILE_PATHS" } ] } ] }}
ステップ4:動作確認する
設定を保存したら、Claude Codeでファイルを編集してみてください。
AIがファイルを書いた直後に、Prettierが自動で走れば成功です。
ターミナルに prettier の出力が流れたら「動いた!」のサインです✨
実際に使ってみてわかったこと
正直なところ、最初の設定で1時間ほど詰まりました😞
JSONの書き方を間違えていて、フックが全然動かなかったんです。
エラーもわかりにくくて、
「なんで動かないんだ…」とデバッグし続けました。
そして気づきました。
matcherの値を間違えていただけでした。"Write"と書くべきところを"write"(小文字)にしていたんです。
——大文字・小文字の区別に注意が必要です。
ただ、一度動き出したら感動的でした。
ファイルを保存するたびに自動でフォーマットがかかり、
作業後に自動でログが残り、「あれ、手動でやることほとんどなくなったな」という感覚が生まれました。
振り返ると、「難しそう」という先入観で損していた時間がもったいなかったです。
まとめ:まず1つだけ試してみよう
Claude Codeのフック機能、まとめると——
・フックとは「特定タイミングで処理を自動実行する仕組み」
・PreToolUse / PostToolUse / Notification / Stop の4種類がある
・設定はsettings.jsonに書くだけ
・最初の1つは「ファイル保存後にフォーマット」が試しやすい
完璧に理解してから使う必要はありません。
まず1つ設定してみてください。
動いた瞬間の「おお、自動でやってくれた!」という感覚が、
効率化への一歩になります。
この記事が役に立った方は、ぜひいいね&ブックマーク保存をお願いします!
みなさんのアクションが、今後の執筆の励みになります🙏✨