「hookを入れたいけど、シェルスクリプトを書くのがハードル高い」——これはClaude Codeユーザーから一番よく聞く声だ。
実は、外部ファイルを1つも作らなくていい。settings.jsonの中にインラインで書ける。最小構成なら追加は実質3行。所要時間は1分。
Claude CodeをAuto Modeで使う場合、許可確認なしでコマンドが実行される。hookはその安全網になる。たった1分の設定で、その穴を塞げる。
前提
jqコマンドが必要。macOSならbrew install jq、Ubuntuならsudo apt install jqでインストールできる。
最小のhook
~/.claude/settings.jsonを開いて、以下を追加する:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash -c 'CMD=$(cat | jq -r \".tool_input.command // empty\"); echo \"$CMD\" | grep -qE \"rm\\s+-rf\\s+(/|~|\\$HOME)\" && echo BLOCKED >&2 && exit 2; exit 0'"
}
]
}
]
}
}
これだけで、Bashツールが呼ばれるたびにコマンドをチェックし、rm -rf /やrm -rf ~/をブロックする。
仕組み
-
PreToolUse— ツール実行の前に走るフック -
matcher: "Bash"— Bashツールの呼び出しだけに反応 -
exit 2— このコードを返すと操作がブロックされる -
exit 0— 問題なければそのまま実行を許可
Claude Codeのhookはsettings.jsonに書くだけで動く。Claude側のコードを変更する必要はない。
なぜこれが必要なのか
Claude Code公式GitHub Issuesから実際に起きた事故:
- #36339: NTFS junction経由でC:\Usersが全削除
-
#37331:
Remove-Item -Recurse -Forceで未pushソース破壊 -
#37405: データベースを
migrate:freshで全削除
CLAUDE.mdに「rm -rfを使うな」と書いても、コンテキストが埋まると無視される。hookはプロセスレベルで動くため、Claude側から回避できない。
3行では不安な人へ
上のhookはrm -rfだけをブロックする最小構成。実際にはgit reset --hard、git push --force、.envのコミットなど、防ぎたい操作は複数ある。
ワンコマンドで8つの安全hookをまとめてインストールできる:
npx cc-safe-setup
インストールされるhook:
| hook | 防ぐもの |
|---|---|
| destructive-guard |
rm -rf /, git reset --hard, chmod 777 /
|
| branch-guard | main/masterへの直接push、force-push |
| secret-guard |
.env、秘密鍵のgit add
|
| syntax-check | ファイル編集後の構文エラー |
| context-monitor | コンテキスト使用量の監視 |
| comment-strip | Bashコメントによる権限allowlist不一致の防止 |
| cd-git-allow | cd+gitの読み取り専用コマンドを自動承認 |
| api-error-alert | セッション終了時のAPIエラー通知 |
もっと細かくカスタマイズしたい
667個のexample hookから選んでインストールできる:
# 一覧を見る
npx cc-safe-setup --examples
# 特定のhookをインストール
npx cc-safe-setup --install-example credential-exfil-guard
settings.jsonに3行追加するだけで、一番危険な操作をブロックできる。ゼロより1つhookがある方が圧倒的に安全だ。
自分の使い方に合ったhookを知りたいなら → Hook Selector(5問で最適なhookセットを推薦)
関連記事
- Claude CodeのPreToolUseフックで危険な操作を自動ブロックする — hookの仕組みを詳しく
- Claude Codeのrm -rfでC:\Usersが全削除された事故を防ぐワンコマンドツールを作った — 実事故から生まれたツール
📖 トークン消費に困っているなら → Claude Codeのトークン消費を半分にする——800時間の運用データから見つけた実践テクニック(¥2,500・はじめに+第1章 無料)
⚠ Opus 4.7緊急情報(2026年4月)
auto modeの安全分類器がOpus 4.6にハードコードされており、Opus 4.7では正常に機能しない(#49618)。hookはモデル非依存で動作するため、分類器の故障に関係なく防御が機能する。→ Opus 4.7 Survival Guide / Safety Scanner
📖 AIで事業を回す実体験を全記録 → Claude Code×個人事業 800時間の全記録(¥800・第2章まで無料)
⚠️ 新CVE公開(2026年4月): CVE-2026-21852でプロジェクト内の.claude/settings.jsonからAPIキーが窃盗される脆弱性が判明。npx cc-safe-setupはユーザーレベル設定のみを使用するため、この攻撃に免疫がある。詳細: Opus 4.7 Survival Guide(48問題追跡中)
📚 関連商品 (2026 年 5 月 22 日発売): 本記事の「rm -rf の 3 行の JSON の予防」 の系統の継続として、 利用者の集まりが観察した 27 件の同型の事例 (主張と実態の乖離 + 信頼の境界の崩壊) と 14 件の防衛の手順を整理した Claim-Verify Handbook (Gumroad、 19 米ドル、 同日発売)、 そして留まる + 切り替えるの 8 gate / 13 leaf の判定の樹を含む Migration Playbook 第 2 版 (Gumroad、 19 米ドル、 第 1 版の購入者は無償の更新)。