CC逆引きリファレンス

権限プロンプトをフックで制御したい

11. フック

コマンド / 機能

PermissionRequest

権限ダイアログのカスタム処理

概要

PermissionRequest フックは権限確認ダイアログが表示される前に発火します。hookSpecificOutput.decision.behavior で allow/deny を自動判断する処理を実装できます。

設定例

// .claude/settings.json
{
  "hooks": {
    "PermissionRequest": [
      {
        "hooks": [
          {
            "type": "command",
            "command": ".claude/hooks/auto-approve.sh"
          }
        ]
      }
    ]
  }
}

// auto-approve.sh の出力例(許可する場合)
echo '{"hookSpecificOutput":{"decision":{"behavior":"allow"}}}'

// 拒否する場合
echo '{"hookSpecificOutput":{"decision":{"behavior":"deny"}}}'
公式ドキュメントを見る

こんな時に使う

  • 特定条件の権限リクエストを自動で許可・拒否したい時
  • CI/CD でインタラクティブな権限確認をスキップしたい時

使い方

  1. 1hooks.PermissionRequest にフックを定義
  2. 2フックスクリプトが JSON で allow/deny を返す
  3. 3それ以外の場合は通常の権限ダイアログが表示される

Tips

  • 非インタラクティブな環境での自動化に有効
  • --permission-prompt-tool との組み合わせも可能