SpyBara
Go Premium

permission-modes.md 2026-09-21 22:59 UTC to 2026-09-22 23:59 UTC

This page contains 44 additions and 29 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

権限モードを選択する

Claude がアクションを実行する前に確認するかどうかを制御します。CLI で Shift+Tab でモードを切り替えるか、VS Code のモード指示器、Desktop のモードセレクター、または Web のモードドロップダウンを使用します。

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

Pro、Max、Team プランでは、組み込みの開始権限モードは auto モードです。セッションが開始するモードは、開始権限モードを変更するサーフェスと設定をカバーしています。実行中のセッションの権限モードはいつでも変更できます。

利用可能なモード

各モードは、利便性と監視のバランスを異なる方法で取ります。以下の表は、各モードで 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、Pro、Max、Team の組み込み開始権限モード なし。サンドボックスまたはコンテナは防御の深さを追加 サポートされているモデルが必要で、組織は 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 の実行方法、プラン、および Claude Code がフィーチャーフラグを取得できるかどうかに依存します。セッションに一致する最初の行が適用されます。表は、ターミナルまたは VS Code 拡張機能を通じて開始するセッションをカバーしています。デスクトップアプリと claude.ai については、権限モードを切り替えるの Desktop と Web タブを参照してください。

Claude Code の実行方法 組み込み開始権限モード
設定ファイルが disableAutoMode を "disable" に設定 default
フィーチャーフラグ取得がオフ default
Claude Code をインストールまたはアップグレードした後の最初のセッション。このデフォルトを追加するバージョンへ。ただし、新規インストール後、Claude Code がフラグを時間内に取得した場合を除く default
claude -p または Agent SDK default
Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、またはサインイン済みの Claude apps gatewayセッション default
Pro、Max、または Team プラン。ターミナルまたは VS Code 拡張機能を通じて auto
Enterprise プランまたは Claude Console API キー default

フィーチャーフラグ取得がオフの場合、または インストールまたはアップグレード後の最初のセッションでフラグがまだ到達していない場合、VS 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 権限が利用可能なインタラクティブターミナルセッションを除き、編集はプランを承認するまでブロックされたままです。

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

プランモードに入るには、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 が読んだ敵対的なコンテンツによって駆動されているように見えるものをブロックします。明示的な質問ルールは依然としてプロンプトを強制します。

Pro、Max、Team プランでは、自動モードはセッションが開始される組み込みの開始権限モードです。

クラシファイアは、Claude が SendMessage で別のエージェントに送信する各メッセージもレビューします。プレーンテキストまたは構造化されたエージェントチームメッセージのいずれかで、自動モードとクラシファイアがコマンドをレビューしている間のプランモードの両方で、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セッションでは、自動モードはデフォルトで Shift+Tab サイクルに表示されます。サイクルに表示されることは、セッションが開始される権限モードを変更しません。これらのプロバイダーでは、ターミナルセッションは defaultModeで開始されます。これは変更しない限り Manual です。VS Code 拡張機能の会話は、claudeCode.initialPermissionMode または拡張機能で選択したモードが設定しない限り Manual で開始されます。これらのプロバイダーでは、Claude Sonnet 5、Opus 4.7 以降、および Fable モデルのみがサポートされています。

自動モードをデフォルトの開始権限モードにするには、ユーザーまたは管理設定で "permissions": {"defaultMode": "auto"} を設定します。VS Code 拡張機能が開始するセッションでは、モード指示器から Auto を選択します。権限モードの切り替えは、その選択を上回るものをカバーしています。

/doctorチェックアップは、Anthropic API と同じ方法で、これらのプロバイダーのユーザー設定デフォルトを提案します。

開発者が自動モードを使用するのを防ぐには、管理設定で 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 以降は効果がありません。

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

Enterprise プランおよび Claude API を使用するアカウント、AWS 上の Claude Platform、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および ANTHROPIC_BASE_URL をLLM ゲートウェイまたはプロキシに指す場合、自動モードの Claude Code はサーバーにクラシファイアに送信されるアクションをセッションのモデルリクエストの一部としてレビューするよう要求します。サーバーがそれらをレビューする場所では、その判定がこれらのアクションを決定します。レビューしない場所では、通常はゲートウェイまたはプロキシがトラフィックに干渉するため、プラットフォーム、リージョン、または認証情報がまだサーバー側チェックを持たないため、Claude Code は独自のクラシファイアリクエストにフォールバックします。そのフォールバックがセッションの残りの間保持されると、これらのリクエストが請求されるアカウントでクラシファイアリクエスト料金に関する通知を表示します。サーバーに質問することをスキップして、常に Claude Code 独自のクラシファイアリクエストを使用するには、CLAUDE_CODE_AUTO_MODE_SERVER=0を設定します。変数は Anthropic API への直接接続では読み取られません。CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定し、CLAUDE_CODE_AUTO_MODE_SERVER を設定しないままにする場合、Claude Code もサーバーに質問することを停止します。

デフォルトでサーバーに質問することには Claude Code v2.1.278 以降が必要です。

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

クラシファイアは、作業ディレクトリとセッション開始時にそれに対して構成されたリモートを信頼します。セッション中に 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。リソースを破壊するプランの適用

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

  • シークレットマネージャーへの書き込み、または DNS レコードまたは TLS 証明書の変更
  • 人間が承認していないプルリクエストのマージ、Claude 自身のプルリクエストの承認、または CI チェックの無効化
  • atlantis apply や bot の /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 および issue 本文、コミットメッセージ、およびコメントは、リポジトリが信頼境界の外にあるか公開されている場合、組織自体の公開リポジトリを含む、この種のアウトバウンドコンテンツとしてカウントされます。内部ファイルパス、コード名、ライブ API レスポンスデータ(メールやアカウント識別子など)、およびインフラストラクチャ識別子は機密詳細としてカウントされます。PR、issue、およびコミットメッセージのスコープには Claude Code v2.1.200 以降が必要です。PR または issue 本文内のライブ個人データ(メールアドレス、アカウントまたは組織識別子、使用メトリックなど)には、リポジトリの可視性または信頼境界に関係なく、それらの詳細と受信者に名前を付ける必要があります。そのチェックには Claude Code v2.1.203 以降が必要です
  • Claude Code 自体の tmux ペインにキーストロークを送信して、独自のインターフェースを駆動。クラシファイアはこれを Claude が独自の権限または監視を変更することとして扱います

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

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

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

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

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

  • Claude Code セッショントランスクリプト、~/.claude/projects/ または構成ディレクトリの下の .jsonl 履歴ファイルへの書き込み。シェルコマンドを通じて直接または間接的に。ルールはまた、Claude Code が独自のチェック用に各トランスクリプトエントリに追加するメタデータ行もカバーします。トランスクリプトの読み取りはブロックされません
  • rm -rf "$VAR" または Remove-Item -Recurse -Force $dir のような再帰的な force delete。ターゲットはシェル変数であり、会話でクラシファイアが見るどこにも割り当てられていません。値は以前のコマンド出力からのみ来ました。クラシファイアは決してそれを受け取らないため、クラシファイアは削除ターゲットを他の削除ルールに対して検証できません。ブロックは、削除されている正確なパスに名前を付けるか、Claude が解決されたリテラルパスが書き込まれたコマンドで削除を再実行するときにクリアされます。クラシファイアが解決できるターゲットを持つ削除は影響を受けません。Remove-Item ターゲットが裸の * または /* または \* で終わる場合、クラシファイアに到達しません。Claude Code はそれらを直接拒否します

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

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

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

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

  • メッセージ、PR または issue テキスト、ドキュメント、またはリンクが開かれるか取得される他の場所で、パブリック paste、図、またはデータ共有サービスへのリンクを投稿または書き込み。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 の下の Recently denied タブにアクションをリストします。そこで r を押して、手動承認で再試行できます。クラシファイアがアクションに対して判定を出さない場合。自動モードとは別の安全チェックがクラシファイアのリクエスト自体を拒否したか、その応答が解析されなかったため、Claude Code は通知または Recently denied エントリなしでアクションを拒否します。
  • 繰り返されるブロック: クラシファイアが連続して 3 回またはセッション全体で 20 回アクションをブロックする場合、自動モードは一時停止し、Claude Code はプロンプトを再開します。プロンプトされたアクションを承認すると、自動モードが再開されます。これらのしきい値は構成不可能です。許可されたアクションは連続カウンターをリセットしますが、合計カウンターはセッション用に保持され、独自のリミットがフォールバックをトリガーするときのみリセットされます。Claude Code は、自動モードとは別の安全チェックがクラシファイアのリクエストを拒否する場合、拒否をどちらのしきい値にもカウントしません。リンクされたエントリは Claude Code がそれらの拒否をどのように処理するかをカバーしています。
  • プロンプトできないセッション: --permission-prompt-toolのない非インタラクティブ -p 実行にはフォールバックするプロンプトがありません。繰り返されるブロックがしきい値に到達すると、アクションは実行されず、Claude は作業を続けます。自動モードとは別の安全チェックがクラシファイアのリクエストを拒否する場合も同じです。Claude Code はどちらの場合もランを停止しません。
  • チェック中のモード切り替え: クラシファイアチェックが保留中に権限モードを切り替える場合、Claude Code は新しいモードが要求しなかった判定を破棄します。代わりにプロンプトされるか、dontAsk モードでアクションが自動拒否されます。

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

各アクションは固定の決定順序を通過します。最初に一致するステップが勝ちます。
1. [許可、質問、または拒否ルール](/docs/ja/permissions#manage-permissions)に一致するアクションは、これらの例外を除いて直ちに解決されます。
   * [保護されたパス](#protected-paths)への書き込みは、許可ルールが一致する場合でもクラシファイアにルーティングされます。`rm` と `rmdir` の削除も Claude Code v2.1.218 以降で[重要なパス](#critical-paths)をターゲットにしている場合もそうです
   * [`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool)とマークされた MCP ツール。許可ルールが一致する場合でも直接プロンプトします。コネクタツール[組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools)したもの。その設定が Claude Code に到達するセッションでも
   * [コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)を含むシェルコマンド。許可ルールが一致する場合でもクラシファイアにルーティングされます。ルールはコマンドを承認するため、そのホストではなく
   * `Bash(git push *)` のようなコマンドのコンテンツで一致する質問ルール。権限プロンプトにフォールバック
2. 読み取り専用アクションと作業ディレクトリ内のファイル編集は自動承認されます。[保護されたパス](#protected-paths)と[作業ディレクトリ外の最初の読み取り](#first-read-outside-the-working-directories)への書き込みを除く。プロンプトします
3. その他すべてはクラシファイアに送信されます。ステップ 1 でプロンプトするコネクタツールと`requiresUserInteraction` 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 コンテンツを見ます。ツール結果はそれらのリクエストから削除されるため、ファイルまたは web ページ内の敵対的なコンテンツはクラシファイアを直接操作できません。

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

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

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

  1. サブエージェントが開始する前に、委任されたタスク説明が評価されるため、危険に見えるタスクはスポーン時にブロックされます。
  2. サブエージェントが実行されている間、その各アクションはクラシファイアを通じて親セッションと同じルールで実行され、サブエージェントの frontmatter の 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 では、クラシファイア呼び出しはトークン使用量にカウントされます。各チェックはトランスクリプトの一部と保留中のアクションを送信し、実行前にラウンドトリップを追加します。読み取りと保護されたパス外の作業ディレクトリ編集はクラシファイアをスキップするため、オーバーヘッドは主にシェルコマンドとネットワーク操作から来ます。サーバーがアクションをレビューする場所では、セッションのモデルリクエストの一部として行われるため、カウントする別のクラシファイア呼び出しはありません。サーバー側クラシファイアレビューを参照してください。

サンドボックス化されたネットワークアクセスは、コマンドごとのクラシファイアリクエストを追加しません。クラシファイアはコマンドが名前を付けるホストをコマンドと一緒に判定し、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 モードが自動承認するアクションはこのモードでもプロンプトが表示されます。

このモードでは、および権限バイパスが利用可能なインタラクティブターミナルプランモードセッションでは、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 以降が必要で、分類器は保護されたパスへの書き込みを承認できません。

permissions.allow設定ファイルのルールは、保護されたパスへの書き込みを事前承認しません。安全性チェックは Claude Code が設定から allow ルールを評価する前に実行されるため、~/.claude/settings.json または .claude/settings.json の Edit(.claude/**) などのエントリは、上記の表のモード別の結果を変更しません。プロンプトを表示するモードでは、.claude/ への書き込みのプロンプトに Yes, and allow Claude to edit its own settings for this session というオプションが表示され、そのセッション内の後続の .claude/ への書き込みを再度プロンプトなしで承認します。

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

  • .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 分類器に送信します
dontAsk 拒否します
bypassPermissions 承認を求めます

明示的な ask ルール がコマンドにマッチする場合、Claude Code は auto モードでも承認を求めます。承認を求めるモードでは、PermissionRequest フック は他のプロンプトに答えるのと同じ方法でプロンプトに答えることができます。

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 は、(rm -rf ~) や echo "$(rm -rf ~)" のように置換内にある重要なパスの削除、または同じコマンド内の他の場所にある削除を見つけます。

PowerShell の Remove-Item

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

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

関連項目

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