
2026-04-01#Claude Code#AI#Hooks#自動化#入門
Claude Code Hooks 入門——コピペで5分、最初のフックを動かす
Hooksは便利そうだけど、設定が難しそうで手を出せていない——この記事はそういう人向け。
Pythonの知識は不要。シェルスクリプト1行から始めて、「Claudeが作業を終えるたびにログが残る」 状態を5分で作る。
この記事でやること
Claude Codeが応答を終了するたびに、こんなログが残るようにする。
2026-04-01 10:23:45 Claudeが作業を完了しました
2026-04-01 10:31:12 Claudeが作業を完了しました
シンプルだけど、フックが「確かに動いている」ことを確認するのに十分。
必要なもの
- Claude Codeがインストールされていること
- ターミナルが使えること
以上。
Step 1: スクリプトを作る
まずフックが呼び出すスクリプトを作る。
mkdir -p ~/.claude/hooks
次のファイルを作成する:
cat > ~/.claude/hooks/on_stop.sh << 'EOF'
#!/bin/bash
echo "$(date '+%Y-%m-%d %H:%M:%S') Claudeが作業を完了しました" >> ~/.claude/hooks/claude.log
EOF
実行権限を付ける(これを忘れるとフックが動かない):
chmod +x ~/.claude/hooks/on_stop.sh
Step 2: settings.jsonに登録する
~/.claude/settings.json をエディタで開いて以下を書く(ファイルがなければ新規作成)。
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/on_stop.sh"
}
]
}
]
}
}
ファイルの保存場所について:
| 場所 | 効果 |
|---|---|
~/.claude/settings.json |
すべてのプロジェクトに適用(グローバル) |
.claude/settings.json(プロジェクトのルート) |
そのプロジェクトのみ |
まずはグローバルで試すのがわかりやすい。
Step 3: 動作確認
Claude Codeを起動して、何か一言話しかける。
「こんにちは」
Claudeが返答したら、ターミナルでログを確認する。
cat ~/.claude/hooks/claude.log
こんな出力が出ればフックが動いている:
2026-04-01 10:23:45 Claudeが作業を完了しました
うまくいかない場合
ログファイルが作られない
chmod +x を忘れていることが多い。
chmod +x ~/.claude/hooks/on_stop.sh
settings.jsonを編集したのに反応しない
Claude Codeを再起動すると反映される。
JSONの書き方が間違っている
構文エラーがあるとフック自体が読み込まれない。このサイトで確認できる:
cat ~/.claude/settings.json | python3 -m json.tool
エラーが出なければJSON自体は正しい。
応用:macOSの通知を出す
ログではなく画面に通知を出したい場合は、スクリプトをこれに変える。
#!/bin/bash
osascript -e 'display notification "Claudeが作業を完了しました" with title "Claude Code"'
Claudeが応答を終えるたびに画面右上に通知が出る。
次のステップ
フックが動いたら、もう少し実用的なことができるようになる。
- 危険なコマンドをブロックしたい → 中級編 #7:Claude Codeに危険なコマンドを止めさせる
- ディレクトリ移動で環境変数を切り替えたい → 中級編 #8:CwdChanged
- 全体像を把握したい → Hooks完全ガイド