SpyBara
Go Premium

permission-modes.md 2026-09-28 22:59 UTC to 2026-09-29 21:02 UTC

This page contains 243 additions and 148 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 21: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 に設定してください。

権限モードのプロンプトを自動モードで排除する

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

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

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

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

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

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

  • プラン: すべてのプラン。
  • 組織: Team と Enterprise では、自動モードはデフォルトで利用可能です。管理者は管理設定で permissions.disableAutoMode を "disable" に設定することで、組織の自動モードをオフにできます。
  • モデル: 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 が自動モードを利用不可と報告する場合は、まずこれらの要件と、設定ファイルが disableAutoMode を設定しているかどうかを確認してください。Anthropic がサーバー側で自動モードをオフにしたか、サーバーがアカウントの自動モードを拒否した可能性もあります。どちらかの回答を受け取ったセッションは、セッションが終了するまで自動モードをオフのままにするため、後で新しいセッションを開始してください。

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

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

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

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

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

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

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

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

自動モードでは、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 から、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 など、他のユーザーのジョブをキャッチする共有コンピュートクラスタへの書き込み
  • すべてのノードで実行されるか、クラスタトラフィックをインターセプトする Kubernetes リソース(DaemonSets や admission webhooks など)の作成
  • 機密リモートターゲットへのインタラクティブシェルまたはポートフォワード
  • ローカルサービスをパブリックインターネットから到達可能にするトンネルまたはリバースシェルの開設
  • ライブ認証情報またはトークンをトランスクリプトまたはファイルに出力
  • 環境で機密データロケーションとしてリストされている場所へのアクセス、またはそこからのデータのコピー。v2.1.198 以降、これはエントリが除外する対象者にそこからデータを送信することもブロックします。
  • 内部パッケージレジストリの周りにパッケージインストールをルーティングしてパブリックレジストリに。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 またはイシュー本文内のライブ個人データ(メールアドレス、アカウントまたは組織識別子、使用メトリックなど)には、リポジトリの可視性または信頼境界に関係なく、それらの詳細と受信者に名前を付ける必要があります。そのチェックには Claude Code v2.1.203 以降が必要です。
  • Claude Code 独自の tmux ペインにキーストロークを送信して独自のインターフェースを駆動。クラシファイアはこれを Claude が独自の権限または監視を変更することとして扱います。

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

  • セキュリティ動作を保護するテストまたはアサーション(認証、アクセス制御、入力検証、またはサンドボックスなど)をコメントアウト、削除、または force-pass
  • セッション中に 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 Code v2.1.195 以降もこれらをデフォルトで許可します。

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

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

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

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

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

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

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

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

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

会話で述べた境界

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

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

会話で述べた承認

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

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

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

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

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

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

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

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

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

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

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

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

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

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

`Bash(npm test)` のような狭いルールは有効なままです。Claude Code は自動モードを離れるときに削除されたルールを復元します。v2.1.236 より前では、Claude Code は自動モードで `Monitor` 許可ルールを有効なままにしたため、ツール全体に一致するルールはクラシファイアレビューなしで 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 がそれを読む前に疑わしいコンテンツにフラグを立てます。これらのレイヤーがどのように一緒に機能するかについての詳細は、[自動モードアナウンスメント](https://claude.com/blog/auto-mode)と[エンジニアリング深掘り](https://www.anthropic.com/engineering/claude-code-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 モデルです。

セッションの最初の自動モードリクエストは 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 を実行