⚓
Hooks — Automation Rules
中級者向けSet up automatic triggers and actions
Hooks って何?(家のセキュリティで例えると)
Hooks = 家のセキュリティシステム
家にセキュリティシステムを付けると:
• ドアが開いたら → 自動でカメラが撮影
• 不審者を検知 → 自動でアラームが鳴る
• 窓が割れたら → 自動で警備会社に通報
Hooks も同じです:
• Claude がファイルを保存したら → 自動で文法チェック
• Claude が危険なコマンドを実行しようとしたら → 自動でブロック
• Claude が作業を完了したら → 自動でテスト実行
人間がいちいち確認しなくても、ルールどおりに自動で動きます。
家にセキュリティシステムを付けると:
• ドアが開いたら → 自動でカメラが撮影
• 不審者を検知 → 自動でアラームが鳴る
• 窓が割れたら → 自動で警備会社に通報
Hooks も同じです:
• Claude がファイルを保存したら → 自動で文法チェック
• Claude が危険なコマンドを実行しようとしたら → 自動でブロック
• Claude が作業を完了したら → 自動でテスト実行
人間がいちいち確認しなくても、ルールどおりに自動で動きます。
Hooks vs Skills vs サブエージェント — 何が違う?
| Hooks | Skills | サブエージェント | |
|---|---|---|---|
| たとえ | セキュリティアラーム (自動で作動) | レシピ本 (呼ぶと実行) | 部下 (仕事を委任) |
| いつ動く? | 特定の出来事が起きたら自動で | あなたが /コマンド で手動で | Claude が必要に応じて自動で |
| 確実性 | 100%実行される (プログラムなので) | 呼んだときだけ | AIの判断による |
| 用途 | 品質ゲート、安全チェック | 定型作業の効率化 | 作業の委任 |
よく使われる Hooks の例
例1: 作業完了時にテストを自動実行
Claude が「完了しました」と言う前に、自動でテストを実行します。テストが失敗したら、Claude に修正を促します。
// .claude/settings.json の中に書く
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "npm test 2>&1 | head -20"
}
]
}
]
}
}用語解説:
•
•
•
•
•
"Stop" = Claude が作業を完了しようとするタイミング•
"command" = 実行するプログラムの種類(ここではターミナルのコマンド)•
npm test = テストを実行するコマンド•
2>&1 | head -20 = 結果の最初の20行だけ表示する例2: 危険なコマンドをブロック
ファイルの一括削除など、危険なコマンドが実行されそうになったら自動で止めます。
主なタイミング(いつ Hook が動くか)
| タイミング | いつ? | 使い道 | 止められる? |
|---|---|---|---|
PreToolUse | Claude がツール(道具)を使う前 | 危険な操作をブロック | ✅ 止められる |
PostToolUse | Claude がツールを使った後 | 変更後の自動チェック | ❌ |
Stop | Claude が作業完了しようとするとき | 最終テストの自動実行 | ✅ 止められる |
SessionStart | セッション開始時 | 環境のセットアップ | ❌ |
UserPromptSubmit | あなたがメッセージを送信する前 | 入力の前処理 | ✅ 止められる |
「止められる」とは?
Hook のプログラムが特別な信号(exit code 2)を返すと、Claude のその操作が中止されます。 たとえばテストが失敗したら、コミット(保存)を自動で中止する、というような使い方です。
Hook のプログラムが特別な信号(exit code 2)を返すと、Claude のその操作が中止されます。 たとえばテストが失敗したら、コミット(保存)を自動で中止する、というような使い方です。
HTTP Hooks(2026年の新機能)
シェルスクリプトが書けなくても大丈夫
従来の Hooks はシェルスクリプト(ターミナルのコマンド)を書く必要がありましたが、HTTP Hooks なら URL を指定するだけ。
Claude が何かをするたびに、指定した URL に JSON データが自動送信されます。
Webアプリ(localhost でもOK)で進捗を表示したり、権限を管理したりできます。
X投稿: Dickson Tsai氏(Anthropic)による HTTP Hooks 発表
Claude が何かをするたびに、指定した URL に JSON データが自動送信されます。
Webアプリ(localhost でもOK)で進捗を表示したり、権限を管理したりできます。
X投稿: Dickson Tsai氏(Anthropic)による HTTP Hooks 発表
設定例
// .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"hooks": [
{
"type": "http",
"url": "http://localhost:8080/hook",
"headers": {
"Authorization": "Bearer ${MY_TOKEN}"
}
}
]
}
]
}
}用語解説
HTTP = Webでデータをやり取りする仕組み。ブラウザがWebページを表示するのと同じ技術。
JSON = データを整理して書く形式。{ "名前": "太郎", "年齢": 25 } のような書き方。
localhost = 自分のパソコン自身を指すアドレス。外部に通信せず、自分のPC内で完結。
JSON = データを整理して書く形式。{ "名前": "太郎", "年齢": 25 } のような書き方。
localhost = 自分のパソコン自身を指すアドレス。外部に通信せず、自分のPC内で完結。