Claude Code の hooks 機能を使い始めたら、繰り返し作業がかなり減った話

Claude Code の hooks 設定(Stop / PostToolUse など)を使って定型作業を自動化した体験談です。設定方法から実際に使っている内容まで紹介します。

👀 結論から

Claude Code には hooks という機能があって、特定のタイミングでシェルコマンドを自動実行できます!

リポジトリの .claude/settings.json に設定を書いておくだけで、「AIが回答を返したら通知を出す」「ファイルを編集した後に lint を走らせる」といった定型作業を自動化できます。

実際に仕事のプロジェクトで使い始めたら、毎回手動でやっていた確認作業がかなり減って助かっています(^o^)/

💡 hooks 機能とはなにか

hooks は Claude Code が特定のイベントを検知したタイミングで、指定したシェルコマンドを実行してくれる仕組みです。

~/.claude/settings.json(グローバル)か .claude/settings.json(プロジェクト単位)に設定を書きます。

使えるイベントは主に以下の4種類:

  • UserPromptSubmit — プロンプトを送信したとき
  • PreToolUse — ツール(ファイル編集・コマンド実行など)を使う直前
  • PostToolUse — ツールを使った直後
  • Stop — AIの応答が完了したとき

イベントごとに「どんなコマンドを実行するか」を設定できます。

✨ 実際に設定している hooks

いくつか実際に使っている設定を紹介します(^^)

Stop で完了通知を出す

Claude Code に長めの作業を頼んだとき、終わったタイミングで macOS の通知を出す設定です。

処理中は別の作業に集中できるので、かなりありがたいです!

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code の処理が完了しました\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

PostToolUse で lint を自動チェック

ファイルを編集した直後に ESLint を走らせる設定です。

Claude が生成したコードに lint エラーが含まれていた場合、すぐに気づけるようになりました。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "npm run lint --silent 2>&1 | head -20"
          }
        ]
      }
    ]
  }
}

👍 使い始めてからの変化

一番変わったのは、処理中に別作業ができるようになったことです。

以前は Claude Code に少し複雑なタスクを頼んだとき、終わりに気づかずに画面をぼーっと見続けていることがありました(´・ω・`)

Stop フックで通知を出すようにしてから、処理中は別ウィンドウで普通に作業できるようになって、待ち時間がほぼゼロになった感じがしています!

lint の自動チェックも、Claude が生成したコードを自分でいちいち開いて確認する手間がなくなったので、かなりスムーズになりました。

コードを頼んでから「エラーないですよ」まで Claude が一連で確認してくれる感じになったのが、正直かなり大きいです!

🤔 気になった点

コマンドが失敗してもセッションは止まらない仕様なので、最初は「フックが本当に動いているかどうかわからない」という場面がありました(・_・;)

echo "hook fired" のようなログを最初に入れておくと、動作確認がしやすくなります。

また、hooks はまだ比較的新しい機能なので、設定できるイベントやオプションが今後さらに増えていく可能性があります。

プロジェクトの .claude/settings.json に設定を書いておけばバージョン管理もできるので、チームで共有するときも便利です。

パパ系Webエンジニア〜愛用ガジェット一覧 🛍️

AI開発・執筆に使っている作業デスク環境を楽天ROOMにまとめています ✨ デスク周りの参考にどうぞ 🙌

🙌 まとめ

Claude Code の hooks 機能を使うと、定型的な確認作業や通知まわりをかなり自動化できます。

  • .claude/settings.json に書くだけでプロジェクト単位で設定できる
  • Stop で完了通知、PostToolUse で lint チェックが特に便利
  • フックが動いているか確認する echo ログを最初に仕込んでおくと安心
  • バージョン管理できるのでチーム共有にも向いている

Claude Code を仕事で使っている人は、hooks を組み合わせると毎日の作業がさらにスムーズになります🙌