SpyBara
Go Premium

permission-modes.md 2026-09-28 22:59 UTC to 2026-09-29 16:01 UTC

This page contains 193 additions and 155 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 17:02

権限モードを選択する

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 mode で権限プロンプトを排除する

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

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

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

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

Auto mode はまた、Claude が明確化の質問で停止しないように促しますが、Claude はプロンプトまたはスキルが明示的にそれに依存している場合でも質問します。モードでプロンプトを表示しながらより強力な自律動作を実現するには、代わりに Proactive output style を設定してください。

Auto mode は、アカウントがこれらすべての要件を満たす場合にのみ利用可能です:

  • プラン: すべてのプラン。
  • 組織: Team と Enterprise では、auto mode はデフォルトで利用可能です。管理者は 管理設定 で permissions.disableAutoMode を "disable" に設定することで、組織の auto mode をオフにできます。
  • モデル: Anthropic API と Claude Platform on AWS では、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、Claude Platform on AWS、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、およびサインイン済み Claude apps gateway セッションでデフォルトで利用可能です。

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

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

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

Bedrock、Agent Platform、または Foundry での Auto mode

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

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

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

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

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

Auto mode では、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 ゲートウェイ、またはプロキシ: Claude Platform on AWS、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 に設定すると、-p または Agent SDK セッションなど、まだサーバーレビューを持たないセッションでサーバーレビューをオンにします。ただし、CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 も設定していない場合に限ります。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 から、git commit --amend(HEAD のコミットが既にプッシュされている場合)。メッセージのみの言い換えはブロックされません:--amend -m(新しくステージされたものなし)、Claude がこのセッション中に作成したコミット上
  • terraform destroy、pulumi destroy、cdk destroy、または terragrunt destroy、およびリソースを破壊するプランの適用

Claude Code v2.1.195 以降は、デフォルトでより多くのカテゴリをブロックします。いくつかは 環境 エントリに依存します。例えば、機密リモートターゲットと保護された IaC スコープなど。これらを具体的な名前に絞ることができます。

  • シークレットマネージャーへの書き込み、または DNS レコードまたは TLS 証明書の変更
  • 人間が承認していないプルリクエストのマージ、Claude 独自のプルリクエストの承認、または CI チェックの無効化
  • atlantis apply やボットの /deploy または /merge などのオートメーションへのコマンド自体であるコメントの投稿
  • 本番環境フィーチャーフラグの切り替え、ランプ、または削除
  • 保護された IaC スコープへのインフラストラクチャ変更の適用、またはクラスタノードのドレインと削除
  • ラベルセレクタや --all など、他のユーザーのジョブをキャッチする書き込みなど、指定したリソースを超えて到達する共有コンピュートクラスタへの書き込み
  • DaemonSets や admission webhooks など、すべてのノードで実行されるか、クラスタトラフィックをインターセプトする Kubernetes リソースの作成
  • 機密リモートターゲットへのインタラクティブシェルまたはポートフォワード
  • ローカルサービスをパブリックインターネットからアクセス可能にするトンネルまたはリバースシェルの開始
  • ライブ認証情報またはトークンをトランスクリプトまたはファイルに出力
  • 環境 で機密データロケーションとしてリストされている場所へのアクセス、またはそこからのデータのコピー。v2.1.198 以降、これはエントリが除外する対象者への 1 つからのデータ送信もブロックします
  • 内部パッケージレジストリをパブリックレジストリにバイパスするパッケージインストール。v2.1.198 以降、これは環境にリストされている場合だけでなく、会話で Claude に内部レジストリまたはミラーが存在することを伝えた場合にも適用されます
  • --insecure のような安全ガードを解除するフラグを使用してコマンドを実行
  • --dangerously-skip-permissions または --no-sandbox で開始されたものなど、人間の承認またはサンドボックスなしで実行される自律エージェントループの起動。v2.1.198 以降、これは --yes-always で開始されたランナーなど、分離とアクション単位の承認を無効にして、サードパーティエージェントまたは eval ハーネスを実行することもカバーします
  • ページコンテンツ、クッキー、または認証情報をオリジン外に送信する可能性のある Chrome の Claude ブラウザアクション

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 などの再帰的な強制削除。ターゲットが会話で割り当てられていないシェル変数、またはそのような変数をルートとする glob。値は以前のコマンド出力からのみ来ており、クラシファイアは決してそれを受け取らないため、クラシファイアは削除ターゲットを他の削除ルールに対して検証できません。削除されるパスに正確に名前を付けるか、Claude が解決されたリテラルパスが書き込まれたコマンドで削除を再実行するとブロックがクリアされます。ターゲットをクラシファイアが解決できる削除は影響を受けません。

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

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

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

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

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

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

デフォルトで許可:

  • ワーキングディレクトリ内のローカルファイル操作
  • ロックファイルまたはマニフェストで宣言された依存関係のインストール
  • .env の読み取りと一致する API への認証情報の送信
  • 読み取り専用 HTTP リクエスト
  • デフォルトブランチを含む、作業中のリポジトリのどのブランチへのプッシュ。production や gh-pages などのデプロイまたは公開ターゲットとしてマークされた非デフォルトブランチは対象外です:クラシファイアはそこへのプッシュを独自の条件で判定します。プッシュのコンテンツは引き続き他のルールに対してチェックされ、permissions.deny ルール はすべてのモードで 書き込まれたとおり プッシュコマンドをブロックでき、リモート独自のブランチ保護は引き続き適用されます。v2.1.211 より前では、開始したブランチ、Claude が作成したブランチ、およびデフォルトブランチへのルーチンプッシュのみがデフォルトで許可されていました。v2.1.203 より前では、デフォルトブランチへの直接プッシュはブロックされていました

Claude Code v2.1.195 以降はこれらもデフォルトで許可します:

  • 同じセッションで Claude が以前に作成した正確なジョブの削除
  • セキュリティ関連のコード、設定、脅威モデルの読み取り、レビュー、または書き込み(タスクの一部として)
  • 同じマルチエージェントセッションで一緒に作業しているエージェント間のメッセージ
  • environment にリストされている信頼できるドメイン、バケット、およびサービスへのデータ送信。これはデータフローのみをカバーし、同じインフラストラクチャ上の破壊的または認証情報操作ではありません
  • Chrome の Claude による信頼できる内部ドメイン、localhost、または指定した URL へのナビゲーション

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

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

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

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

permissions.blockReadsOutsideWorkingDirectories がオフの間、ファイル読み取りは auto mode でプロンプトなしで実行されます。ワーキングディレクトリ の外のパスを含みます。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 mode を離れ て権限プロンプトに答えてください。

Auto mode がフォールバックするとき

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

  • ブロックされたアクション: Claude Code は通知を表示し、/permissions の下の Recently denied タブにアクションをリストします。そこで r を押して、手動承認で再試行できます。クラシファイアが アクションの判定を生成しない 場合(auto mode とは別の安全チェックがクラシファイア独自のリクエストを拒否したか、レスポンスが解析されなかったため)、Claude Code は通知または Recently denied エントリなしでアクションを拒否します。
  • 繰り返されるブロック: クラシファイアが 3 回連続でアクションをブロックするか、合計 20 回ブロックする場合、auto mode は一時停止し、Claude Code はプロンプトを再開します。プロンプトされたアクションを承認すると、auto mode が再開されます。これらのしきい値は設定不可です。許可されたアクションは連続カウンターをリセットしますが、合計カウンターはセッション用に保持され、独自のリミットがフォールバックをトリガーするときのみリセットされます。Claude Code は auto mode とは別の安全チェックがクラシファイアのリクエストを拒否する 場合、拒否をどちらのしきい値にもカウントしません。リンクされたエントリは Claude Code がそれらの拒否をどのように処理するかをカバーしています。
  • プロンプトできないセッション: --permission-prompt-tool のない 非インタラクティブ -p 実行にはフォールバックするプロンプトがありません。繰り返されるブロックがしきい値に到達すると、アクションは実行されず、Claude は作業を続けます。auto mode とは別の安全チェックがクラシファイアのリクエストを拒否する 場合も同じです。Claude Code はどちらの場合もランを停止しません。
  • サーバーからの判定なし: サーバー側クラシファイアレビュー では、Claude Code はサーバーが判定を与えないアクションを拒否し、判定なしで 10 個の連続レスポンスの後、ターンを停止します。サーバーが安全性判定を返さなかった を参照してください。
  • チェック中のモード切り替え: クラシファイアチェックが保留中に権限モードを切り替えた場合、Claude Code は新しいモードが要求しなかった判定を破棄し、代わりにプロンプトするか、dontAsk mode でアクションを自動拒否します。

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

各アクションは固定の決定順序を通過します。最初に一致するステップが勝ちます:
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 ツールは allow ルールが一致する場合でも直接プロンプトを表示し、コネクタツール [組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools) したものも、その設定が Claude Code に到達するセッションで同様です
   * [コマンドごとの許可ドメイン](/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` MCP ツールはクラシファイアに到達しません。したがって、組織が必要とする承認も同意ステップも自動承認されません
4. クラシファイアがブロックする場合、Claude は理由を受け取り、代替を試みます。ほとんどのセッションでは、理由は `[Data Exfiltration]` などのクラシファイアが一致したルールに名前を付けます。書かれた説明を与えるのではなく、[拒否をレビュー](/docs/ja/auto-mode-config#review-denials) を参照してください

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

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

`Bash(npm test)` のような狭いルールは有効なままです。Claude Code は auto mode を離れるときに削除されたルールを復元します。v2.1.236 より前では、Claude Code は auto mode で `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 mode アナウンスメント](https://claude.com/blog/auto-mode) および [エンジニアリング深掘り](https://www.anthropic.com/engineering/claude-code-auto-mode) を参照してください。
Auto mode がサブエージェントを処理する方法

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

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

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

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

Enterprise プランおよび Claude API を使用するアカウント、Claude Platform on AWS、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 はユーザー設定に受け入れを保存するため、ダイアログは 1 回だけ表示されます。拒否した場合、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 は、permissions.allow ルールまたは "allow" を返す PreToolUse フック が rm または rmdir コマンドを承認することはありません。そのコマンドが重要なパスをターゲットにしている場合、他のプロンプトをスキップするモードであっても承認されません。このサーキットブレーカーはモデルエラーから保護します。マッチする deny ルールはコマンドを完全にブロックします。

代わりに何が起こるかは、権限モードによって異なります。

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

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

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

auto および bypassPermissions モードでは、ターミナルプロンプトに 2 分間のカウントダウンが表示されます。

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

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

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

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

Claude Code は、rm -rf "$DIR"/* のようなシェル変数の直下のグロブまたは末尾のスラッシュも重要なパスの削除として扱います。変数が空の場合、コマンドはファイルシステムルートからの削除になるためです。

このプロンプトは、フラグが付いた rm に名前を付け、チェックに合格するように書き直す方法を説明します。

  • $DIR のような変数の場合、各展開をガードして、変数が設定されていないか空の場合にシェルがエラーで停止するようにします。例えば rm -rf "${DIR:?}"/* のように、またはリテラルパスを使用します
  • $HOME のような通常設定されている変数の場合、リテラルパスを使用します

その方法ですべての展開がガードされている削除はこのチェックに合格するため、bypassPermissions モードではプロンプトなしで実行されます。別のセクションのチェックがそれにフラグを付けない限り。

Claude Code はこれらのターゲットも重要なパスとして扱います。

  • シェル変数の後に 1 つのトップレベルディレクトリ名が続く場合(rm -rf "$TMPDIR/mnt" など)。変数が空に展開されると、コマンドは /mnt を削除します。これは mnt、tmp、usr、Users などの一般的なトップレベル名をカバーします。
  • 同じコマンドがディレクトリ出力置換から割り当てる変数(D=$(pwd); rm -rf "$D" または $(git rev-parse --show-toplevel) からの割り当てなど)。値は作業ディレクトリまたはリポジトリルートに名前を付けることができます。"${D:?}" ガードはこのチェックをクリアしません。変数は空ではないため、代わりにリテラルパスを使用します。
  • バックスラッシュのみのターゲット(rm -rf "\\" など)。Windows 上の Git Bash は単一のバックスラッシュを現在のドライブのルートとして読み取るため、チェックはすべてのプラットフォームで適用されます。
  • コマンド置換の出力のみ(rm -rf "$(pwd)" など)。rm が再帰的な場合。Claude Code はコマンドが実行される前にターゲットをチェックできないため、プロンプトは Claude に置換を単独で実行してから、それが出力するリテラルパスを削除するよう伝えます。このチェックのみをオフにするには、Claude Code を起動する環境で CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1 を設定します。

末尾のコマンド置換が rm -rf ~/$(cmd) のように空に展開できる場合、Claude Code は残るパス(この例ではホームディレクトリ)をチェックします。

削除を (...) を使用したサブシェル、{ ...; } を使用したブレースグループ、$(...) またはバッククォートを使用したコマンド置換、あるいは <(...) を使用したプロセス置換内に隠すことは、チェックをスキップしません。Claude Code は、(rm -rf ~) や echo "$(rm -rf ~)" のように置換内にある重要なパスの削除、または同じコマンド内の他の場所にある削除を見つけます。

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 を実行