SpyBara
Go Premium

permission-modes.md 2026-09-29 23:58 UTC to 2026-09-30 21:02 UTC

This page contains 118 additions and 122 deletions.

2026
Wed 9 22:58 Thu 10 23:00 Sat 12 03:02 Fri 18 23:58 Sat 19 23:57 Tue 22 23:59 Fri 25 23:58 Mon 28 22:59 Tue 29 23:58 Wed 30 22:03

権限モードを選択する

Claude が行動する前に確認するかどうかを制御します。CLI では Shift+Tab で、VS Code ではモード表示で、Desktop ではモードセレクターで権限モードを切り替えます。

権限モードは、セッション内で Claude Code が最初にあなたに確認することなく実行できるアクションを設定します。Manual モードでは、Claude Code はファイルを編集したり、シェルコマンドを実行したり、ネットワークに到達したりするほとんどのアクションの前に停止して確認を求めます。auto モードでは、分類器という 2 番目のモデルがあなたの代わりにアクションをレビューします。分類器がアクションを評価する方法には、分類器がレビューするアクションと、スキップするアクションが記載されています。

Claude Code v2.1.283 以降では、auto モードはインタラクティブターミナルと VS Code セッションの組み込みの開始権限モードです。それより前のバージョンでは、Pro、Max、Team プランでのみ組み込みの開始権限モードです。セッションが開始される権限モードは、開始権限モードを変更するサーフェスと設定をカバーしています。実行中のセッションの権限モードはいつでも変更できます。

利用可能なモード

各モードは、利便性と監視のバランスを異なる方法で取ります。以下の表は、各モードで Claude がパーミッション プロンプトなしで実行できることを示しています。Manual モードはその設定値である default の下に表示されます。

モード 確認なしで実行されるもの 最適な用途
default 読み取りのみ すべてのアクションを自分で確認する、機密性の高い作業
acceptEdits 読み取り、ファイル編集、一般的なファイルシステム コマンド(mkdir、touch、mv、cp など) 確認中のコードを反復処理する
plan 読み取り、および auto モード が利用可能な場合の分類器承認コマンド コードベースを変更する前に探索する
auto すべて、バックグラウンド安全性チェック付き 長いタスク、プロンプト疲労の軽減
dontAsk 読み取りと事前承認ツール。プロンプトが表示されるものはすべて拒否 ロックダウン CI とスクリプト
bypassPermissions すべて 分離されたコンテナと VM のみ

すべてのアクションを確認するモードは、CLI では Manual という名前で、claude --help では、VS Code および JetBrains 拡張機能では、デスクトップ アプリでは Manual という名前です。その設定値は default で、これは hooks と SDK 統合が使用するものです。CLI は、値を入力する場所ならどこでも manual をエイリアスとして受け入れます。例えば claude --permission-mode manual または "defaultMode": "manual" です。Manual ラベルと manual エイリアスには Claude Code v2.1.200 以降が必要です。デスクトップ アプリのラベルはお使いの CLI バージョンに依存しません。

保護されたパス への書き込みは、bypassPermissions モードおよび bypass 権限が利用可能な plan モード セッション(つまり、bypassPermissions をモード サイクルに含める 方法で開始されたインタラクティブ ターミナル セッション)を除いて、自動承認されることはありません。

モードはベースラインを設定します。特定のツールを事前承認またはブロックするために、権限ルール を上に重ねます。拒否ルールは bypassPermissions を含むすべてのモードでブロックします。拒否ルールと確認ルールは、Claude が呼び出せる他のツールが少なくとも 1 つある限り、EndConversation には適用されません。許可ルールは bypassPermissions では効果がありません。

どのモードも自動承認しないアクション

Claude Code は、bypassPermissions を含むどのモードでも、以下を自動承認しません。各項目は、各モードで代わりに何が起こるかを説明するセクションにリンクしています。

  • 明示的な 確認ルール に一致するツール

  • 組織が ask に設定したコネクタ ツール(その設定が Claude Code に到達するセッション内)

  • ユーザー インタラクションが必要なツール:組み込みの AskUserQuestion ツールと requiresUserInteraction でマークされた MCP ツール

  • 重要なパス をターゲットとする rm および rmdir 削除。許可ルールまたは PreToolUse hook "allow" では承認されません

  • クロス セッション メッセージング セーフガード

  • permissions.blockReadsOutsideWorkingDirectories がオンの場合、作業ディレクトリ外の読み取り:認識されたファイル読み取り Bash コマンドおよび auto モードおよび bypassPermissions モードでもサンドボックス外で実行するために承認が必要な unsandboxed retry。Claude Code v2.1.257 以降が必要です

    シェル パーサーが追跡できないコマンド(例えば、複数回ディレクトリを変更したり、サブシェルを実行したりするコマンド)は、外部パスを指定しない場合でも同じ方法でプロンプトが表示されます。このプロンプトは、コマンドが sandbox で実行され、sandbox がブロックを強制する場合には適用されません。

一般的なセットアップ

権限モードは Claude がアクションの前に確認するかどうかを決定し、Bash サンドボックスと外側の隔離境界は、アクションが実行されると何に到達できるかを決定します。以下の各行は、目標をフラグまたは設定と、必要な隔離とペアにします。これは開始点です。利用可能なモードは、各モードでプロンプトなしで実行されるものをリストしています。

実現したいこと 開始する 必要な隔離 注記
すべてのアクションを自分でレビュー Manual モード:claude --permission-mode default なし 機密作業、不慣れなコード
ローカルで反復、分類器なしでプロンプトを減らす Manual モード + auto-allow モードの Bash サンドボックス:claude --permission-mode default、その後 /sandbox を実行して auto-allow を選択 組み込み Bash サンドボックス、macOS、Linux、WSL2 上 拒否ルールは依然として適用され、Bash(git push *) のようなコマンドに名前を付ける ask ルールは依然としてプロンプトを表示します。代わりに設定ファイルからサンドボックスをオンにするには、sandbox.enabled を true に設定します
何かを変更する前に探索 claude --permission-mode plan なし Claude Code は計画を承認するまで編集をブロックします
auto モードでハンズオフで作業 claude --permission-mode auto、v2.1.283 以降の組み込み開始権限モード なし。サンドボックスまたはコンテナは防御の深さを追加 サポートされているモデルが必要で、組織は auto モードをオフにできます
正確な許可リストで CI で実行 claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" CI ランナーが提供するもの以外はなし Web 上の Claude Codeは設定ファイルから dontAsk を無視します
コンテナ内で完全に無人で実行 claude -p "<prompt>" --dangerously-skip-permissions 必須:コンテナ、VM、またはサンドボックスランタイム。Linux と macOS では、非 root ユーザーとして実行 Web 上の Claude Code は設定ファイルからこのモードを無視します。この -p 実行では、依然としてプロンプトが表示される少数の呼び出しは代わりに拒否されます

Bash サンドボックスと auto モードは独立して機能し、Sandbox modesの下にリストされている例外を除いて組み合わさります。完全な相互作用については、サンドボックスが権限と権限モードにどのように関連するかおよび隔離が権限モードにどのように関連するかを参照してください。

セッションが開始するモード

ターミナルで新しいセッションを開始すると、Claude Code は最初に適用されるものから権限モードを取得します。

  1. --permission-mode フラグ、または --dangerously-skip-permissions

  2. 設定ファイルの permissions.defaultMode

    .claude/settings.json または .claude/settings.local.json で "auto" を設定した場合、値は有効にならず、Claude Code は ~/.claude/settings.json からの defaultMode ではなく組み込みデフォルトを使用します。これらの 2 つのファイルで "bypassPermissions" を設定した場合、それも有効にならず、セッションは Manual モードで開始します。他の値はすべての設定ファイルから適用されます。

  3. 組み込みデフォルト

VS Code 拡張機能が開始する会話は、権限モードを切り替えるの拡張機能独自のリストに従います。Claude Code が再開されたセッションを開始する権限モードについては、再開時の権限モードを参照してください。

組み込み auto デフォルトには、macOS、Linux、WSL では Claude Code v2.1.228 以降が必要で、ネイティブ Windows では v2.1.233 以降が必要です。以前のバージョンでは、組み込みデフォルトは Manual です。

組み込みデフォルトは、Claude Code の実行方法によって異なります。セッションに一致する最初の行が適用されます。表は、ターミナルまたは VS Code 拡張機能を通じて開始するセッションをカバーしています。デスクトップアプリと claude.ai については、権限モードを切り替えるの Desktop と Web タブを参照してください。

Claude Code の実行方法 組み込み開始権限モード
設定ファイルが disableAutoMode を "disable" に設定 default
claude -p または Agent SDK default
ターミナルまたは VS Code 拡張機能を通じて auto(Claude Code v2.1.283 以降)。以前のバージョンでは、Pro、Max、または Team プランで フィーチャーフラグを取得するセッションでは auto、それ以外は default

インストールまたはアップグレード後の最初のセッションでは、Claude Code はフィーチャーフラグが到達する前に開始権限モードを選択できます。そのセッションは表が示すものとは異なる権限モードで開始する可能性があり、次のセッションは表に一致します。

フラグ、設定ファイル、または組み込みデフォルトが auto を選択しても、auto モードがセッションで利用できない場合、Claude Code はセッションを Manual で開始します。Auto モードは、セッションが 利用可能性要件を満たさない場合(設定ファイルがそれをオフにするか、サポートしていないモデルなど)、または Anthropic がサーバー側で一時的にそれをオフにした場合に利用できません。

組み込みデフォルトが初めてセッションを auto モードで開始するとき、Claude Code はこのページにリンクする通知を表示します。

  • ターミナルでは、セッションの上部に 1 回
  • VS Code 拡張機能では、新しい会話画面のカードとして、却下するまで表示されます

Pro、Max、Team プランでは、~/.claude/settings.json が auto 以外の defaultMode を設定し、他の設定ファイルが設定しない場合、セッションはそのモードで開始し続けます。Claude Code はターミナルまたは VS Code 拡張機能で 1 回、設定を auto モードに変更するかどうかを尋ねます。却下した場合、設定はそのままです。

異なる権限モードで開始する

1 つのセッション、マシン上のすべてのセッション、プロジェクト内、または組織内のすべてのセッションの開始権限モードを設定できます。複数の設定ファイルが permissions.defaultMode を設定する場合、設定の優先順位が決定するため、プロジェクトまたは管理値は ~/.claude/settings.json より優先されます。実行中のセッションの権限モードを変更するには、権限モードを切り替えるを参照してください。

開始権限モードを設定する対象 これを実行
開始しようとしている 1 つのセッション 権限モードをフラグとして渡します。例えば claude --permission-mode default
このマシンで開始するすべてのターミナルセッション ~/.claude/settings.json で permissions.defaultMode を設定します。VS Code 拡張機能が読み取る内容については、権限モードを切り替えるを参照してください
1 つのプロジェクトで開始するすべてのターミナルセッション プロジェクトの .claude/settings.json で permissions.defaultMode を設定します。ターミナルで開始するセッションは auto と bypassPermissions を除くすべての値を尊重します。VS Code 拡張機能が開始するセッションはプロジェクト設定を開始権限モードに読み込みません
組織内のすべてのターミナルセッション 管理設定で permissions.defaultMode を設定します。ターミナルセッションはそのモードで開始し、ユーザーは依然として auto モードに切り替えることができます。VS Code 拡張機能が読み取る内容については、権限モードを切り替えるを参照してください。auto モードを削除してユーザーが選択できないようにするには、代わりに permissions.disableAutoMode を "disable" に設定します

この例は、マシン上のすべてのターミナルセッションを Manual モード(その設定値は default)で開始するようにします。~/.claude/settings.json に保存します。

{
  "permissions": {
    "defaultMode": "default"
  }
}

次に開始するセッションは、ステータスバーに ⏸ manual mode on を表示します。

権限モードを切り替える

各インターフェースには、セッション中に権限モードを切り替えるための独自のコントロールと、新しいセッションが開始する権限モードを選択するための独自の方法があります。インターフェースを選択して、そのコントロールを確認してください。

セッション中:Shift+Tab を押して権限モードをサイクルします。auto から、最初のプレスは default に切り替わり、サイクルは default → acceptEdits → plan → default に戻ります。以下で説明されるオプションモードは plan の後にスロットインします。ステータスバーはアクティブなモードを、default の場合はグレーの ⏸ manual mode on、または ⏵⏵ accept edits on、⏸ plan mode on、⏵⏵ auto mode on、⏵⏵ don't ask on、または ⏵⏵ bypass permissions on として表示します。

すべてのモードがデフォルトサイクルに含まれるわけではありません。

  • auto:auto モードが利用可能な場合に表示されます。auto へのサイクルは確認プロンプトなしで権限モードを切り替えます
  • bypassPermissions:--permission-mode bypassPermissions、--dangerously-skip-permissions、--allow-dangerously-skip-permissions、または ユーザー、--settings、または管理設定の permissions.defaultMode: "bypassPermissions" で開始した後に表示されます。--allow- バリアントはモードをサイクルに追加しますが、アクティブ化しません
  • dontAsk:サイクルに表示されることはありません。--permission-mode dontAsk で設定します

有効なオプションモードは plan の後にスロットインし、bypassPermissions が最初で auto が最後です。両方が有効な場合、bypassPermissions から auto へのサイクルを通過します。

Bash 権限プロンプトから:Manual と acceptEdits 権限モードで、auto モードが利用可能な場合、Claude Code は Bash コマンドの権限プロンプトに Yes, and switch to auto mode を追加します。それを選択してコマンドを承認し、セッションを auto モードに切り替えます。PowerShell ツールプロンプトはオプションを提供しません。Claude Code v2.1.247 以降が必要です。

Claude Code は、ask ルールの 1 つによって強制されたプロンプト、または フックによるプロンプトにはオプションを追加しません。auto モードは依然としてそれらのプロンプトを表示するため、切り替えてもそれらは削除されません。

起動時:権限モードをフラグとして渡します。

claude --permission-mode plan

デフォルトとして:異なる権限モードで開始するで説明されているように、必要なスコープで permissions.defaultMode を設定します。

同じ --permission-mode フラグは 非対話的実行用に -p で機能します。

acceptEdits モードでファイル編集を自動承認する

acceptEdits モードでは Claude はプロンプトなしに作業ディレクトリ内のファイルを作成および編集できます。このモードがアクティブな間、ステータスバーは ⏵⏵ accept edits on を表示します。

ファイル編集に加えて、acceptEdits モードは一般的なファイルシステム Bash コマンドを自動承認します。mkdir、touch、rm、rmdir、mv、cp、sed。これらのコマンドは LANG=C または NO_COLOR=1 のような安全な環境変数、または timeout、nice、nohup のようなプロセスラッパーでプレフィックスされた場合にも自動承認されます。ファイル編集と同様に、自動承認は作業ディレクトリまたは additionalDirectories 内のパスにのみ適用されます。

各パスは シンボリックリンクチェック を通過するため、そのスコープ外に解決される書き込みは自動承認されません。そのスコープ外のパス、保護されたパス への書き込み、rm と rmdir の削除が 重要なパス をターゲットにしている場合、および 読み取り専用コマンドセット を除くその他すべての Bash コマンドはまだプロンプトが表示されます。

PowerShell ツール が有効な場合、acceptEdits モードはスコープ内のパスに対して Set-Content、Add-Content、Clear-Content、Remove-Item も自動承認し、それらの一般的なエイリアスも承認します。同じスコープと保護されたパスのルールが適用され、Remove-Item は 独自のチェック を取得します。Set-Content .\notes.txt "It's done" のようなアポストロフィを含む引用符を含む位置引数は、Claude Code が引用符付きと引用符なしの読み取りが異なるため、スコープ内のパスでもプロンプトが表示されます。-Value のような名前付きパラメーターを通じてコンテンツを渡してプロンプトを回避します。

事実後にエディターまたは git diff 経由で変更をレビューしたい場合、各編集をインラインで承認するのではなく acceptEdits を使用します。

Manual モードから Shift+Tab を 1 回押して入るか、直接開始します。

claude --permission-mode acceptEdits

プランモードで編集前に分析する

プランモードは Claude に変更を研究して提案するよう指示しますが、実際には変更を加えません。Claude はファイルを読み込み、シェルコマンドを実行して探索し、プランを作成しますが、ソースを編集しません。bypass 権限が利用可能なインタラクティブターミナルセッションを除き、編集はプランを承認するまでブロックされたままです。

プランニング中のシェルコマンドの動作はセッションによって異なり、以下のケースのうち最初に該当するものが適用されます。

  • bypass 権限が利用可能なインタラクティブターミナルセッション: 分類器もプロンプトもプランニングコマンドには適用されません。bypassPermissions モードですべてのチェックをスキップは、そこでもまだプロンプトが表示される少数のものをカバーしています。
  • オートモードが利用可能で、useAutoModeDuringPlan 設定がオン(デフォルトではオンです): 分類器は重要パス削除以外のシェルコマンドをプロンプトを表示する代わりにレビューします。承認されたコマンドは実行され、拒否されたコマンドはブロックされます。
  • オートモードが利用不可、または useAutoModeDuringPlan がオフ: 組み込みの読み取り専用セット外のコマンドはサンドボックスのオートアロウモードが有効な場合を含めて承認を求めるプロンプトが表示されます。

プランモードに入るには、Shift+Tab を押すか、単一のプロンプトに /plan を付けます。CLI からプランモードで開始することもできます。

claude --permission-mode plan

Shift+Tab をもう一度押してプランを承認せずにプランモードを終了します。

プランをレビューして承認する

プランの準備ができたら、Claude はそれを提示し、どのように進めるかを尋ねます。そのプロンプトから以下を選択できます。

  • はい、オートモードを使用する: 承認してオートモードで開始します。オートモードがセッションで利用可能でない場合(例えば、組織がそれをオフにした場合)、このオプションははい、編集を自動受け入れと表示されます。bypass 権限を有効にしてセッションを開始した場合、オプションは代わりにはい、このセッションで BYPASS PERMISSIONS(以降プロンプトなし)に切り替えると表示されます。
  • はい、編集を手動で承認する: 承認して各編集を個別にレビューします。
  • いいえ、プランニングを続ける: プランモードにとどまり、Claude に何を変更するかを伝えます。

プランを承認するとプランモードを終了し、セッションを各承認オプションが説明する権限モードに切り替えるため、Claude は編集を開始します。再度プランを立てるには、Shift+Tab でプランモードに戻すか、次のプロンプトに /plan を付けます。

Ctrl+G を押して、提案されたプランをデフォルトのテキストエディタで開き、Claude が進める前に直接編集します。showClearContextOnPlanAcceptが有効な場合、リストはプランを承認してプランニングコンテキストをクリアする最初のオプションを取得します。

プランを受け入れると、セッションはプランに基づいて生成されたタイトルも取得します。ただし、セッションに既に名前を付けている場合を除きます。

プランモードをデフォルトとして設定する

プロジェクトのターミナルセッションのデフォルトをプランモードにするには、.claude/settings.json で defaultMode を plan に設定します。これは別の権限モードで開始の下の例として配置されます。VS Code 拡張機能が開始する会話は、開始権限モードのプロジェクト設定を読み込みません。そこで、VS Code ユーザー設定で claudeCode.initialPermissionMode を plan に設定してください。

auto モードで権限プロンプトを排除する

auto モードを使用すると、Claude は日常的な権限プロンプトなしで実行できます。別のクラシファイアモデルが実行前にアクションをレビューし、リクエストを超えるもの、認識されていないインフラストラクチャをターゲットにするもの、または Claude が読んだ悪意のあるコンテンツによって駆動されているように見えるものをブロックします。明示的なask ルールは引き続きプロンプトを強制します。

Claude Code v2.1.283 以降では、auto モードはすべてのプランとプロバイダーのインタラクティブターミナルと VS Code セッションの組み込みの開始権限モードです。以前のバージョンでは、Pro、Max、Team プランでのみ組み込みの開始権限モードです。

クラシファイアは、auto モードとplan モードでクラシファイアがコマンドをレビューしている間の両方で、Claude Code がそれを配信する前に、SendMessageを使用して別のエージェントに送信する各メッセージ(プレーンテキストまたは構造化されたエージェントチームメッセージ)もレビューします。送信レビューには Claude Code v2.1.222 以降が必要です。

デフォルトでは、クラシファイアは rm -rf / や rm -rf ~ などの重要なパスをターゲットにする rm と rmdir の削除をレビューしません。重要なパスは、各権限モードでそれらに何が起こるかをカバーしています。

auto モードはまた、Claude が明確な質問のために停止しないように促しますが、Claude はプロンプトまたはスキルが明示的にそれに依存している場合でも質問します。より強力な自律的な動作をモードで実現するには、代わりにプロアクティブ出力スタイルを設定してください。

auto モードは、アカウントがこれらすべての要件を満たす場合にのみ利用可能です。

  • プラン: すべてのプラン。
  • 組織: Team と Enterprise では、auto モードはデフォルトで利用可能です。管理者はマネージド設定で permissions.disableAutoMode を "disable" に設定することで、組織の auto モードをオフにできます。
  • モデル: Anthropic API とAWS 上の Claude Platformでは、Claude Opus 4.6 以降、Sonnet 4.6 以降、またはFable モデル。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、およびサインイン済みのClaude apps gatewayセッションでは、Claude Sonnet 5 以降、Opus 4.7 以降、および Fable モデルのみです。Sonnet 4.5、Opus 4.5、Haiku、claude-3 モデルを含む古いモデルは、どのプロバイダーでもサポートされていません。
  • プロバイダー: Anthropic API、AWS 上の Claude Platform、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、およびサインイン済みの Claude apps gateway セッションでデフォルトで利用可能です。

Claude Code が auto モードを利用不可と報告する場合は、まずこれらの要件と、設定ファイルがdisableAutoModeを設定しているかどうかを確認してください。Anthropic がサーバー側で auto モードをオフにしたか、サーバーがアカウントの auto モードを拒否した可能性があります。どちらかの回答を受け取ったセッションは、セッションが終了するまで auto モードをオフのままにするため、後で新しいセッションを開始してください。

モデルに名前を付けて、auto モードが「アクションの安全性を判断できない」と言う別のメッセージは、クラシファイアリクエストが失敗したことを意味します。その失敗は通常は一時的ですが、Amazon Bedrock では、アカウントが指定されたモデルを呼び出すことができるようになるまで繰り返される可能性があります。原因と対処方法については、エラーリファレンスを参照してください。

設定で defaultMode: "auto" を設定し、ターミナルセッションがエラーなしで Manual モードで開始する場合、設定は .claude/settings.json または .claude/settings.local.json にある可能性があります。auto はこれらのファイルから有効になりません。~/.claude/settings.json に移動してください。VS Code 拡張機能が開始した会話の場合は、代わりに権限モードの切り替えの拡張機能独自のリストを確認してください。

Bedrock、Agent Platform、または Foundry での auto モード

Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、およびサインイン済みのClaude apps gatewayセッションでは、auto モードはデフォルトで利用可能です。Claude Code v2.1.283 以降では、インタラクティブターミナルとVS Codeセッションの組み込みの開始権限モードでもあります。開始権限モードを自分で選択するには、別の権限モードで開始で説明されているように permissions.defaultMode を設定するか、VS Code 拡張機能のモード指示器から権限モードを選択します。

これらのプロバイダーでは、Claude Sonnet 5 以降、Opus 4.7 以降、および Fable モデルのみがサポートされています。他のモデルでは、セッションは代わりに Manual で開始します。

開発者が auto モードを使用するのを防ぐには、マネージド設定で disableAutoMode を "disable" に設定します。これにより auto が Shift+Tab サイクルから削除され、--permission-mode auto で開始されたセッションは代わりに Manual で開始します。既に auto モードで実行されているセッションは、設定が管理者がデプロイしたソースからそのセッションに到達すると、それを離れ、auto mode disabled by settings を表示します。v2.1.251 より前では、実行中のセッションは終了するまで auto モードを保持していました。

v2.1.158 から v2.1.206 では、auto モードはこれらのプロバイダーでオフでしたが、CLAUDE_CODE_ENABLE_AUTO_MODE=1 を設定するまでオフでした。また、Claude Code は変数も設定されていない限り、これらのプロバイダーで defaultMode: "auto" を無視していました。変数は互換性のために引き続き受け入れられ、v2.1.207 以降は効果がありません。

サーバー側クラシファイアレビュー

auto モードでは、Claude Code はサーバーに、セッションのモデルリクエストの一部として、独自のクラシファイアリクエストを送信する代わりに、決定順序が送信するアクションをチェックするよう要求できます。これらのセッションは以下を要求します。

  • Anthropic API への直接接続: インタラクティブターミナルセッションで、すべての claude.ai プランおよび Claude API を使用するアカウントで、Anthropic がロールアウトするにつれて。Pro、Max、Team プランでは Claude Code v2.1.271 以降が必要で、Enterprise プランおよび Claude API アカウントでは v2.1.278 以降が必要です。v2.1.282 から、機能フラグをフェッチしないセッション(例えば、テレメトリをオフにしたため)は、デフォルトではあらゆる種類のセッションでサーバーに要求します。
  • クラウドプロバイダー、LLM ゲートウェイ、またはプロキシ: AWS 上の Claude Platform、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および ANTHROPIC_BASE_URL をLLM ゲートウェイまたはプロキシに指す場合、プランに関係なく。デフォルトで要求するには Claude Code v2.1.278 以降が必要です。
  • サインイン済みのClaude apps gatewayセッション: Claude Code v2.1.280 以降が必要です

サーバーがアクションをレビューする場合、その判定がそれらを決定します。他に 2 つの結果が考えられます。

  • サーバーがセッションをレビューしない: レスポンスがレビュー結果なしで完了するか、サーバーがこのセッションをレビューしないと答えます。最も一般的な原因は、レビューまたは結果のリクエストをドロップする LLM ゲートウェイまたはプロキシ、およびサーバー側チェックをまだ持たないプラットフォーム、リージョン、または認証情報です。Claude Code は独自のクラシファイアリクエストにフォールバックします。そのフォールバックがセッションの残りの間保持されると、クラシファイアリクエスト料金に関する通知が、これらのリクエストが請求されるアカウントに表示されます。
  • サーバーがアクションの判定を与えない: Claude Code はアクションを未レビューで実行するのではなく、拒否します。どの接続でも、これはレスポンスがレビュー結果の到着前に終了するか、結果が Claude Code が読めない形式で到着する場合に発生します。レスポンスを短縮したり結果を書き直したりする LLM ゲートウェイまたはプロキシが、どちらかを引き起こす可能性があります。Anthropic API への直接接続では、サーバーのチェックがアクション(例えば、タイムアウト)に失敗した場合にも発生します。サーバーが安全性判定を返さなかったは、拒否メッセージ、拒否が繰り返される場合に何が起こるか、および対処方法をカバーしています。

サーバーへの問い合わせをスキップして常に Claude Code 独自のクラシファイアリクエストを使用するには、CLAUDE_CODE_AUTO_MODE_SERVER=0を設定します。Anthropic API への直接接続では、変数には Claude Code v2.1.281 以降が必要です。1 に設定すると、CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 も設定していない限り、-p または Agent SDK セッションなど、まだサーバーレビューを持たないセッションでサーバーレビューをオンにします。CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定して CLAUDE_CODE_AUTO_MODE_SERVER を設定しないままにすると、Claude Code はプリリリース機能を無効にするで説明されている場合を除き、サーバーへの問い合わせも停止します。

クラシファイアがデフォルトでブロックするもの

クラシファイアはワーキングディレクトリとセッション開始時にそれに対して設定されたリモートを信頼します。セッション中に git remote add または git remote set-url で追加またはリポイントされたリモートは信頼されず、信頼できるインフラストラクチャを設定するまで、他のすべてが外部として扱われます。v2.1.200 より前では、セッション中に追加されたリモートも信頼されていました。

デフォルトでブロック:

  • curl | bash のようなコードのダウンロードと実行
  • 外部エンドポイントへの機密データの送信
  • 本番環境へのデプロイとマイグレーション
  • クラウドストレージでの大量削除
  • IAM またはリポジトリ権限の付与
  • 共有インフラストラクチャの変更
  • セッション前に存在していたファイルの不可逆的な破壊
  • Force push
  • 実行時にシークレットまたは機密データをリポジトリの外に送信するか、デプロイが公開するものを拡大する変更のコミットまたはプッシュ。これは、シークレットをまだ受け取らない宛先にシークレットを渡す CI ワークフローまたはデプロイ設定、シークレットストアを読み取ってデータを送信するスクリプトまたはセットアップステップ、およびデプロイが公開するものを拡大する設定変更(レジストリ、可視性、アーティファクト、またはソースマップ設定など)をカバーします。チェックはどのブランチにも適用され、リポジトリが公開されている場合でも適用され、パイプラインをトリガーするかどうかに関係なく、コミットまたはプッシュがトリガーされるときに発火します。クリアするには、コミットまたはプッシュだけでなく、実行効果に名前を付ける必要があります。v2.1.211 より前では、このチェックはデフォルトブランチにスコープされていました。そこへのプッシュは、機密コンテンツ、要求したものに対して隠蔽または誤表示されたコンテンツ、リポジトリの外からポートされたコンテンツ、またはリクエストしたレビューの周りをルーティングされたコンテンツを運ぶときにブロックされました
  • git reset --hard、git checkout -- .、git restore .、git clean -fd、git stash drop、または git stash clear。クラシファイアはコミットされていない変更を破棄すると推定します
  • git commit --amend。HEAD のコミットがこのセッションで作成されていない場合
  • v2.1.198 から、HEAD のコミットが既にプッシュされている場合の git commit --amend。メッセージのみの言い換えはブロックされません。--amend -m。新しくステージされたものはなく、Claude がこのセッション中に作成したコミット上
  • terraform destroy、pulumi destroy、cdk destroy、または terragrunt destroy。リソースを破壊するプランの適用
  • シークレットマネージャーへの書き込み、または DNS レコードまたは TLS 証明書の変更
  • 人間が承認していないプルリクエストのマージ、Claude 独自のプルリクエストの承認、または CI チェックの無効化
  • atlantis apply またはボットの /deploy や /merge などのオートメーションへのコマンドそのものであるコメントの投稿
  • 本番環境機能フラグのトグル、ランプ、または削除
  • 保護された IaC スコープへのインフラストラクチャ変更の適用、またはクラスターノードのドレインと削除
  • ラベルセレクターや --all など、他のユーザーのジョブをキャッチする共有コンピュートクラスターへの書き込み
  • DaemonSets や admission webhooks など、すべてのノードで実行されるか、クラスタートラフィックをインターセプトする Kubernetes リソースの作成
  • 機密リモートターゲットへのインタラクティブシェルまたはポートフォワード
  • ローカルサービスをパブリックインターネットから到達可能にするトンネルまたはリバースシェルの開く
  • ライブ認証情報またはトークンをトランスクリプトまたはファイルに出力
  • 環境で機密データロケーションとしてリストされている場所へのアクセス、またはそこからのデータのコピー。v2.1.198 以降、これはエントリが除外する対象者にデータを送信することもブロックします
  • 内部パッケージレジストリをパブリックレジストリにバイパスするパッケージインストール。v2.1.198 以降、これは会話で Claude に内部レジストリまたはミラーが存在することを伝えた場合にも適用されます。環境にリストされている場合だけではなく
  • --insecure のような安全ガードを解除するフラグを使用してコマンドを実行
  • --dangerously-skip-permissions または --no-sandbox で開始されたものなど、人間の承認またはサンドボックスなしで実行される自律エージェントループの起動。v2.1.198 以降、これは --yes-always で開始されたランナーなど、分離とアクション単位の承認を無効にして、サードパーティエージェントまたは eval ハーネスを実行することもカバーします
  • Chrome の Claudeページコンテンツ、クッキー、または認証情報をオリジン外に送信する可能性のあるブラウザアクション

これらのカテゴリの多くは、機密リモートターゲットや保護された IaC スコープなど、具体的な名前に絞り込むことができる環境エントリに依存しています。

Claude Code v2.1.198 以降もこれらをデフォルトでブロックします。

  • ワイルドカード、glob、または年齢フィルターではなく、特定の名前付きパスによって /tmp、$TMPDIR、または別の共有スクラッチまたはキャッシュディレクトリ内のファイルを削除
  • 独自のメッセージがそれらの詳細をその受信者に対して認可しなかった場合、他の人または共有システムに送信、アップロード、公開、または書き込みされるコンテンツに機密詳細を含める。PR およびイシュー本文、コミットメッセージ、およびコメントは、リポジトリが信頼境界の外にあるか公開されている場合、組織独自の公開リポジトリを含めて、この種のアウトバウンドコンテンツとしてカウントされます。内部ファイルパス、コード名、ライブ API レスポンスデータ(メールアドレスやアカウント識別子など)、およびインフラストラクチャ識別子は機密詳細としてカウントされます。PR、イシュー、およびコミットメッセージスコープには Claude Code v2.1.200 以降が必要です。PR またはイシュー本文の API レスポンスからのライブ個人データ(メールアドレス、アカウントまたは組織識別子、または使用メトリックなど)には、リポジトリの可視性または信頼境界に関係なく、それらの詳細と受信者に名前を付ける必要があります。そのチェックには Claude Code v2.1.203 以降が必要です
  • Claude Code 独自の tmux ペインにキーストロークを送信して独自のインターフェースを駆動。クラシファイアは Claude が独自の権限または監視を変更していると扱います

Claude Code v2.1.200 以降もこれらをデフォルトでブロックします。

  • 認証、アクセス制御、入力検証、またはサンドボックスなどのセキュリティ動作を保護するテストまたはアサーションのコメント化、削除、または強制パス
  • セッションで Claude が作成しなかった状態リソースの削除またはティアダウン。より具体的な削除ルールが適用されず、リソースに名前を付けなかった場合
  • API ベース URL、プロキシエンドポイント、webhook レシーバー、またはレジストリミラーを、.env.example のような例ファイルを含め、タスクに適さないサードパーティホストに再ポイント
  • git remote set-url または git remote add でプッシュの行き先を変更。新しいリモートに名前を付けない限り
  • 公開されていることが知られているリポジトリにシークレットまたは個人または信頼されたデータをプッシュ、またはそのリポジトリ独自の作業の一部ではない機密資料をそこにプッシュ。dotfiles リポジトリ独自の主題は個人または信頼されたデータの唯一の例外であり、プライベートリポジトリから任意のパブリックサーフェスに到達するコンテンツは同じ方法でブロックされます。両方の改善には Claude Code v2.1.203 以降が必要です。v2.1.203 より前では、個人データは機密資料とグループ化され、そのリポジトリ独自の作業の一部ではない場合にのみブロックされました。リポジトリの可視性が確立されていない場合、クラシファイアはそれだけではブロックしません。代わりに他のルールに対してコンテンツを判定します
  • 別のリポジトリまたは組織に対するプルリクエストの開く、gh repo fork でのフォーク、またはサードパーティリポジトリへのプッシュ。外部ターゲットに名前を付けない限り

Claude Code v2.1.203 以降もこれらをデフォルトでブロックします。

  • 機密ローカルストア、または名前、パス、または種類が機密としてマークするファイルからのコンテンツが、コミット、プッシュ、PR またはイシューテキスト、gist またはペースト、またはパッケージ公開に入る。ソースと宛先の両方に名前を付けない限り。セッショントランスクリプトと会話ログ、SSH キー、クラウド認証情報、ブラウザプロファイル、シェル履歴などの認証情報と設定ドットフォルダ、およびユーザーデータエクスポートはすべてカウントされ、リポジトリがプライベートであってもクリアされません

Claude Code v2.1.205 以降もこれらをデフォルトでブロックします。

  • Claude Code セッショントランスクリプト、~/.claude/projects/ または設定ディレクトリの .jsonl 履歴ファイルへの書き込み。シェルコマンドを通じて直接または間接的に。ルールはまた、各トランスクリプトエントリに Claude Code が独自のチェック用に追加するメタデータ行もカバーします。トランスクリプトの読み取りはブロックされません

  • ターゲットがシェル変数である再帰的な強制削除(rm -rf "$VAR" または Remove-Item -Recurse -Force $dir)。変数は会話のどこにも割り当てられていません。クラシファイアが見る値は以前のコマンド出力からのみ来ており、クラシファイアはそれを受け取らないため、クラシファイアは削除ターゲットを他の削除ルールに対して検証できません。ブロックは、削除されている正確なパスに名前を付けるか、Claude が解決されたリテラルパスが書き込まれたコマンドで削除を再実行するときにクリアされます。クラシファイアが解決できるターゲットを持つ削除は影響を受けません。

    rm -rf "$VAR"/* のように変数の直下にあるグロブは、代わりに重要なパスです。Remove-Item ターゲットが裸の * または /* または \* で終わる場合は、クラシファイアに到達しません。Claude Code はそれらを直接拒否します。

Claude Code v2.1.257 以降もこれらをデフォルトでブロックします。

  • 169.254.169.254 などのクラウドインスタンスメタデータエンドポイントから認証情報をリクエスト、またはマシン独自のサービスアカウントまたはノード ID でクラウド、クラスター、またはレジストリコールを明示的に認証
  • トンネル、リバースシェル、またはパブリックインターネットの外を指すように書き直されたリゾルバーまたはプロキシ設定など、直接リクエスト以外のルートでパブリックホストに到達
  • ノード証明書やノードのコンテナレジストリ認証など、タスクではなくホストに属する認証情報を読み取る
  • Claude が開始しなかったシブリングコンテナ、ポッド、または VM、またはその下のノードに接続またはスキャン

Claude Code がこれらの 1 つを許可することを意図した場所で実行される場合、autoMode.environment のホストコンテインメントエントリでそのセットアップを説明してください。

Claude Code v2.1.261 以降もこれらをデフォルトでブロックします。

  • メッセージ、PR またはイシューテキスト、ドキュメント、またはリンクが開かれたり取得されたりする他の場所でパブリックペースト、ダイアグラム、またはデータ共有サービスへのリンクを投稿または書き込み。URL 自体が共有されるコンテンツを運ぶ場合。そのサービスに名前を付けない限り

デフォルトで許可:

  • ワーキングディレクトリ内のローカルファイル操作
  • ロックファイルまたはマニフェストで宣言された依存関係のインストール
  • .env の読み取りと一致する API への認証情報の送信
  • 読み取り専用 HTTP リクエスト
  • デフォルトブランチを含む、作業中のリポジトリのどのブランチへのプッシュ。デプロイまたは公開ターゲットとしてマークする名前を持つ非デフォルトブランチ(production や gh-pages など)はカバーされません。クラシファイアはそこへのプッシュを独自の条件で判定します。プッシュのコンテンツは引き続き他のルールに対してチェックされ、permissions.deny ルールは引き続き書かれたとおりすべてのモードでプッシュコマンドをブロックでき、リモート独自のブランチ保護は引き続き適用されます。v2.1.211 より前では、開始したブランチ、Claude が作成したブランチ、およびデフォルトブランチへのルーチンプッシュのみがデフォルトで許可されていました。v2.1.203 より前では、デフォルトブランチへの直接プッシュはブロックされていました
  • 同じセッションで Claude が以前に作成した正確なジョブの削除
  • セキュリティ関連のコード、設定、脅威モデルの読み取り、レビュー、または書き込み。タスクの一部として
  • 同じマルチエージェントセッションで一緒に作業しているエージェント間のメッセージ
  • environmentにリストする信頼できるドメイン、バケット、サービスへのデータ送信。これはデータフローのみをカバーし、同じインフラストラクチャ上の破壊的または認証情報操作ではありません
  • Chrome の Claude。信頼できる内部ドメイン、localhost、または名前を付けた URL へのナビゲーション

サンドボックス化されたコマンドはデフォルトではネットワークアクセスを取得しません。Claude はコマンドが必要とするホストをコマンド自体に名前を付け、クラシファイアはそれらをコマンドでレビューし、承認されたリストはそのコマンドのみのためにそれらのホストを開きます。コマンドごとの許可ドメインは、リストが何を開くことができるか、できないか、およびコマンドがリストされていないホストに到達するときに何が起こるかをカバーしています。

claude auto-mode defaults を実行して、完全なルールリストを JSON として出力します。ルーチンアクションがブロックされる場合、管理者は autoMode.environment 設定を通じて信頼できるリポジトリ、バケット、サービスを追加できます。auto モードの設定を参照してください。

作業中のリポジトリのどのブランチへのプッシュとリクエストに一致するプルリクエストの作成は、プッシュまたはプルリクエストがブロックリスト(リポジトリを離れるシークレットまたは機密データ、または別のリポジトリまたは組織をターゲットにするプルリクエストなど)に該当しない限り、プロンプトなしで実行されます。auto モードにとどまりながらこれらのコマンドの前に人間のチェックポイントを要求するには、permissions.ask ルールを追加します。これはコマンド書かれたとおりに一致します。一般的な境界を参照してください。

ワーキングディレクトリ外の最初の読み取り

permissions.blockReadsOutsideWorkingDirectoriesがオフの間、ファイル読み取りは auto モードでプロンプトなしで実行されます。ワーキングディレクトリ外のパスを含みます。Claude が Read、Grep、または Glob ツールを初めて使用するとき、それらの外のパスで、Claude Code はその読み取りを許可するかどうかを尋ねます。

プロンプトは非インタラクティブな -p 実行またはバックグラウンドセッションには表示されません。読み取りはそこで以前のように実行されます。

答えに関係なく、Claude は作業を続けます。

  • はい、ワーキングディレクトリ外の読み取りを許可し続ける: 読み取りが実行され、後の読み取りはワーキングディレクトリ外で以前のように実行され、Claude Code は答えを記録するため、プロンプトは再度表示されません
  • いいえ、ワーキングディレクトリ外の読み取りをブロック: 読み取りが拒否され、Claude Code はpermissions.blockReadsOutsideWorkingDirectoriesをユーザー設定で true に設定します。これにより、ファイルツールはすべての後のセッションとすべての権限モードでそのような読み取りを拒否します。後で Claude がそのようなパスを読み取ることを許可するには、/add-dir でディレクトリを追加するか、設定を削除します。
  • いいえ、次回また尋ねてください: 読み取りが拒否され、ワーキングディレクトリ外の次の読み取りが再度プロンプトします
  • はい、ただし次回また尋ねてください: 読み取りが実行され、何も保存されず、ワーキングディレクトリ外の次の読み取りが再度プロンプトします

会話で述べた境界

クラシファイアは会話で述べた境界をブロック信号として扱います。「プッシュしないで」または「デプロイする前にレビューを待つ」と Claude に伝えた場合、クラシファイアはデフォルトルールが許可する場合でも一致するアクションをブロックします。境界は後のメッセージでそれを解除するまで有効です。Claude 独自の判定は条件が満たされたことを解除しません。

境界はルールとして保存されません。クラシファイアはチェックのたびにトランスクリプトから再度読み取るため、コンテキストコンパクションがそれを述べたメッセージを削除する場合、境界は失われる可能性があります。ハード保証の場合は、代わりにdeny ルールを追加してください。

会話で述べた承認

Claude に対してブロックされたアクションが許可されていると伝えた場合、クラシファイアはそれをあなたの承認として読み取り、ブロックをクリアできます。それをどのように表現したかが、アクションが実行されるかどうか、および承認がどこまで到達するかを決定します。

  • アクションとその詳細に名前を付ける: メッセージはアクションと、force push のブランチなど、それを危険にする特定のものに名前を付ける必要があります。動詞だけに名前を付けるとクリアされません。「force-push できます」はブロックを有効なままにします。
  • 1 つのアクションをカバーすることを期待: 承認は名前を付けた破壊的アクションをカバーするため、後のアクションは再度ブロックされます。ルーチンパターンを 1 つずつ承認するのを停止するには、autoMode.allowに追加してください。
  • いくつかのブロックは有効なままです: クラシファイアの優先順位順序は、承認が到達できるブロックを設定します。それが到達しないステップを実行するには、auto モードを離れ、権限プロンプトに答えてください。

auto モードがフォールバックするとき

auto モードがセッションのアクションを承認できない場合、何が起こるかはケースによって異なります。

  • ブロックされたアクション: Claude Code は通知を表示し、/permissions の下の最近拒否タブにアクションをリストします。そこで r を押して、手動承認でそれを再試行できます。
  • 繰り返されるブロック: クラシファイアが 3 回連続でアクションをブロックするか、合計 20 回ブロックする場合、auto モードは一時停止し、Claude Code はプロンプトを再開します。プロンプトされたアクションを承認すると、auto モードが再開されます。繰り返されるブロック閾値を参照して、ブロックがどのようにカウントされるかを確認してください。
  • クラシファイアからの判定なし: auto モードとは別の安全チェックがクラシファイア独自のリクエストを拒否するか、クラシファイアのレスポンスが解析されない場合、Claude Code は通知または最近拒否エントリなしでアクションを拒否します。auto モードはアクションの安全性を判断できませんを参照して、各ケースが表示するメッセージと対処方法を確認してください。
  • サーバーからの判定なし: サーバー側クラシファイアレビューでは、Claude Code はサーバーが判定を与えないアクションを拒否し、判定なしで 10 回連続のレスポンスの後、ターンを停止します。サーバーが安全性判定を返さなかったを参照してください。
  • チェック中のモード切り替え: クラシファイアチェックが保留中にモードを切り替える場合、Claude Code は新しいモードが要求しなかった判定を破棄します。代わりにプロンプトされるか、dontAsk モードでアクションが自動拒否されます。

繰り返されるブロック閾値

3 回連続のブロックと 20 回の合計ブロックの閾値は設定不可能です。合計カウンターはセッションに対して永続し、独自の制限がフォールバックをトリガーするときのみリセットされます。Claude Code は、auto モードとは別の安全チェックがクラシファイア独自のリクエストを拒否する場合、拒否をどちらの閾値にもカウントしません。

--permission-prompt-toolのない非インタラクティブな -p 実行には、フォールバックするプロンプトがありません。繰り返されるブロックが閾値に到達すると、アクションは実行されず、Claude は作業を続けます。Claude Code は実行を停止しません。

繰り返されるブロックは通常、クラシファイアがインフラストラクチャについてのコンテキストを欠いていることを意味します。/feedback を使用して誤検知を報告するか、管理者に信頼できるインフラストラクチャを設定してもらってください。

auto モードがアクションを評価する方法

以下のセクションは、Claude Code がアクションを評価する順序、クラシファイアがサブエージェント作業をレビューする方法、およびクラシファイアコールがコストとレイテンシーに追加する内容をカバーしています。

各アクションは固定の決定順序を通過します。最初に一致するステップが勝ちます。
1. [allow、ask、または deny ルール](/docs/ja/permissions#manage-permissions)に一致するアクションは、これらの例外を除いて直ちに解決されます。
   * [保護されたパス](#protected-paths)への書き込みは、allow ルールが一致する場合でもクラシファイアにルーティングされます
   * allow ルールは `rm` と `rmdir` の削除を[重要なパス](#critical-paths)をターゲットにして承認しません
   * [`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool)とマークされた MCP ツール、および組織が[`ask`](/docs/ja/mcp#organization-controls-on-connector-tools)に設定したコネクタツールは、allow ルールが一致する場合でも直接プロンプトします。その設定がそのセッションに到達する場合
   * [コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)を運ぶシェルコマンドは、allow ルールがコマンドを承認する場合でもクラシファイアにルーティングされます。ホストではなく
   * `Bash(git push *)` のようなコマンドのコンテンツで一致する ask ルールは、権限プロンプトにフォールバックします
   * [symlink チェック](/docs/ja/permissions#symlinks)が解決するパスが保護されたパスの場合、Claude が要求したパスがそれ自体保護されていない場合、書き込みはプロンプトします
2. 読み取り専用アクションとワーキングディレクトリ内のファイル編集は自動承認されます。[保護されたパス](#protected-paths)と[ワーキングディレクトリ外の最初の読み取り](#first-read-outside-the-working-directories)への書き込みを除き、プロンプトします
   * [サーバー側クラシファイアレビュー](#server-side-classifier-review)を持つセッションでは、読み取り専用および[サンドボックス化](/docs/ja/sandboxing#sandbox-modes)シェルコマンドはそのレビューを待ち、それがそれらにフラグを立てる場合ブロックされます
   * ワーキングディレクトリ内の書き込みで、[symlink チェック](/docs/ja/permissions#symlinks)がそれを外部の場所に解決する場合、プロンプトします
3. 他のすべてはクラシファイアに行きます。[重要なパス削除](#critical-paths)はそれらのデフォルト処理を除きます。ステップ 1 で直接プロンプトするコネクタツールと[`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) MCP ツールはクラシファイアに到達しません。そのため、org が必要とする承認も同意ステップも自動承認されません
4. クラシファイアがブロックする場合、Claude は理由を受け取ります。ほとんどのセッションでは、理由は書かれた説明を与えるのではなく、クラシファイアが一致したルール(`[Data Exfiltration]` など)に名前を付けます。[拒否をレビュー](/docs/ja/auto-mode-config#review-denials)を参照してください

auto モードに入ると、任意のコード実行を許可する広いルールが削除されます。

* ブランケット `Bash(*)` または `PowerShell(*)`
* `Bash(python*)` のようなワイルドカードインタープリター
* パッケージマネージャー実行コマンド
* `Agent` allow ルール
* [`Monitor`](/docs/ja/tools-reference#monitor-tool) allow ルール。Claude Code は Monitor コマンドをシェルを通じて実行するため

`Bash(npm test)` のような狭いルールは有効なままです。Claude Code は auto モードを離れるときに削除されたルールを復元します。v2.1.236 より前では、Claude Code は auto モードで `Monitor` allow ルールを有効なままにしたため、ツール全体に一致するルールは分類器レビューなしで Monitor コマンドを承認しました。

Claude Code はまた、`git reset --hard` や `rm -rf` のようなコミットされていない作業を破棄するコマンドの前に `git status` を実行し、ステージされた、変更された、または追跡されていない作業が存在するかどうかをクラシファイアに表示します。Claude Code はリポジトリの git 設定が `status.showUntrackedFiles=no` を設定する場合でも、そのチェックで追跡されていないファイルを報告します。

Claude Code 自体が送信するクラシファイアリクエストでは、クラシファイアはユーザーメッセージ、ファイル読み取りや検索などの読み取り専用ルックアップ以外のツール呼び出し、および CLAUDE.md コンテンツを見ます。ツール結果はそれらのリクエストから削除されるため、ファイルまたはウェブページの悪意のあるコンテンツはクラシファイアを直接操作できません。

[PostToolUse フック](/docs/ja/hooks#annotate-a-result-for-the-auto-mode-classifier)の `classifierContext` フィールドで呼び出しの結果に注釈を付けることができます。クラシファイアはこれをアプリケーション提供のコンテキストとして読み取ります。フィールドには Claude Code v2.1.236 以降が必要です。

別のサーバー側プローブは受信ツール結果をスキャンし、Claude がそれを読む前に疑わしいコンテンツにフラグを立てます。これらのレイヤーがどのように連携するかについての詳細は、[auto モードアナウンスメント](https://claude.com/blog/auto-mode)と[エンジニアリング深掘り](https://www.anthropic.com/engineering/claude-code-auto-mode)を参照してください。
auto モードがサブエージェントを処理する方法

クラシファイアはサブエージェント作業を 3 つのポイントでチェックします。

  1. サブエージェントが開始する前に、委任されたタスク説明が評価されるため、危険に見えるタスクはスポーン時にブロックされます。
  2. サブエージェントが実行されている間、その各アクションは親セッションと同じ決定順序を通過し、同じブロックおよび allow ルールを使用します。サブエージェントの frontmatter の permissionMode は無視されます。
  3. サブエージェントが完了すると、クラシファイアはその作業と最終レポートをレビューしてから、親がレポートを読みます。クラシファイアがサブエージェントの作業またはレポートにフラグを立てるか、別の API 安全チェックがレビューを拒否する場合、レポートは引き続き配信されます。セキュリティ警告が前に付きます。クラシファイアがレビューに利用できない場合、レポートはサブエージェントの作業を検証してから行動する前に確認するメモと共に到着します。
コストとレイテンシー

クラシファイアはデフォルトでは /model 選択ではなく Claude Sonnet 5 で実行されます。Anthropic がサーバー側で設定するクラシファイアモデルがそのデフォルトより優先されます。セッションのモデルが Claude Sonnet 4.6 の場合、またはavailableModelsが Sonnet 5 を除外する場合、クラシファイアは代わりにセッションのモデルで実行されます。セッションがFable モデルで実行される場合は Opus モデルで実行されます。Anthropic API 以外のプロバイダーでは、その Opus フォールバックはプロバイダーのデフォルト Opus モデルです。

セッションの最初の auto モードリクエストは Sonnet 5 デフォルトを検証します。リクエストが成功する場合、Sonnet 5 はセッションのクラシファイアモデルのままです。モデルが利用できないため失敗する場合、セッションは代わりにフォールバックを使用します。その検証が解決した後、クラシファイアのモデルはセッションに対して変わりません。

Enterprise プランおよび Claude API を使用するアカウント、AWS 上の Claude Platform、Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では、クラシファイアコールはトークン使用量にカウントされます。各チェックはトランスクリプトの一部と保留中のアクションを送信し、実行前にラウンドトリップを追加します。読み取りと保護されたパス外のワーキングディレクトリ編集はクラシファイアをスキップするため、オーバーヘッドは主にシェルコマンドとネットワーク操作から来ます。サーバーがセッションのモデルリクエストの一部としてアクションをレビューする場合、カウントする別のクラシファイアコールはありません。サーバー側クラシファイアレビューを参照してください。

サンドボックス化されたネットワークアクセスは、コマンドごとのクラシファイアリクエストを追加しません。クラシファイアはコマンドが名前を付けるホストをコマンドと一緒に 1 つのレビューで判定し、Claude Code は承認されたリストに対して各接続をチェックし、クラシファイアを再度呼び出さずに。

dontAsk モードで事前承認済みツールのみを許可する

dontAsk モードを設定すると、Claude Code は本来プロンプトを表示するすべてのツール呼び出しを自動的に拒否します。Claude は Manual モードで承認が不要なアクション(作業ディレクトリ内のファイル読み取りや読み取り専用 Bash コマンドなど)、および permissions.allow ルールに一致するアクション、PreToolUse フックによって承認されたコール実行を継続します。このモードは CI パイプラインや制限された環境で使用します。Claude が実行できる内容を事前に定義でき、セッションは入力を待つことはありません。このモードがアクティブな間、ステータスバーに ⏵⏵ don't ask on が表示されます。

Claude Code は、プロンプトを表示する代わりに、明示的なask ルールに一致するコールを拒否します。また、allow ルールが一致する場合でも組み込みの AskUserQuestion ツールを拒否し、その設定が Claude Code に到達するセッションで組織が ask に設定したコネクタツールについても同じことを行います。_meta["anthropic/requiresUserInteraction"]でマークされた MCP ツールも同じ方法で拒否します。これは、承認カードがこのモードが収集しない回答を必要とするためです。これには Claude Code v2.1.199 以降が必要です。

重要なパス(rm -rf / や rm -rf ~ など)を対象とした rm および rmdir の削除は、allow ルールが一致する場合や PreToolUse フックが許可する場合でも拒否されます。

Claude Code on the web のクラウドセッションは defaultMode: "dontAsk" を無視します。詳細はbypassPermissionsを参照してください。

スタートアップ時にフラグで設定します:

claude --permission-mode dontAsk

bypassPermissions モードですべてのチェックをスキップする

bypassPermissions モードは権限プロンプトとセーフティチェックを無効にするため、保護されたパスへの書き込みを含むツール呼び出しが即座に実行されます。

アクション no モードが自動承認するアクションはこのモードでもプロンプトが表示されます。PowerShell の Remove-Item の拒否もこのモードで適用されます。

このモードでは、および権限バイパスが利用可能なインタラクティブターミナルプランモードセッションでは、2 つのクロスセッションメッセージングセーフガードが引き続き適用されます。

  • このマシンを超えたセッションへのメッセージに対する isolatePeerMachines 承認プロンプトが引き続き表示されます。
  • crossSessionInbound 値が適用されない場合、Claude Code は別のセッションからのインバウンドメッセージを承認待ちで保持し、送信セッションが権限プロンプトもバイパスしていることを識別した場合にのみ確認なしで配信します。権限モードを終了してメッセージが保持されている場合、Claude Code はインバウンドルールを再適用し、保持されているメッセージのうち現在受け入れるものを配信します。

権限バイパスが利用可能なインタラクティブターミナルセッションでは、Claude Code はプランモードのブロックも強制しません。Claude はまだ編集なしでプランするよう指示されていますが、プランニング中に試みるファイル編集またはシェルコマンドはプロンプトなしで実行されます。明示的な質問ルールおよび rm と rmdir の削除でクリティカルパスをターゲットにしたものはまだプロンプトが表示されます。

プランモードは Claude Code がインタラクティブターミナルなしで実行される場所ではブロックを保持します。これには -p を使用した非インタラクティブ実行、Agent SDK セッション、および VS Code 拡張機能のチャットパネルでの会話が含まれます。そこでは、--allow-dangerously-skip-permissions により bypassPermissions が後で選択可能になります。

このモードを有効にせずに開始したセッションから bypassPermissions に入ることはできません。permissions.defaultMode: "bypassPermissions" で起動時に有効にするか、有効化フラグを使用して有効にしてください。

claude --permission-mode bypassPermissions

--dangerously-skip-permissions フラグは同等です。

Claude Code は --restricted で開始したセッションで bypassPermissions を拒否します。--restricted には Claude Code v2.1.248 以降が必要です。

このモードを有効にしてインタラクティブセッションを初めて開始すると、Claude Code は権限チェックなしで実行されたアクションの責任を受け入れるよう求める警告ダイアログを表示します。

  • 受け入れた場合: Claude Code は skipDangerousModePermissionPrompt を ~/.claude/settings.json の true に設定するため、後のセッションではダイアログをスキップします。ダイアログを再度表示するには、そのファイルからキーを削除するか、false に設定してください。skipDangerousModePermissionPrompt リファレンスには、ユーザーまたは組織が設定できる他の設定ファイルが記載されています。
  • 拒否した場合: Claude Code は終了します。

非インタラクティブモードではダイアログは表示されず、--bg で開始したバックグラウンドセッションはインタラクティブセッションでダイアログを受け入れるまで拒否されます。

Linux と macOS では、Claude Code はこのモードで root として、または sudo の下で実行されている場合、起動を拒否します。

--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

チェックは認識されたサンドボックス内では自動的にスキップされます。コンテナで自律的に実行するには、dev コンテナ設定を使用してください。これは Claude Code を非 root ユーザーとして実行します。

Web 上の Claude Code は設定ファイルから defaultMode: "bypassPermissions" または "dontAsk" を尊重しないため、リポジトリのチェックイン設定はクラウドセッションをバイパス権限モードで開始できません。設定は無視され、セッションはモードドロップダウンに表示される権限モードで開始されます。権限モードを切り替えるを参照して、クラウドセッションが提供するモードを確認してください。

保護されたパス

パスの小さなセットへの書き込みは、bypassPermissions モードおよび bypass permissions が利用可能なプラン モード セッションを除き、自動承認されることはありません。これはリポジトリ状態と Claude 独自の設定の偶発的な破損を防ぎます。

モード 保護されたパスへの書き込み
default、acceptEdits プロンプト表示
plan bypass permissionsが利用可能なセッションで許可。そうでない場合、auto モードが計画中に利用可能な場合は分類器にルーティング。利用できない場合はプロンプト表示
auto 分類器にルーティング
dontAsk 拒否
bypassPermissions 許可

--restrictedで開始されたセッションでは、Claude Code v2.1.248 以降が必要で、分類器は保護されたパスへの書き込みを承認できません。

保護されたパスへの書き込みを分類器にルーティングするモードでは、symlink チェックが保護されたパスに解決される書き込みは、Claude が要求したパス自体が保護されていない場合、代わりにプロンプトを表示します。

設定ファイルの permissions.allow ルールは、保護されたパスへの書き込みを事前承認しません。安全性チェックは Claude Code が設定から allow ルールを評価する前に実行されるため、~/.claude/settings.json または .claude/settings.json の Edit(.claude/**) などのエントリは、上記の表のモード別の結果を変更しません。プロンプトを表示するモードでは、プロジェクトの .claude/ フォルダまたは ~/.claude/ への書き込みのプロンプトで、以下のセッション スコープ オプションのいずれかを提供できます。

  • プロジェクトの .claude/ フォルダの場合:Yes, and allow Claude to edit files in this project's .claude folder for this session
  • ~/.claude/ の場合:Yes, and allow Claude to edit files in its ~/.claude folder for this session

保護されたディレクトリ:

  • .git
  • .config/git
  • .vscode
  • .idea
  • .husky
  • .cargo
  • .devcontainer
  • .yarn
  • .mvn
  • .claude。ただし .claude/worktrees は除く。Claude はここに独自の git worktrees を保存します

保護されたファイル:

  • .gitconfig、.gitmodules
  • .bashrc、.bash_profile、.bash_login、.bash_aliases、.bash_logout、.zshrc、.zprofile、.zshenv、.zlogin、.zlogout、.profile、.envrc
  • .npmrc、.yarnrc、.yarnrc.yml、.pnp.cjs、.pnp.loader.mjs、.pnpmfile.cjs、bunfig.toml、.bunfig.toml
  • .bazelrc、.bazelversion、.bazeliskrc
  • .pre-commit-config.yaml、lefthook.yml、lefthook.yaml、.lefthook.yml、.lefthook.yaml
  • gradle-wrapper.properties、maven-wrapper.properties
  • .devcontainer.json
  • .ripgreprc、pyrightconfig.json
  • .mcp.json、.claude.json

重要なパス

重要なパスは、Claude Code が rm および rmdir コマンドから保護するディレクトリです。ファイルシステムのルート、ホームディレクトリ、作業ディレクトリなどが含まれます。

Claude Code は、permissions.allow ルールまたは "allow" を返す PreToolUse フック が rm または rmdir コマンドを承認することはありません。そのコマンドが重要なパスをターゲットにしている場合、他のプロンプトをスキップするモードであっても承認されません。このサーキットブレーカーはモデルエラーから保護します。マッチする deny ルールはコマンドを完全にブロックします。

代わりに何が起こるかは、権限モードによって異なります。Remove-Item と cmd 削除ビルトインには独自のチェックがあり、PowerShell の Remove-Item で説明されています。

どのパスが重要なのか

Claude Code は、rm または rmdir ターゲットが以下のいずれかである場合、重要なパスとして扱います。

  • ファイルシステムのルート
  • トップレベルディレクトリ、つまりルートの直接の子である /usr、/etc、/data などのディレクトリ
  • ホームディレクトリ
  • Windows ドライブルートとそのトップレベルディレクトリ(C:\ や C:\Windows など)
  • 作業ディレクトリとその親
  • 追加の作業ディレクトリとその親。ただし、削除が rm -rf <dir>/* のようにそれらの下のグロブである場合のみ。ディレクトリ自体に対する rm -rf <dir> はこのチェックをトリガーしません

重要なパスとしてカウントされるその他のターゲット

Claude Code は、以下の rm および rmdir ターゲットも重要なパスとして扱います。最後の列は、各ターゲットがカウントされる理由を説明しています。

ターゲット 例 カウントされる理由
シェル変数の直下のグロブまたは末尾のスラッシュ rm -rf "$DIR"/* 変数が空の場合、コマンドはファイルシステムルートからの削除になります
$1 または $@ などの位置パラメータの下の同じ形式。コマンド内で値を与えるものがない場合 rm -rf "$1"/* コマンドはルートへの削除に展開されます
シェル変数の後に mnt、tmp、usr、Users などの一般的なトップレベルディレクトリ名が続く場合 rm -rf "$TMPDIR/mnt" 変数が空に展開されると、コマンドは /mnt を削除します
同じコマンドが $(pwd) または $(git rev-parse --show-toplevel) などのディレクトリ出力置換から割り当てる変数 D=$(pwd); rm -rf "$D" 値は作業ディレクトリまたはリポジトリルートに名前を付けることができます
コマンド置換の出力のみであるターゲット。rm が再帰的な場合 rm -rf "$(pwd)" Claude Code はコマンドが実行される前にターゲットをチェックできません
重要なパスの後に続く末尾のコマンド置換 rm -rf ~/$(cmd) Claude Code は、置換が空に展開された場合に残るパス(この例ではホームディレクトリ)をチェックします
バックスラッシュのみであるターゲット rm -rf "\\" Windows 上の Git Bash は単一のバックスラッシュを現在のドライブのルートとして読み取るため、チェックはすべてのプラットフォームで適用されます

コマンド置換の出力のみであるターゲットのチェックをオフにするには、Claude Code を起動する環境で CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1 を設定します。

ネストされたコマンドとインラインスクリプト内の削除

Claude Code はこれらの構造内も確認します。

  • ネストされたコマンド: (...) を使用したサブシェル、{ ...; } を使用したブレースグループ、$(...) またはバッククォートを使用したコマンド置換、または <(...) を使用したプロセス置換。Claude Code は、(rm -rf ~) や echo "$(rm -rf ~)" のように置換内にある重要なパスの削除、または同じコマンド内の他の場所にある削除を見つけます。
  • インラインスクリプト: Claude Code は sh -c または bash -c などのシェルに渡されるスクリプトをチェックして、シェル変数と位置パラメータのターゲットを確認します。
    • スクリプトがダブルクォートで囲まれている場合、呼び出し元のシェルはスクリプトの変数を展開してから、内部シェルがスクリプトを受け取ります。find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \; では、コマンドはマッチごとに 1 回ファイルシステムルートからの削除に展開され、Claude Code はこれを重要なパスの削除として扱います。
    • sh -c 'rm -rf "$1"/*' _ {} のように $1 を実際の値にバインドするシングルクォートスクリプトはフラグが付きません。

フラグが付いたコマンドを書き直す

コマンドをチェックに合格するように書き直す方法は、使用しているその他のターゲットによって異なります。

  • $DIR などの変数の下のグロブまたは末尾のスラッシュ: 各展開をガードして、変数が設定されていないか空の場合にシェルがエラーで停止するようにします。例えば rm -rf "${DIR:?}"/* のように、またはリテラルパスを使用します。すべての展開がこのようにガードされている削除はこのチェックに合格するため、bypassPermissions モードではプロンプトなしで実行されます。別の重要なパスチェックがそれにフラグを付けない限り。
  • $HOME などの通常設定されている変数の下のグロブまたは末尾のスラッシュ: リテラルパスを使用します。
  • ディレクトリ出力置換から割り当てられた変数: リテラルパスを使用します。"${D:?}" ガードはこのチェックをクリアしません。変数は空ではないためです。
  • コマンド置換の出力のみであるターゲット: 置換を単独で実行してから、それが出力するリテラルパスを削除します。プロンプトは Claude に同じことを行うよう指示します。

変数の下のグロブまたは末尾のスラッシュの場合、プロンプトはフラグが付いた rm に名前を付け、チェックに合格するように書き直す方法を説明します。

各権限モードでの重要なパスの削除

Claude Code が重要なパスの削除に対して行うことは、権限モードによって異なります。

モード 結果
default、acceptEdits 承認を求めます
plan 承認を求めます。計画中に分類器がコマンドをレビューする場合、バイパス権限が利用できないときは auto モードのように処理します
auto ターミナルで承認を求めます(時間制限付き)。その他の場所では拒否します
dontAsk 拒否します
bypassPermissions 承認を求めます(ターミナルでは時間制限付き)

明示的な ask ルール がコマンドにマッチする場合、Claude Code は auto モードでも承認を求めます。時間制限はありません。承認を求めるモードでは、PermissionRequest フック はプロンプトに答えることができます。

auto および bypassPermissions モードでの時間制限と拒否

auto および bypassPermissions モードでは、重要なパスの削除に対するターミナルプロンプトに 2 分間のカウントダウンが表示されます。

  • カウントダウンが終了する前に答えない場合、Claude Code はコマンドを拒否し、Claude に代わりに何をするかを伝えるため、無人セッションは動作し続けます。
  • プロンプトが開いている間に任意のキーを押すと、カウントダウンが停止し、プロンプトは答えを待ち続けます。
  • セッション内でこれらのプロンプトが 3 回答えられずに終了した後、Claude Code はそれらの表示を停止し、重要なパスの削除をすぐに拒否します。新しいメッセージを送信するとカウントが再開されます。

auto モードでは、Claude Code がターミナルプロンプトを表示できない場所では、コマンドをすぐに拒否します。例えば、-p を使用した非対話型実行、Agent SDK セッション、VS Code 拡張機能のチャットパネル、デスクトップアプリなどです。拒否は Claude に削除したかったものを報告し、削除をあなたに任せるよう伝えます。

auto および bypassPermissions の処理には Claude Code v2.1.281 以降が必要です。これをオフにするには、Claude Code を起動する環境で CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1 を設定します。auto モードでは、重要なパスの削除は代わりに分類器に送信され、bypassPermissions モードではプロンプトに時間制限がありません。

PowerShell の Remove-Item

PowerShell ツールを有効にすると、Claude Code は Remove-Item と cmd ビルトイン rd、rmdir、del、erase に独自のチェックを与えます。これは rm 重要なパスリストとは別です。Remove-Item の場合、結果はターゲットに依存し、最初にマッチするケースが適用されます。

  • システムパス。ファイルシステムルートとそのトップレベルディレクトリ、ドライブルートとそのトップレベルディレクトリ、およびホームディレクトリ。Claude Code はすべてのモードでコマンドを拒否し、承認を求めません。
  • ワイルドカード。裸の *、または /* または \* で終わるターゲット($dir/* のようなシェル変数の下のグロブを含む)。Claude Code は 分類器 がそれを見る前に、すべてのモードでコマンドを拒否し、承認を求めません。
  • 作業ディレクトリまたはその親の 1 つ(-Recurse 付き)。Claude Code はコマンドを承認が必要な他のコマンドと同じように扱うため、承認を求めるモードでは承認を求め、auto モードでは分類器に送信し、dontAsk モードでは拒否します。bypassPermissions モードはこのチェックをスキップします。

システムパスのケースは、Claude が cmd /c rd /s /q C:\Users のように cmd を通じて実行する場合、rd、rmdir、del、erase にも適用されます。デフォルトでは、Claude Code はすべてのモードでそのようなコマンドを拒否し、承認を求めません。この cmd チェックには Claude Code v2.1.283 以降が必要です。

cmd ターゲットを判定する場合、Claude Code はリテラルテキストに続く PowerShell 変数を空として扱います。これにより cmd /c rd /s /q "C:\$name" は C:\ の削除となるため、これも拒否されます。末尾のワイルドカードはそれが空にするフォルダとしてカウントされるため、cmd /c del /q C:\* は拒否され、プロジェクト内の cmd /c del /q dist\* は拒否されません。

cmd チェックをオフにするには、Claude Code を起動する環境で CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1 を設定します。Claude Code はこの変数を設定ファイルの env ブロック内では無視します。システムパス上の Remove-Item はどちらの場合でも拒否されたままです。

関連項目

  • Permissions:allow、ask、deny ルール。管理ポリシー
  • Configure auto mode:分類器に組織が信頼するインフラストラクチャを伝える
  • Hooks:PreToolUse および PermissionRequest フック経由のカスタム権限ロジック
  • Security:セキュリティ保護とベストプラクティス
  • Sandboxing:Bash コマンドのファイルシステムとネットワーク隔離
  • Non-interactive mode:-p フラグで Claude Code を実行