Claude Codeを始めたばかりの方へ: この記事は「Claude Codeって何?」という段階の方でも読めるように書いています。ターミナルでClaude Codeを使い始めたら、最初にこの安全設定をしておくと安心です。
Claude Codeは便利だが、危険でもある
Claude Codeはターミナルのフルアクセスを持つ。rm -rfもgit push --forceも実行できる。
実際に起きた事故:
- C:\Usersディレクトリ全削除(#36339)— NTFSジャンクションをrmが追跡
- rebase+force-pushでブランチ破壊(#32476)
- .bashrcを勝手に書き換え(#37478)
- 本番データベース削除(#27063)
これらはCLAUDE.mdのルールでは防げない。コンテキストが埋まると、ルールは忘れられる。
:::details 初心者向け: コンテキストとは
コンテキストとは、AIが会話中に覚えている情報の総量です。机の広さに例えると分かりやすいです。机の上に書類を積みすぎると、最初に置いた大事なメモが埋もれて見えなくなる——AIも同じで、情報が増えすぎると最初に指示されたルールを「忘れて」しまいます。
:::
解決策:Hooks
:::details 初心者向け: hookとは
hookとは「特定のタイミングで自動実行されるスクリプト」のことです。玄関のドアに付けるチェーンロックのようなもので、危険な操作が実行される「前」に自動でチェックし、危なければ止めてくれます。
:::
Claude CodeのHooks機能は、ツール実行の前後にシェルスクリプトを実行する仕組み。
hookには3つのタイミングがある。料理に例えると、「食材を切る前にチェック(PreToolUse)」「料理が出来上がった後にチェック(PostToolUse)」「食事が終わったときにチェック(Stop)」のようなものだ。
- PreToolUse — ツール実行前(ここでブロック可能)
- PostToolUse — ツール実行後(結果チェック)
- Stop — Claude応答完了時
exit code 2で終了すると、その操作はブロックされる。
:::details 初心者向け: exit codeとは
exit code(終了コード)はプログラムが終了するときに返す数字です。0は「成功」、それ以外は「何か問題あり」を意味します。Claude Codeのhookでは特別に、exit code 2が「この操作をブロックせよ」という合図になっています。
:::
モデルはこれをバイパスできない。プロセスレベルで強制される。
ステップ1:安全hookをインストール(30秒)
npx cc-safe-setup
8つのhookが自動インストールされる:
| Hook | 防ぐもの |
|---|---|
| destructive-guard |
rm -rf /、git reset --hard、git clean
|
| branch-guard | main/masterへのpush、force-push |
| secret-guard |
git add .env、鍵ファイルのコミット |
| syntax-check | Python/JS/JSONの構文エラー検出 |
| context-monitor | コンテキスト残量警告(40/25/20/15%) |
| comment-strip | bashコメントによるパーミッション破壊防止 |
| cd-git-allow |
cd && git logの自動承認 |
| api-error-alert | APIエラーによるセッション死亡通知 |
ステップ2:動作確認(30秒)
npx cc-safe-setup --verify
各hookにテスト入力を送り、正しくブロックされるか確認する。
✓ destructive-guard: blocks rm -rf /
✓ destructive-guard: allows rm -rf node_modules
✓ branch-guard: blocks git push --force to main
...
14/14 tests passed.
ステップ3:環境の健康診断(30秒)
npx cc-safe-setup --quickfix
よくある問題を自動検出・修正する:
- jqの有無(hookのJSON解析に必要)
- hookファイルの実行権限
- settings.jsonの構文エラー
- 壊れたファイル参照
- shebang行の欠落
ステップ4:プロジェクトに合ったhookを追加(2分)
637のサンプルhookを確認:
npx cc-safe-setup --examples
名前を指定してインストール:
# データベース操作をブロック
npx cc-safe-setup --install-example block-database-wipe
# Docker操作を自動承認
npx cc-safe-setup --install-example auto-approve-docker
# デプロイ前のコミット確認
npx cc-safe-setup --install-example deploy-guard
# プロジェクト外のファイル操作をブロック
npx cc-safe-setup --install-example scope-guard
# Pythonツールを自動承認
npx cc-safe-setup --install-example auto-approve-python
自然言語でカスタムhookを生成することもできる:
npx cc-safe-setup --create "npm publishの前にテストを実行したか確認"
ステップ5:監視(任意)
リアルタイムダッシュボード:
npx cc-safe-setup --dashboard
ブロック統計:
npx cc-safe-setup --stats
hookの仕組み(最小限の理解)
hookは~/.claude/settings.jsonに登録されたシェルスクリプト。
:::details 初心者向け: settings.jsonとは
~/.claude/settings.jsonはClaude Codeの設定ファイルです。ホームディレクトリの.claudeフォルダの中にあります。hookの登録情報やその他の設定が書かれたJSON形式のファイルで、Claude Codeが起動時に読み込みます。
:::
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash ~/.claude/hooks/destructive-guard.sh"
}
]
}
]
}
}
hookの中身(簡略版):
#!/bin/bash
# 標準入力からJSON(ツール名、引数など)を受け取る
COMMAND=$(cat | jq -r '.tool_input.command // empty')
# 危険なコマンドを検出
if echo "$COMMAND" | grep -qE 'rm\s+.*-rf\s+/'; then
echo "BLOCKED: ルートディレクトリの削除" >&2
exit 2 # ← これでブロック
fi
exit 0 # ← これで許可
exit 2 = ブロック。これだけ覚えればいい。
CLAUDE.mdとhookの違い
| CLAUDE.md | Hooks | |
|---|---|---|
| 仕組み | プロンプトに含まれるルール | プロセスレベルのスクリプト |
| 強制力 | コンテキスト依存(忘れる) | 常に実行される |
| バイパス | モデルが無視できる | モデルが無視できない |
| 用途 | 行動指針、コードスタイル | 安全制約、承認制御 |
CLAUDE.mdは「お願い」。Hooksは「強制」。
両方使うのがベスト。CLAUDE.mdで方針を伝え、Hooksで安全を保証する。
インタラクティブに試す
コマンドを入力すると、どのhookが反応するかリアルタイムで表示されるWebツール:
rm -rf /やgit push origin mainを入力して、hookの動作を確認できる。
まとめ
# これだけで安全になる
npx cc-safe-setup --shield
1コマンド、30秒。自律的なClaude Codeセッションが、よくある事故から保護される。
リソース:
- cc-safe-setup GitHub — 8 built-in + 637 example hooks、13,955テスト
- Hook Registry — 複数プロジェクトのhookを横断検索
- Hook Playground — インタラクティブテスター
- Hooks公式ドキュメント
hookの仕組みをもっと詳しく知りたい場合はClaude Code公式ドキュメントのHooksセクションを参照。
hookの設計パターンや自律セッション運用での失敗談を体系的にまとめたClaude Codeを本番品質にする — hook設計・運用ガイド(¥800・第3章まで無料)もあります。非エンジニアが800時間AIを走らせた全記録はAIに仕事を任せてみた(¥800・第3章まで無料)。
設定が正しいか不安な方へ
無料で診断: npx cc-health-check で安全スコアを即座に確認できます。プロによる詳細レビュー($50〜)も受付中。
「どのhookを入れればいいかわからない」なら → Hook Selector(5つの質問で最適なhookセットを推薦)
「CLAUDE.mdのトークンコストが気になる」なら → Token Checkup(トークン消費パターンを診断)
📖 トークン消費に困っているなら → Claude Codeのトークン消費を半分にする——800時間の運用データから見つけた実践テクニック(¥2,500・はじめに+第1章 無料)
📖 非エンジニアがClaude Codeで事業を回した全記録(¥800) — $800のAIコストで¥6,000を稼ぐまでの失敗と改善。第2章まで無料
⚠️ CVE-2026-21852(2026年4月公開): プロジェクト内.claude/settings.json経由でAPIキー窃盗。対策: npx cc-safe-setup(ユーザーレベル設定で免疫)→ 詳細
⚠️ Opus 4.7緊急情報(2026年4月17日)
Opus 4.7のauto mode安全分類器がOpus 4.6にハードコードされている問題が発覚。3日間で23件以上のデータ損失。さらにv2.1.100以降、APIコールごとに約20,000トークンが見えない場所で追加課金されている問題も判明(#46917、GitHub上196件のリアクション)(50GB永久消失含む)。4倍のトークン消費も報告されている。対策: npx cc-safe-setup --opus47(Survival Guide / Safety Scanner)