Claude Code パーミッションフック
3階層の Claude Code パーミッションフックをインストールする: 安全な呼び出しは即時許可、危険な呼び出しは即時拒否、グレーゾーンは LLM チェック。スキップフラグ不要。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。
問題点: ファイルの読み取りに承認が必要。クリック。シェルコマンドに承認が必要。クリック。20 回クリックする頃には、始めた機能が頭から抜けている。
すぐに使えるコード: 3 つのコマンドを実行すればパーミッションフックが引き継いでくれる:
npm install -g @abdo-el-mobayad/claude-code-fast-permission-hook
cf-approve install
cf-approve config3 つのコマンドだけ。Claude は承認待ちで止まらず動き続け、危険な呼び出しはマシンに触れる前にブロックされる。--dangerously-skip-permissions は不要。
2 つの悪い選択肢
通常の Claude Code には 2 つの選択肢しかなく、どちらも良くない。
選択肢 1: 常にクリックして承認する。 安全だが、集中力が削られる。複雑な機能では 50 回以上のパーミッションプロンプトが出ることもある。コンテキストが失われる。勢いが失われる。AI 支援コーディングが役に立つと感じさせてくれたものが一緒に消えていく。
選択肢 2: --dangerously-skip-permissions を使う。 速いが恐ろしい。幻覚で rm -rf / が実行されたらマシンがなくなる。使い捨てプロジェクトなら良いが、実際の仕事では無理だ。
パーミッションフックという第 3 の選択肢がある: インテリジェントな委任。Claude は中断なく動き続ける。本当に危険なコマンドはドアで止められる。中間にあるものは、コンテキストを把握した軽量な LLM に転送される。
仕組み: 3 つの階層
各リクエストは届いた瞬間に評価される。
階層 1 - 高速承認(AI 不要)
安全なツールはそのまま通過する:
- Read、Glob、Grep、WebFetch、WebSearch
- Write、Edit、MultiEdit、NotebookEdit
- TodoWrite、Task、すべての MCP ツール
レイテンシゼロ。コストゼロ。Claude は動き続ける。
階層 2 - 高速拒否(AI 不要)
危険な操作はその場で死ぬ:
# These never execute, period
rm -rf / # System destruction
git push --force origin main # Protected branch overwrite
mkfs /dev/sda # Disk formatting
:(){ :|:& };: # Fork bombLLM 呼び出しなし。ハードコードされたルールが最悪のコマンドとあなたの間に立ちはだかる。
階層 3 - LLM 解析(キャッシュ付き)
曖昧なものはすべて、周囲のコンテキストを考慮して判断できる小型の安価なモデル(OpenRouter 経由の GPT-4o-mini)にルーティングされる:
{
"tool": "Bash",
"command": "docker system prune -af",
"working_directory": "/home/user/project",
"recent_context": "User asked to clean up Docker resources"
}モデルは何をしようとしていたかを読んで判断する。各判断はキャッシュされるため、同じコマンドが後で来た場合は即座に処理される。
設定
設定は ~/.claude-code-fast-permission-hook/config.json にある:
{
"llm": {
"provider": "openai",
"model": "openai/gpt-4o-mini",
"apiKey": "sk-or-v1-your-key",
"baseUrl": "https://openrouter.ai/api/v1"
},
"cache": {
"enabled": true,
"ttlHours": 168
}
}レイテンシの面で OpenRouter が優れているのでデフォルトになっている。openrouter.ai でキーを取得する。おおよそのコスト: 5,000 回以上の LLM 判断で 1 ドル。ほとんどの呼び出しは階層 1 か 2 に落ちるため、1 ドルで数ヶ月もつことが多い。
インストール場所
デバイスレベル(推奨): ~/.claude/settings.json に設定を 1 回追加すれば、すべてのプロジェクトで有効になる。
プロジェクトレベル: 1 つのリポジトリにスコープしたルールが必要な場合は .claude/settings.local.json を使う。
インストーラーはこれを設定に書き込む:
{
"hooks": {
"PermissionRequest": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "cf-approve permission"
}
]
}
]
}
}問題が起きたとき
エラー: すべての操作で「Permission denied」
API キーがないか間違っている:
cf-approve configOpenRouter キーを再入力すれば元に戻る。
エラー: 「Hook not triggering」
インストールが正常かを確認する:
cf-approve doctor
cf-approve status動作が一貫しない
判断キャッシュをクリアする:
cf-approve clear-cacheパターンのもう一方の半分
2 つのフックが ClaudeFast の Claude Code に対する考え方の核にある。このフックはパーミッションを担当する。スキル起動フックはその他を担当し、必要なときに適切なスキルをコンテキストに引き込む。
両方を合わせて実行すると、日々の摩擦がなくなる。自然に話しかければ Claude は中断なく作業する。オーケストレーションは裏で、見えないところで動く。
中断なくコーディングできるようになった
- コンテキストを理解したパーミッション自動化がインストールされた
- 完全なフックカバレッジのためにメインの Hooks ガイドをセットアップする
- タスク完了を保証する Stop フックを設定する
- コンパクションを乗り越えるために Context Recovery を試す
- より深く: 専門的なエージェントワークフローのためのスキルを探索する
パーミッション疲れは消えた。スキップフラグも消えた。Claude にはソフトウェアを書くという本来得意なことが残り、あなたの注意は大きな計画に向けられる。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。