Claude Code Hooks とは?

要約
Claude Code Hooks は、Claude Code(CC)に任意のシェルコマンドを紐づけて実行できる仕組みです。特定のツールの使用前後、または通知・終了などのイベントタイミングで、自動的にコマンドを走らせることができます
意見はこのエリアに表示されます
アイキャッチ画像

Claude Code Hooks が便利なので、以下にまとめておきます。

Claude Code Hooks とは?

Claude Code Hooks は、Claude Code(CC)に任意のシェルコマンドを紐づけて実行できる仕組み

これは、特定のツールの使用前後、または通知・終了などのイベントタイミングで、自動的にコマンドを走らせることができる

CLAUDE.md に書いてた不安定な指示をやめて、フックというものを使って確実に実行させようやってことです

LLM に処理を任せるだけでなく、「ファイル編集後に音を鳴らす」「ログを残す」「外部ツールを実行する」など、人間の手動操作を減らす手段ってことですな

なぜ便利なのか?

Claude Code はコードの編集や実行、ターミナル操作などを対話的に行える強力なエージェントだが、「確実に実行してほしいこと」があるとき、プロンプトだけでは不安定なことがある

Hooks を使えば、以下のような「必ずやってほしいこと」を機械的に保証できる

  • 処理ログの記録
  • フォーマッターの自動実行
  • 編集完了後の通知音
  • セキュリティチェック(特定のディレクトリに触れさせない)
  • Slackやメールなどへの通知連携

基本の設定手順

  1. Claude Code のチャット欄で /hooks と入力し、Enter
  2. PostToolUse を選択(例:ツール使用後に発火)
  3. + Add new matcher...Write|Edit|MultiEdit と入力
  4. + Add new hook... → 任意のコマンドを入力
  5. 保存先を Local にして .claude/settings.local.json に保存

フックイベント:PreToolUse

Claude がツールのパラメータを生成した後、実行前に呼び出されるフック

マッチャー名説明
Taskエージェントタスクの実行
Bashシェルコマンドの実行
Globファイル名パターンの一致確認
Grepファイル内のテキスト検索
Readファイルの読み込み
Edit, MultiEditファイルの編集
Writeファイルへの書き込み
WebFetch, WebSearchWebアクセスや検索操作

例1:処理完了時刻の記録

Claude がファイルを編集した直後、現在時刻をログとして表示する。これは ctrl + R の transcript モードでも確認できる

例2:音で知らせる

macOS 標準の通知音である Glass を再生する。ファイル編集後に "キンッ?" という音が鳴ることで、手を止めずに Claude の処理完了が分かる

例3:使用量の確認

Claude Code のセッションごとの使用コストやトークン消費を表示する CLI。いやー、スター伸びましたね!ワイは嬉しいね。これ、Hooks に組み込めば、自動的にコスト意識も高まる

例:ランダムなポエムを表示

これを紹介しておきたい

何か、CLI って気が滅入るときあるやん?そんなときは、これよ

画像の説明を入れてください
メッセージをつぶやくウシのアスキーアートw

brew install fortune cowsay をしておけば、処理完了のたびに名言やジョークを牛さんがつぶやくわけ。誰が考えたんやろな

ワイ、正直、Claude Code Hooks より、この牛が気になってしまった。いや、さっき知ったのよ

全部もってかれたね

想像してみ、今から30年後。あらゆるソフトウェアが停止した中、多分これは生き残ってる気がするのよ

荒廃した世界で、一人のレジスタンスが、地下でCLI 叩いたら、唯一これが出てくるの

これ考えた人、どんな気持ちで作ったのかな?

きっと、優しい人だよね

なんか、癒されたよ

設定ファイルの全体例

トラブルシュート

  • コマンドが実行されない?

    • .claude/settings.local.json の構文エラーがないか確認
    • /hooks で GUI 上から設定確認・修正可能
  • afplayfortune が動かない?

    • brew install afplay fortune cowsay などで事前にインストールを
  • transcript に出力されない?

    • stderr ではなく stdout を使う(echo など)

応用アイデア

  • PreToolUse にセキュリティチェックを挟み、本番ファイルの書き換えをブロック
  • Notification フックに osascript で macOS 通知を表示
  • Stop フックで「続行条件が満たされない限り停止を防ぐ」
  • 編集対象のファイル名や内容をロギング
  • Git 操作との連携(auto-commit など)

Hooks をうまく活用すれば、Claude Code をセミ自動化IDEのように拡張できます。特に「Claude に何をさせているかを可視化したい人」「セキュアな運用をしたい人」には必須機能とも言える

今後も使える hook コマンドやベストプラクティスを見つけ次第、追記していくよ

Explore More
関連記事はありません。