できること
ツールの許可・確認・拒否
ツールやコマンドごとに、承認なしで使わせる (allow)、毎回確認する (ask)、使わせない (deny) を指定できます。ルールは Claude Code が適用し、モデルの判断には依存しません。
deny を優先する評価順
ルールは deny、ask、allow の順に評価され、最初に一致したものが結果を決めます。allow ルールで deny ルールに例外を作ることはできず、どこかの設定レベルで拒否されたツールは他のレベルから許可できません。
チームでの設定共有
権限の設定をバージョン管理に入れて組織の開発者全員と共有しつつ、各開発者が自分用に調整できます。
機能解説
概要
ルールには、手動の承認なしで使わせる allow、使うたびに確認を求める ask、使わせない deny の 3 種類があります。ルールはモデルではなく Claude Code 自体が適用します。
ルールの書き方
権限ルールは Tool または Tool(specifier) の形式で書きます。
- Bash:
*は空白を含む任意の文字列に一致し、1 つのルールで一連のコマンドをまとめて扱えます。*の無いルールは 1 つのコマンドに完全一致します。確認なしで実行させたいコマンドを書き、変わる部分を*に置き換えます。 - 複合コマンド: Claude Code はシェルの演算子を認識するため、
Bash(safe-cmd *)でsafe-cmd && other-cmdの実行は許可されません。複合コマンドを「Yes, and don't ask again」で承認すると、承認が必要なサブコマンドごとに別々のルールが保存されます。 - 入力パラメータ: deny と ask のルールは、組み込みツールの最上位の入力パラメータに
Tool(param:value)で一致させられます。 - Read: ファイルツールによる読み取りを防ぐには、
Read(./.env)やRead(./secrets/**)のようにパスを指定したReadの deny ルールを追加します。 - WebFetch:
domain:の接頭辞を使い、要求された URL のホスト名に一致させます。 - MCP: サーバーの全ツールには
mcp__<server>__*、特定のツールには完全な名前mcp__<server>__<tool>を書きます。 - Agent (subagents): 特定のサブエージェントを無効にするには、設定の
deny配列にAgent(AgentName)のルールを加えるか、--disallowedToolsの CLI フラグを使います。 - Cd: ツール名だけの
Cdの deny ルールは/cd全体を無効にし、Cd(<path-pattern>)は一致する移動先をブロックします。 - PowerShell: よく使われるエイリアスは照合前に正規化され、
PowerShell(Get-ChildItem *)はgci、ls、dirにも一致します。
評価の仕組みと注意点
Bashのようにツール名だけを書いた deny ルールは、そのツールを Claude のコンテキストから完全に取り除きます。Bash(rm *)のように範囲を絞ったルールでは、ツール自体は残り、一致する呼び出しだけがブロックされます。- Bash のルールは、同じプログラムを別の形で呼び出した場合には一致しません。そのため deny や ask のルールは、プログラムを囲むセキュリティ境界ではありません。
- PreToolUse フックの判定は権限ルールを迂回しません。フックが allow や ask を返しても、一致する deny ルールは呼び出しをブロックし、一致する ask ルールは確認を求めます。
- プロジェクトレベルの deny と ask のルールは制限するだけのものなので、workspace trust の影響を受けません。
管理者・導入時に確認したい点
- 「Yes, and don't ask again」を選んで承認が恒久的に保存される場合 (Bash コマンドや WebFetch のドメインなど)、ルールは git リポジトリのルートにある
.claude/settings.local.jsonに保存されます。このルールは、サブディレクトリや worktree で始めたセッションを含め、そのリポジトリ内の今後のセッションに適用されます。 - VS Code では Permission rules ダイアログで権限ルールを一覧でき、user・project・local の設定でルールを追加・削除できます。起動オプション、セッション限定、managed のルールは読み取り専用です。
- managed の権限ルールについては、ユーザーがインストールした mod に対する適用が改善されています。
- 対象プランは公式のリリースノートには記載がありません。
使い方
- Claude Code で
/permissionsを実行し、ツールの権限を表示・管理するダイアログを開きます。 - ダイアログで、すべての権限ルールと、各ルールの出どころである
settings.jsonファイルを確認します。 - 必要に応じてルールを追加・削除します。Claude の作業中でもダイアログを開くことができ、変更は同じターン内の次のツール呼び出しから適用されます。
利用シーン
.env や秘密情報を置いたディレクトリを、Claude のファイルツールに読ませたくない場面に使えます。
チームで共通の権限設定をバージョン管理に入れ、開発者間でそろえる場面に向いています。
過去のトランスクリプトから、読み取り専用の Bash や MCP ツール呼び出しの allowlist 候補を作る場面に /less-permission-prompts スキルが使えます。
接続した MCP サーバーのうち特定のサーバーやツールだけを許可する場面に向いています。
ChatGPT・OpenAI の対応する機能
比較の単位となる業務: コーディングエージェントのツール実行・ファイル書き込みの許可/拒否ルール管理
承認を繰り返さないための操作は両方にあります。Codex アプリでは、カスタム MCP 承認パネルに「Don't ask again」の処理が追加されています。Claude Code では、「Yes, and don't ask again」で恒久的に保存される承認がリポジトリのルートの .claude/settings.local.json にルールとして保存されます。
読み取りと書き込みの扱いについて、Codex には宣言された読み取り専用のアクションを許可し、書き込みには確認を求める writes アプリ承認モードがあります。Claude Code では、トランスクリプトから読み取り専用の Bash や MCP ツール呼び出しを探して allowlist を提案する /less-permission-prompts スキルを使い、allow ルールとして設定します。
これまでの変更
権限ルールに関する起動時の警告は、ルールが変わるまでユーザーごとに一度だけ表示されるようになりました。
/permissionsのレビュータブは Recently blocked という名前になりました。MCP の allow ルールは名前を指定したサーバーだけに及ぶようになりました。managed の権限ルールの適用も改善されました。
ツール全体を許可する Bash の allow ルールでも、Claude Code のファイルツールが拒否するファイルへのシェル書き込みは実行せず確認を求めるようになりました。多数の deny ルールと MCP ツールがある場合のターンごとの性能も改善されました。
Skill(anthropic-skills:<name>)の deny ルールが、Claude Desktop がプラグインとして配信する同スキルもブロックするようになりました。Skill(anthropic-skills:*)とSkill(claude-ai:*)の allow ルールは claude.ai から同期されたスキルだけを対象とします。/permissionsでは操作後にフォーカスがルール一覧に戻り、削除確認の既定が No になりました。解析できない Bash 行 (eval、env -C) に Read と Edit の deny ルールを適用する 2.1.268 の変更が取り消されました。
VS Code に Permission rules ダイアログが追加されました。
Read()の deny ルールを Bash の引数に適用する 2.1.259 の変更が取り消されました。Bash(ls) xのように閉じ括弧の後に文字があるルールは、無効な設定として報告されるようになりました。Bash(git * main)のようにサブコマンドの前にワイルドカードがある allow ルールに起動時の警告が出るようになりました。/permissionsに auto mode の分類器ルールを表示・編集する Auto mode タブが追加されました。Claude の作業中でも
/permissionsを開けるようになりました。「always allow」のルールがリポジトリのルートに保存されるようになり、git worktree で付与した承認がセッションや worktree をまたいで保持されます。deny/ask のルールは任意の深さでの一致を維持します。
Write(path)、NotebookEdit(path)、Glob(path)のルールには起動時に警告が出ます (代わりにEdit(path)またはRead(path)を使用)。Tool(param:value)構文が追加されました (例:Agent(model:opus)で Opus のサブエージェントをブロック)。deny ルールのツール名の位置で glob パターンが使えるようになりました (
"*"は全ツールを拒否)。allow ルールは MCP 以外の glob を受け付けず、deny ルール内の不明なツール名は起動時に警告されます。macOS で
/private/{etc,var,tmp,home}のパスがBash(rm:*)の allow ルールのもとで危険な削除対象として扱われるようになりました。Bash の deny ルールが env/sudo/watch/ionice/setsid などの実行ラッパーで包まれたコマンドにも一致するようになり、Bash(find:*)の allow ルールはfind -exec/-deleteを自動承認しなくなりました。Windows ではドライブレター付きパスのルールが正しくルート固定され、大文字小文字だけが異なるドライブレターは同じパスとして扱われます。/less-permission-promptsスキルも追加されました。
出典
出典 16 件を表示
- ChatGPT・Codex のリリースノート (2026-04-01)
- Claude Code のリリース (2026-04-18)
- Claude Code のリリース (2026-06-06)
- Claude Code のリリース (2026-06-20)
- ChatGPT・Codex のリリースノート (2026-07-09)
- Claude Code のリリース (2026-07-19)
- Claude Code のリリース (2026-08-23)
- Claude Code のリリース (2026-08-28)
- Claude Code のリリース (2026-09-06)
- Claude Code のリリース (2026-09-12)
- Claude Code のリリース (2026-09-19)
- Claude Code のリリース (2026-09-25)
- Claude Code のリリース (2026-10-03)
- Claude Code のリリース (2026-10-18)
- Claude Code のリリース (2026-10-31)
- 公式ヘルプ