権限の管理

Claude Code はファイルの読み書き、コマンドの実行、外部APIへのアクセスといった強力な操作が可能です。権限システムは、これらの操作を安全に制御するための仕組みです。「どのツールを許可し、どのツールをブロックするか」をルールとして定義できます。

権限モード

権限モードは、Claude Code がツールを使おうとした時のデフォルトの振る舞いを決定します。起動時のフラグ --permission-mode で指定するか、対話中に Shift+Tab で切り替えられます。

モード説明
default各ツールの初回使用時にユーザーに許可を確認(デフォルト・推奨
acceptEditsファイル編集を自動許可。レビューの手間を減らしたい時に
plan読み取り専用の Plan Mode。ファイル変更もコマンド実行も不可
dontAsk事前に許可したツール以外はすべて自動拒否
bypassPermissionsすべての確認をスキップ。開発/テスト用途のみ
注意

bypassPermissions は Claude に無制限のアクセスを与えます。本番環境では絶対に使用しないでください。

権限ルールの書き方

settings.json の permissions セクションで、ツールごとに allow(許可)、ask(確認)、deny(拒否)のルールを定義できます。

json
{
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(git commit *)",
      "Read",
      "Edit(/src/**/*.ts)"
    ],
    "ask": [
      "Edit",
      "Write"
    ],
    "deny": [
      "Bash(git push *)",
      "Bash(rm -rf *)"
    ]
  }
}

パターン構文

ルールにはワイルドカードやパスパターンが使えます。

パターンマッチ対象
BashすべてのBashコマンド
Bash(npm run build)完全一致のコマンドのみ
Bash(npm run *)npm run で始まるすべてのコマンド
Edit(/src/**/*.ts)src 配下の .ts ファイルへの編集
WebFetch(domain:example.com)特定ドメインへの HTTP リクエスト
mcp__server__toolMCP 経由のツール呼び出し

ルールの優先順位

複数のルールがマッチする場合、Deny が最優先で評価されます。

DENY(拒否)
ASK(確認)
ALLOW(許可)
ルール評価の優先順序(ホバーで詳細表示)
公式権限ガイド ↗