hooksとは — 「お願い」ではなく「機械的な強制」
hooksとは、Claude Codeの特定のイベント(ツール実行の前後、応答の終了時、セッション開始時など)に反応して、あらかじめ決めた処理を必ず実行させる仕組みです。CLAUDE.mdに書いたルールが「守ってね」というお願い(プロンプト)であるのに対し、hooksはイベントが起きたら機械的に発動する点が決定的に違います。
CLAUDE.mdやSkillsはAIへの指示なので、守られる確率は高くても100%ではありません。「絶対に守らせたい」ことは、AIの判断に委ねず、仕組みで強制する。この使い分けが、Claude Codeを安定運用するためのハーネス(AIを安全に動かす枠組み)設計の要点です。
CLAUDE.md・Skills・hooksの役割分担
CLAUDE.mdは毎回読む「憲法」、Skillsは必要なときに読む「業務マニュアル」、hooksは特定イベントで必ず動く「自動処理」。前者2つが“何をどう伝えるか”なら、hooksは“確実に実行させる”担当です。三者は補い合う関係にあります。
主なhookイベント — いつ発動するか
hooksは「どのタイミングで発動するか」をイベント名で指定します。用意されているイベントは多数ありますが、実務でよく使うのは次のあたりです。
| イベント | 発動タイミング | 使い道の例 |
|---|---|---|
| PreToolUse | ツールを実行する直前 | 危険なコマンドや機密ファイルへのアクセスをブロックする |
| PostToolUse | ツールの実行が成功した後 | ファイル変更後に自動でフォーマットや検査を走らせる |
| UserPromptSubmit | ユーザーが指示を送った直後 | 入力内容に応じて注意書きや前提を差し込む |
| SessionStart | セッションの開始時 | 最新情報の自動読み込み・リポジトリの同期 |
| Notification / Stop | 入力待ち・応答の終了時 | 作業が終わったら通知音を鳴らす |
このほかにも、サブエージェントの開始・終了、コンテキストの圧縮前後、セッション終了時など、細かなタイミングに対応するイベントが用意されています。まずは上記の代表的なものから使い始めるのがおすすめです。
設定方法 — settings.json に書く
hooksは設定ファイル settings.json に書きます。置き場所は3種類あり、目的で使い分けます。
~/.claude/settings.json— 全プロジェクト共通(自分のPC全体).claude/settings.json— そのプロジェクトだけ(リポジトリにコミットしてチーム共有できる).claude/settings.local.json— そのプロジェクトの自分だけ(共有しない)
書式は「イベント名 → どのツールに反応するか(matcher)→ 実行する処理」の入れ子構造です。下は「Bashコマンドを実行する前に、チェック用スクリプトを必ず通す」最小の例です。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/check.sh"
}
]
}
]
}
}matcher で反応するツールを絞り込み(例: Bash、Edit|Write のように複数指定も可)、type で処理の種類(シェルコマンドの実行、HTTPリクエスト等)を選びます。処理内容そのものは自分で用意したスクリプトに任せられるので、やれることの幅は広いです。
法人運用での使いどころ
- 機密情報のガード: PreToolUseで、
.envや特定の秘密ファイルへのアクセスを機械的にブロックする。AIが“うっかり”読みに行くことを構造的に防ぐ - 品質の自動担保: PostToolUseで、ファイルを変更するたびに自動チェック(フォーマット・検証)を走らせ、崩れた状態のまま進むのを止める
- 運用の自動化: SessionStartで、作業開始時に最新のルールや共有ファイルを自動で読み込ませ、古い前提で作業が始まらないようにする
- 気づける仕組み: Stop/Notificationで、AIが入力待ちになったら通知音を鳴らし、待ち時間の取りこぼしをなくす
特に1つ目の「機密情報のガード」は、法人導入で外せない観点です。プロンプト(CLAUDE.mdの禁止事項)だけに頼らず、hooksという機械的な関所を置くことで、情報漏洩リスクを一段下げられます。この考え方はClaude Codeのセキュリティ対策、権限そのものの設計は権限設定の基本で詳しく扱っています。
非エンジニアでも設定できるのか
設定ファイルの編集自体はテキスト作業で、しかも「こういう条件のときにこの処理を必ず走らせるhooksを設定して」とClaude Code自身に依頼して書いてもらえます。とはいえ、実行される処理(スクリプト)が何をするかは理解しておくべきで、特にファイルをブロック・削除するような処理は動作を一度確認してから運用に載せるのが安全です。
「どのルールをお願い(CLAUDE.md)で済ませ、どれを強制(hooks・権限)にするか」の線引きは、実際に運用しながら育てていくものです。当社のClaude Code研修では、この“守らせ方の設計”を法人の実務に合わせて組み立てるところまで扱っています。
Claude Codeを組織に定着させたい企業様へ。AI Orchestraの法人研修・伴走支援をご覧ください。




