Claude Codeを使っていると、「AIが作業を終えるたびに手動で確認している」「毎回同じコマンドを自分で叩いている」と感じることはありませんか?じつは、Claude Codeにはhooks(フック)という仕組みがあって、そんな繰り返し作業を自動化できます。この記事では、hooksの基本的な考え方から、副業にすぐ役立つ設定方法まで、ひとつずつ丁寧にお伝えします。
Claude Code hooksとは
Claude Code hooksとは、Claude Codeが特定の操作(イベント)を実行したタイミングで、自動的にシェルコマンドを走らせる仕組みのことです。
たとえば「ファイルを書き込んだ直後にバックアップを取る」「AIが回答を終えたらデスクトップ通知を出す」「コードを変更するたびにログを記録する」といったことが、自分でボタンを押さなくても自動で動くようになります。
プログラミングの世界で「フック」とは「特定のタイミングに処理を割り込ませる」ことを意味します。Claude Code hooksも同じ発想で、AIが動くたびに「ついでにこれもやっておいて」と指示を仕込んでおけるイメージです。
設定できるイベントは以下の5種類です。
- PreToolUse:ツール(ファイル操作・コマンド実行など)を使う直前
- PostToolUse:ツールを使った直後
- Notification:Claude Codeから通知が来たとき
- Stop:Claude Codeが1回の回答を終えたとき
- SubagentStop:サブエージェントが処理を終えたとき
この5つのイベントを組み合わせることで、あなたの作業フローに合わせた自動化が実現できます。
hooksの設定手順
hooksはJSON形式の設定ファイル(settings.json)に書き込みます。設定ファイルには2種類あります。
- グローバル設定:
~/.claude/settings.json(すべてのプロジェクトに適用) - プロジェクト設定:プロジェクトフォルダ内の
.claude/settings.json(そのプロジェクトだけに適用)
副業でブログ管理ツールを作っているなら、プロジェクト設定が便利です。一方で「毎回作業ログを残したい」という個人ルールはグローバル設定に書いておくとよいでしょう。
ステップ1:設定ファイルを開く
Claude Codeのターミナルで /config と入力すると、現在の設定ファイルが開きます。または直接 ~/.claude/settings.json をテキストエディタで開いてください。ファイルが存在しない場合は、新規作成して {} だけ書いておけば大丈夫です。
ステップ2:hooksの基本構造を書く
設定ファイルに以下のような形式でhooksを追加します。この例では「Writeツールでファイルを書き込んだ直後に、作業ログへ日時を記録する」という動作をしています。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "echo \"[$(date)] ファイル書き込み完了\" >> ~/claude-work-log.txt"
}
]
}
]
}
}
matcherに指定するのはClaude Codeのツール名です。Write(ファイル書き込み)・Bash(コマンド実行)・Edit(ファイル編集)などが使えます。特定のツールだけに反応させたいときはツール名を、すべてのツールに反応させたいときは空文字列 "" を指定します。
ステップ3:動作を確認する
設定を保存したら、Claude Codeを再起動してください。その後、実際にファイルを書き込む操作をClaudeに頼んで、ログファイルに記録が残るか確認します。ちゃんと動いていれば、自動化の第一歩は完了です。
副業での実践的な活用例
活用例1:作業完了をデスクトップ通知で受け取る
Claude Codeに長い処理を頼んで別の作業をしていると、「いつ終わったかわからない」ことがありますよね。Stopイベントを使えば、AIが回答を終えた瞬間にデスクトップへ通知を飛ばせます。Macなら osascript -e 'display notification "Claude完了!" with title "Claude Code"'、Windowsなら PowerShell のトースト通知コマンドでポップアップが出ます。作業の中断時間が減り、副業の効率が格段に上がります。
活用例2:ファイル変更のたびに自動バックアップ
WordPressテーマのカスタマイズやブログ記事のHTMLを編集する副業では、「誤って上書きしてしまった…」という事故がつきものです。PostToolUseのWriteイベントを使って、ファイルが更新されるたびにバックアップフォルダへコピーするhookを仕込んでおけば、万が一のときも落ち着いて対処できます。
活用例3:作業ログを自動で蓄積する
フリーランスや副業では「何を・いつ・どれくらいやったか」の記録が請求や振り返りに役立ちます。Stopイベントで「Claudeが回答を終えるたびにタイムスタンプをログファイルへ追記する」設定を入れておくと、手動で記録しなくても作業履歴が自然と積み上がっていきます。
グローバル設定とプロジェクト設定の比較
hooksの設定場所は目的によって使い分けましょう。どちらに書くべきか迷ったときは、以下の表を参考にしてください。
| 比較項目 | グローバル設定(~/.claude/settings.json) | プロジェクト設定(.claude/settings.json) |
|---|---|---|
| 適用範囲 | すべてのプロジェクト | そのプロジェクトのみ |
| おすすめ用途 | 作業ログ・デスクトップ通知など個人ルール | バックアップ・テスト自動化など案件固有の処理 |
| チーム共有 | できない(個人の設定) | Gitでチームと共有できる |
| 設定の優先度 | 低い(プロジェクト設定で上書き可) | 高い |
| 初心者向けか | ◎ まず最初はここから | ○ 慣れてきたら使う |
副業をひとりで進めている段階では、まずグローバル設定から始めるのがおすすめです。慣れてきたらプロジェクトごとに細かくカスタマイズしていきましょう。
よくある失敗と注意点
失敗1:JSONの書き方ミスで設定が反映されない
hooksが動かない原因の多くは、JSONの文法エラーです。カンマの付け忘れや波かっこの閉じ忘れなど、見た目にはわかりにくいミスが起きやすいです。設定を書いたら、オンラインのJSONバリデーター(「JSON validator」で検索)にコピーして文法チェックをしてから保存すると安心です。
失敗2:認証情報をcommandに直書きしてしまう
hookのcommandにWordPressのIDやパスワードをそのまま書いてしまうと、設定ファイルごとGitに上がって外部に漏れるリスクがあります。認証情報は必ず$WP_USERや$WP_PASSのような環境変数で参照する書き方にしましょう。.envファイルに書いてsource .envで読み込んでから使う方法が安全です。
失敗3:重い処理を詰め込んで作業が遅くなる
hookに重い処理(大きなファイルのコピー・外部APIの呼び出しなど)を詰め込みすぎると、Claude Codeの操作のたびに待ち時間が発生します。hookはあくまで「軽い自動化」に使い、重い処理はバックグラウンド実行(コマンドの末尾に & を付ける)にするか、別のスクリプトに任せましょう。
まとめと次のアクション
Claude Code hooksは、AIの動きと自分の作業フローをつなぐ「自動化の糊(のり)」のような存在です。最初は「作業が終わったら通知を出す」というシンプルなhookひとつからで十分です。それだけでも、毎日の副業作業がぐっとストレスフリーになります。
慣れてきたら、バックアップ・ログ記録・テスト自動化と、少しずつhookを育てていきましょう。「自分専用のAIアシスタントを育てていく」感覚で取り組むと、楽しく続けられますよ。
まずは以下の3ステップを試してみてください。
~/.claude/settings.jsonを開いてhooksキーが存在するか確認するStopイベントでデスクトップ通知を出すhookを1つ書いてみる- Claude Codeを再起動して、実際に動くか確認する
「うまくいかない」「もっとこんな自動化がしたい」という場合は、ぜひコメント欄で教えてください。一緒に解決策を考えましょう。
実装前に確認したい自動化設計メモ
自動化の記事は、ツール名を覚えるだけでは実務に落とし込みにくいです。実装前に、何を自動化し、どこで人間が確認するかを決めると失敗を減らせます。
| 確認項目 | 判断基準 | 次の行動 |
|---|---|---|
| 対象作業 | 毎回同じ手順で発生しているか | まず手順を書き出し、判断が必要な箇所を分ける |
| 入力データ | どこから取得し、誰が閲覧できるか | API、フォーム、スプレッドシートなど入力元を固定する |
| 停止条件 | エラー時に止まる仕組みがあるか | 通知、ログ、手動確認ポイントを用意する |
手順を分解
小さく自動化
ログで改善
確認チェックリスト
- APIキーや個人情報を記事通りに扱わず、自分の環境で権限を確認する
- 最初から完全自動にせず、通知までの半自動で試す
- 実行頻度を高くしすぎない
- エラー通知とログ保存を用意する
- 公式ドキュメントで最新仕様を確認する
この記事を読む前に整理したいこと
ツール名は分かってきたものの、実際にどの業務を自動化すればよいのか、どこまで任せてよいのかで迷いやすいテーマです。 そのため、この記事では「知識を増やす」だけではなく、読後に何を確認し、どの順番で試すかまで分かるように整理します。
この記事では、いきなり大きな仕組みを作る前に、対象業務の選び方、設計の順番、失敗しやすいポイントを具体的に整理します。 すでに少し触ったことがある方は、表の判断軸から読み始めても大丈夫です。これから始める方は、最初に小さな一歩を決めるつもりで読んでみてください。
この記事で持ち帰れること
- 自分に関係するポイントと、今は無視してよいポイントを分けられます。
- ツール名や流行語ではなく、作業時間・費用・安全性・再現性で判断できます。
- 読後にそのまま試せる小さな手順と、失敗したときの修正方法が分かります。
判断基準の早見表
| 見るポイント | 確認する内容 | 行動の目安 |
|---|---|---|
| 毎回同じ手順がある | 請求書整理、問い合わせ分類、定期レポート作成 | 最初の自動化候補にしやすい |
| 判断が必要な箇所がある | 例外対応、承認、個人情報の確認 | 人間の確認ポイントを残す |
| 外部サービスとつながる | フォーム、スプレッドシート、メール、Slack | 権限とログを先に確認する |
実践までの流れ
対象業務を1つ選ぶ
入力・処理・出力に分ける
失敗時の停止条件を決める
半自動で試してから広げる
よくある失敗と直し方
| 失敗しやすい点 | 修正の考え方 |
|---|---|
| 最初から完全自動化を狙う | 通知だけ、下書き作成だけなど、人が確認できる範囲から始める |
| APIキーや個人情報の扱いを後回しにする | 権限、保存場所、共有範囲を実装前に決める |
| 動いた瞬間に完成と考える | エラー時の通知、ログ、再実行手順まで確認する |
そのまま使える整理テンプレート
この業務は、毎回「入力→判断→出力」の順で発生しています。まずは入力元を固定し、判断が必要な箇所だけ人が確認し、出力先を1つに絞って自動化します。
読者の方からよく出る疑問
初心者でも、この記事の内容をすぐ試せますか?
最初から大きな成果を狙う必要はありません。まずは1つの作業、1つのツール、1つの成果物に絞ると試しやすくなります。うまくいった型だけを残し、次の記事や次の作業へ広げるほうが安全です。
情報が古くならないか心配です。
AI関連の料金、機能名、利用規約、API仕様は変わりやすい分野です。この記事では考え方と実践手順を中心に整理していますが、実際に契約・導入・納品する前には公式情報をご確認ください。
結局、何から始めればよいですか?
まずは「自分が毎週困っている作業」を1つ選んでください。その作業を短縮するために、この記事の表から確認項目を1つ選び、30分だけ試してみるのがおすすめです。小さく試すほど、失敗しても戻しやすくなります。
実務で使える完成例・判断基準・運用フォーマット
この記事は、読んで終わりではなく、実際の作業に移せることが重要です。そこで、テーマに合わせて「完成例」「判断基準」「コピーして使える運用フォーマット」を整理します。空欄だけのテンプレートではなく、まず完成形を見てから自分用に置き換えられる構成にしています。
| 観点 | 見るべきこと | 実務での判断例 |
|---|---|---|
| 事前準備 | 先に用意するもの | アカウント、APIキー、対象データ、保存先 |
| 実行手順 | どの順番で進めるか | 最小構成で動かし、後から拡張する |
| 確認方法 | 成功したと判断する条件 | ログ、通知、出力物、表示結果を見る |
| 失敗時 | 止まった時の見直し先 | 認証、権限、列名、入力形式、回数制限 |
完成例とコピー用フォーマット
【手順実行メモ】 テーマ:Claude Codeのhooksとは?自動化フローの作り方 想定シナリオ:読者が今日1つだけ試し、結果を記録して次の改善へつなげる場面 事前準備: - 使用ツール: - 必要なアカウント: - 入力データ: - 保存先: 実行手順: 1. 2. 3. 成功条件: - 失敗した時に見る場所: - 認証・権限 - 入力形式 - ツール側の制限 - ログ・通知
公開前・実行前の品質基準
- タイトルで約束した内容が、本文内の表・例・フォーマットで回収されている
- 読者が自分の状況に置き換えて使える
- 料金、仕様、規約など変わりやすい情報を断定しすぎていない
- 失敗した時に確認する場所が書かれている
- 次の行動が1つに絞られている
