権限モードを選択する
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、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 モードおよび モードサイクルに bypassPermissions を配置する方法で開始されたプラン モード セッションを除き、自動承認されることはありません。
モードはベースラインを設定します。権限ルールを上に層状にして、特定のツールを事前承認またはブロックします。拒否ルールはすべてのモード(bypassPermissions を含む)でブロックします。拒否ルールと ask ルールは、Claude が少なくとも 1 つの他のツールを呼び出すことができる限り、EndConversationには適用されません。許可ルールは bypassPermissions では効果がありません。
どのモードも自動承認しないアクション
Claude Code は、bypassPermissions を含むどのモードでも、以下を自動承認しません。各箇条書きは、各モードで代わりに何が起こるかを説明するセクションにリンクしています。
- 明示的な ask ルールに一致するツール
- 組織が
askに設定したコネクタツール。その設定が Claude Code に到達するセッションで - ユーザーインタラクションが必要なツール:組み込みの
AskUserQuestionツールとrequiresUserInteractionでマークされた MCP ツール - 重要なパスをターゲットにした
rmとrmdirの削除。許可ルールまたはPreToolUseフック"allow"は承認しません - クロスセッションメッセージングセーフガード
permissions.blockReadsOutsideWorkingDirectoriesがオンの場合、作業ディレクトリ外の読み取り:認識されたファイル読み取り Bash コマンドおよび auto モードとbypassPermissionsモードでも承認が必要なサンドボックス外の再試行。Claude Code v2.1.257 以降が必要です
一般的なセットアップ
権限モードは 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 モードは独立して機能し、プラン モードを除いて組み合わさります。プラン モードでは、auto-allow は承認を広げません。完全な相互作用については、サンドボックスが権限と権限モードにどのように関連するかおよび隔離が権限モードにどのように関連するかを参照してください。
セッションが開始するモード
ターミナルで新しいセッションを開始すると、Claude Code は最初に適用されるものから権限モードを取得します。
-
--permission-modeフラグ、または--dangerously-skip-permissions -
設定ファイルの
permissions.defaultMode.claude/settings.jsonまたは.claude/settings.local.jsonで"auto"を設定した場合、値は有効にならず、Claude Code は~/.claude/settings.jsonからのdefaultModeではなく組み込みデフォルトを使用します。これらの 2 つのファイルで"bypassPermissions"を設定した場合、それも有効にならず、セッションは Manual モードで開始します。他の値はすべての設定ファイルから適用されます。 -
組み込みデフォルト
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 を表示します。
権限モードを切り替える
各インターフェースには、セッション中に権限モードを切り替えるための独自のコントロールと、新しいセッションが開始する権限モードを選択するための独自の方法があります。Claude にチャットで権限モードを変更するよう求めることは機能しません。インターフェースを選択して、そのコントロールを確認してください。
セッション中: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 で機能します。
セッション中:プロンプトボックスの下部にあるモード指示器をクリックします。このページのモードに対して以下のラベルを使用します。
| UI ラベル | モード |
|---|---|
| Manual | default |
| Edit automatically | acceptEdits |
| Plan | plan |
| Auto | auto |
| Bypass permissions | bypassPermissions |
デフォルトとして:権限モード会話が開始するようにピンするには、VS Code ユーザー設定で claudeCode.initialPermissionMode を default、manual、acceptEdits、plan、または bypassPermissions に設定します。設定は auto を受け入れません。Auto で開始するには、設定を解除したままにして、以下の項目 2 で説明されているようにモード指示器から Auto を 1 回選択します。拡張機能は以下の最初に適用されるものでそれぞれの新しい会話を開始します。
claudeCode.initialPermissionMode- モード指示器から最後に選択したモード(Manual、Edit automatically、または Auto の場合)。Plan または Bypass permissions を選択すると、その会話のみに適用されます
- 管理設定または
~/.claude/settings.jsonからのpermissions.defaultMode。Pro、Max、Team プランで フィーチャーフラグ取得が利用可能な場合 - プラン、プロバイダー、組織設定の組み込みデフォルト
拡張機能は開始権限モードのためにプロジェクトの .claude/settings.json または .claude/settings.local.json を読み込むことはなく、項目 3 の条件を満たさない会話ではすべての設定ファイルを読み込みません。claudeCode.claudeProcessWrapper が設定されている場合、項目 3 と 4 も適用されません。それらの会話は、項目 1 または項目 2 が権限モードを設定しない限り Manual で開始します。
Auto は auto モードが利用可能な場合、モード指示器に表示されます。
Bypass permissions には拡張機能設定の Allow dangerously skip permissions トグルが必要です。それなしでは、権限モードは指示器に表示されず、項目 1 または項目 3 からの bypassPermissions 値は会話を Manual で開始します。同様に、auto モードが利用できない場合、項目からの Auto は会話を Manual で開始します。
拡張機能固有の詳細については、VS Code ガイドを参照してください。
JetBrains プラグインは IDE ターミナルで Claude Code を実行するため、権限モードの切り替えは CLI と同じように機能します。Shift+Tab を押してサイクルするか、起動時に --permission-mode を渡します。
セッション中:Code タブで、送信ボタンの横にあるモードセレクターを使用します。すべてのモードがセレクターに表示されるわけではありません。
- Auto:auto モードが利用可能な場合に表示されます
- Bypass permissions:Pro と Max プランの Desktop 設定で Allow bypass permissions mode トグルが必要です。Team と Enterprise プランでは、組織ポリシーがそれを制御します
Cowork タブはこれらのモードを使用しません。Cowork には独自の権限モードがあり、別々に有効化され、Cowork タブはアカウントのデフォルトを超えるモードが有効化されるまでモードセレクターを表示しません。Cowork ドキュメントを参照してください。
Desktop 固有の詳細については、Desktop ガイドの 権限モードを選択するを参照してください。
デフォルトとして:設定で defaultMode を設定します。デスクトップアプリは CLI と同じ設定ファイルを読み取り、新しいローカルセッションに権限モードを適用します。
モードセレクターで選択したモードはフォルダごとに記憶され、そのフォルダの defaultMode より優先されます。Plan は例外です。それを選択すると現在のセッションのみに適用されます。
defaultMode が設定ファイルのどこに行くかについては、異なる権限モードで開始するの例を参照してください。
claude.ai/code のプロンプトボックスの横またはモバイルアプリのモードドロップダウンを使用します。権限プロンプトは承認のために claude.ai に表示されます。どのモードが表示されるかはセッションが実行される場所によります。
- Claude Code on the webのクラウドセッション:Edit automatically、Plan、Auto。Edit automatically は
defaultモードに対応します。クラウドセッションはモードに関係なくファイル編集を事前承認するため、ドロップダウンは Manual の代わりに Edit automatically を表示します。設定からのdefaultMode: "acceptEdits"は依然として尊重されます。Auto モードは組織がそれを許可し、選択されたモデルがそれをサポートする場合にのみ表示されます。Bypass permissions は利用できません。 - ローカルマシンの Remote Controlセッション:Manual、Edit automatically、Plan。アプリから Auto または Bypass permissions を選択することはできません。
- Bypass permissions を除き、ドロップダウンはローカルセッションが実行されているモードを表示します。これにはターミナルから設定されたモードが含まれ、アプリまたはターミナルでモードが変更されると更新されます。セッションは Bypass permissions を claude.ai に報告することはないため、ターミナルからそれに切り替えてもドロップダウンに表示される内容は変わりません。
- デスクトップアプリまたは VS Code 拡張機能でホストされるセッションは、アプリで発生するのと同じように権限モード変更を claude.ai に報告します。
- v2.1.202 より前では、
/remote-controlまたはclaude --remote-controlで接続されたセッションはモードをまったく報告しなかったため、claude.ai とモバイルアプリはセッションが実行されていないモードを表示する可能性がありました。不一致はラベルのみに影響しました。Claude Code は権限プロンプトをセッションの実際のモードから生成し、それらは依然としてアプリに表示されて承認されました。
Remote Control の場合、ローカルマシンを実行するセッションは claude.ai アカウントでサインインする必要があります。API キーはサポートされていません。ローカルセッションを起動するときに開始権限モードを設定することもできます。
claude remote-control --permission-mode acceptEdits
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 permissions が利用可能なセッションを除き、編集は計画を承認するまでブロックされたままです。
auto モードが利用可能で useAutoModeDuringPlan 設定がオンの場合(デフォルト)、分類器は計画中にシェルコマンドをレビューし、プロンプトの代わりに承認します。承認されたコマンドは実行され、拒否されたコマンドはブロックされます。そうでない場合、読み取り専用コマンドの外側のコマンドはプロンプトが表示されます。これはサンドボックスの auto-allow モードが有効な場合も含まれます。bypass permissions が利用可能なセッションでは、分類器もプロンプトも計画コマンドに適用されません。bypassPermissions モードですべてのチェックをスキップするは、計画中に依然としてプロンプトが表示される少数のものをカバーしています。v2.1.212 から v2.1.217 では、bypass permissions のないセッションは、auto モードが利用可能かどうかに関係なく、読み取り専用セット外のすべてのコマンドをプロンプトしました。
Shift+Tab を押すか、単一のプロンプトに /plan をプレフィックスして計画モードに入ります。CLI から計画モードで開始することもできます。
claude --permission-mode plan
計画モードを終了するには Shift+Tab を再度押し、計画を承認しません。
計画をレビューして承認する
計画の準備ができたら、Claude はそれを提示し、どのように進めるかを尋ねます。そのプロンプトから以下を選択できます。
- Yes, and use auto mode:承認して auto モードで開始します。auto モードが利用できない場合、このオプションは Yes, auto-accept edits と表示されます。bypass permissions が有効な状態でセッションを開始した場合、オプションは Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session と表示されます。
- Yes, manually approve edits:承認して各編集を手動でレビューします。
- No, keep planning:計画モードにとどまり、Claude に何を変更するかを伝えます。
計画を承認すると、計画モードを終了し、セッションを各承認オプションが説明する権限モードに切り替えるため、Claude は編集を開始します。再度計画するには、Shift+Tab で計画モードに戻るか、次のプロンプトに /plan をプレフィックスしてください。
Ctrl+G を押して、提案された計画をデフォルトのテキストエディタで開き、Claude が進める前に直接編集できます。showClearContextOnPlanAcceptが有効な場合、リストは計画コンテキストを最初にクリアするオプションを取得します。
計画を受け入れると、セッションに生成されたタイトルが計画に基づいて付与されます。ただし、セッションに既に名前を付けている場合を除きます。
計画モードをデフォルトとして設定する
プロジェクトのターミナルセッションのデフォルトとして計画モードを設定するには、.claude/settings.json で defaultMode を plan に設定します。異なる権限モードで開始するの例が示すように配置します。VS Code 拡張機能が開始する会話はプロジェクト設定を開始権限モードに読み込みません。そこで、VS Code ユーザー設定で claudeCode.initialPermissionMode を plan に設定します。
auto モードで権限プロンプトをなくす
Auto モードでは Claude はルーチンの権限プロンプトなしで実行できます。別の分類器モデルはアクション実行前にアクションをレビューし、リクエストを超えてエスカレートするもの、認識されないインフラストラクチャをターゲットにするもの、または Claude が読んだ敵対的なコンテンツによって駆動されているように見えるものをブロックします。明示的な ask ルールは依然としてプロンプトを強制します。
Pro、Max、Team プランでは、auto モードは組み込み開始権限モードです。
分類器はまた、Claude が SendMessageで別のエージェントに送信する各メッセージをレビューします。プレーンテキストまたは構造化 agent teamメッセージかどうかに関係なく、auto モードと 分類器がコマンドをレビューする計画モードの両方で、Claude Code がそれを配信する前にレビューします。送信レビューには Claude Code v2.1.222 以降が必要です。
分類器はまた、rm と rmdir の削除が重要なパスをターゲットにしている場合(rm -rf / や rm -rf ~ など)をレビューして承認またはブロックします。これはコマンドまたはプロセス置換内にある削除も含まれます。
Auto モードはまた Claude に明確化の質問を停止せずに作業を続けるよう促します。ただし、Claude はプロンプトまたはスキルが明示的にそれに依存する場合は依然として質問します。権限プロンプトを保持しながらより強い自律的な動作を取得するには、代わりに プロアクティブ出力スタイルを設定してください。
Auto モードは権限プロンプトを減らしますが、安全性を保証しません。一般的な方向を信頼するタスクに使用し、機密操作のレビューの代わりとしては使用しないでください。
Auto モードはアカウントがこれらすべての要件を満たす場合にのみ利用可能です。
- プラン:すべてのプラン。
- 組織:Team と Enterprise では、auto モードはデフォルトで利用可能です。管理者は 管理設定で
permissions.disableAutoModeを"disable"に設定することでそれをオフにできます。 - モデル: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 モードを利用不可と報告する場合、最初にこれらの要件と設定ファイルが disableAutoModeを設定しているかどうかを確認してください。Anthropic はまた、サーバー側で auto モードをオフにしたか、サーバーがアカウントに対して auto モードを拒否した可能性があります。どちらかの回答を受け取ったセッションは、セッションが終了するまで auto モードをオフに保つため、後で新しいセッションを開始してください。
モデルに名前を付けて auto モードが「アクションの安全性を判断できない」と言う別のメッセージは、分類器リクエストが失敗したことを意味します。その失敗は通常一時的ですが、Amazon Bedrock では、アカウントが名前付きモデルを呼び出すことができるまで繰り返される可能性があります。原因と対処方法については、エラーリファレンスを参照してください。
設定で defaultMode: "auto" を設定し、ターミナルセッションが Manual モードでエラーなしで開始する場合、設定は .claude/settings.json または .claude/settings.local.json にある可能性があります。auto はこれらのファイルから有効にならないため、~/.claude/settings.json に移動してください。VS Code 拡張機能が開始した会話の場合、代わりに 権限モードを切り替えるの拡張機能独自のリストを確認してください。
Bedrock、Agent Platform、または Foundry で auto モードを有効にする
Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および署名済み Claude apps gatewayセッションでは、auto モードはデフォルトで Shift+Tab サイクルに表示されます。サイクルに表示されることはセッションが開始するモードを変更しません。ターミナルセッションはユーザーの defaultModeで開始します。これは変更しない限り Manual です。VS Code 拡張機能の会話は、設定を変更しない限り Manual で開始します。これらのプロバイダーでは Claude Sonnet 5、Opus 4.7 以降、および Fable モデルのみがサポートされています。
Auto モードをデフォルトの開始権限モードにするには、ユーザーまたは管理設定で "permissions": {"defaultMode": "auto"} を設定します。VS Code 拡張機能が開始する会話では、代わりにモード指示器から Auto を選択します。権限モードを切り替えるは、その選択より優先されるものをカバーしています。
/doctorチェックアップは、Anthropic API と同じ方法でこれらのプロバイダーでこのユーザー設定デフォルトを提案します。
開発者が auto モードを使用するのを防ぐには、管理設定で disableAutoMode を "disable" に設定します。これは auto を Shift+Tab サイクルから削除し、--permission-mode auto で開始されたセッションは Manual で開始します。既に auto モードで実行されているセッションは、管理者がデプロイしたソースから設定に到達すると、それを終了し、auto mode disabled by settings を表示します。v2.1.251 より前では、実行中のセッションはセッションが終了するまで auto モードを保持していました。
v2.1.158 から v2.1.206 では、auto モードはこれらのプロバイダーでオフでした。CLAUDE_CODE_ENABLE_AUTO_MODE=1 を設定するまで。Claude Code はこれらのプロバイダーで defaultMode: "auto" を無視していました。変数も設定されていない限り。変数は互換性のために依然として受け入れられ、v2.1.207 以降は効果がありません。
分類器がデフォルトでブロックするもの
分類器は作業ディレクトリとセッション開始時に設定されたリモートを信頼します。セッション中に git remote add または git remote set-url で追加またはリポイントされたリモートは信頼されず、信頼できるインフラストラクチャを設定するまで他のすべては外部として扱われます。v2.1.200 より前では、セッション中に追加されたリモートも信頼されていました。
デフォルトでブロック:
curl | bashのようなコードのダウンロードと実行- 機密データを外部エンドポイントに送信
- 本番環境へのデプロイとマイグレーション
- クラウドストレージでの大量削除
- IAM またはリポジトリ権限の付与
- 共有インフラストラクチャの変更
- セッション前に存在していたファイルを不可逆的に破壊
- フォースプッシュ
- セッション中に実行されるシークレットまたは機密データを送信するコミットまたはプッシュ。または、デプロイが公開するものを広げる変更。これはシークレットを既に受け取らない宛先に渡す 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 ハーネスもカバーします- Claude in Chromeブラウザアクション。ページコンテンツ、クッキー、または認証情報をオリジン外に送信する可能性があります
Claude Code v2.1.198 以降はこれらもデフォルトでブロックします。
/tmp、$TMPDIR、または別の共有スクラッチまたはキャッシュディレクトリ内のファイルを、特定の名前付きパスではなく、ワイルドカード、glob、または年齢フィルターで削除- 自身のメッセージがその受信者にそれらの詳細を認可しなかった場合、送信、アップロード、公開、または他の人または共有システムに書き込まれるコンテンツに機密詳細を含める。PR およびイシュー本文、コミットメッセージ、およびコメントは、リポジトリが信頼境界外またはパブリックである場合、この種の送信コンテンツとしてカウントされます。組織独自のパブリックリポジトリを含む。内部ファイルパス、コード名、メールやアカウント識別子などのライブ API レスポンスデータ、およびインフラストラクチャ識別子は機密詳細としてカウントされます。PR、イシュー、およびコミットメッセージのスコープには Claude Code v2.1.200 以降が必要です。PR またはイシュー本文内のメールアドレス、アカウントまたは組織識別子、または使用メトリックなどのライブ個人データは、リポジトリの可視性または信頼境界に関係なく、それらの詳細と受信者に名前を付ける必要があります。そのチェックには 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でプッシュ先を変更。新しいリモートに名前を付けた場合を除く- パブリックであることが知られているリポジトリにシークレットをプッシュ、またはそのリポジトリ独自の作業の一部ではない他の機密または機密材料をプッシュ。ドットファイルリポジトリ独自の主題は個人情報または信頼されたデータの唯一の例外であり、プライベートリポジトリからのコンテンツがパブリックサーフェスに到達することは同じ方法でブロックされます。両方の改善には 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 が削除をコマンドに書き込まれた解決済みリテラルパスで再実行するときにクリアされます。分類器が解決できるターゲットを持つ削除は影響を受けません。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にリストされている信頼できるドメイン、バケット、サービスへのデータ送信。これはデータフローのみをカバーし、同じインフラストラクチャ上の破壊的または認証情報操作ではありません- Claude in Chromeの信頼できる内部ドメイン、localhost、または名前を付けた URL へのナビゲーション
サンドボックスネットワークアクセスリクエストはデフォルトで許可されるのではなく、分類器を通じてルーティングされます。v2.1.198 以降、分類器はネットワークホストとポートの判定を再利用し、接続のたびに再実行するのではなく。
- 許可は新しいコンテンツが会話に入るまで再利用され、その時点でそのホストが再度チェックされます
- Claude Code v2.1.234 以降は、会話がコンテキストウィンドウを超えて成長したことによる拒否を再利用します。コンパクションが分類器が読むものを縮小するまで、または新しいコンテンツが会話に入るまで。Claude Code はホストを再度チェックします
- 分類器がリクエストを評価することで到達した拒否は、インタラクティブ CLI のターンの間続きます。非対話的モードと Agent SDK セッションでは、Claude Code はターン境界がないため、ランの残りの間その拒否を再利用します
- 権限モードまたはルールを変更すると、すべてのキャッシュされた判定がドロップされます
claude auto-mode defaults を実行して完全なルールリストを JSON として印刷します。日常的なアクションがブロックされている場合、管理者は autoMode.environment 設定を通じて信頼できるリポジトリ、バケット、サービスを追加できます。auto モードを設定を参照してください。
リポジトリの任意のブランチへのプッシュおよびリクエストに一致するプルリクエストの作成はプロンプトなしで実行されます。ただし、プッシュまたはプルリクエストがブロックリストに該当する場合(シークレットまたは機密データがリポジトリを離れる場合、またはプルリクエストが異なるリポジトリまたは組織をターゲットにする場合など)を除きます。auto モードにとどまりながらこれらのアクション前に人間のチェックポイントを要求するには、permissions.ask ルールを追加します。一般的な境界を参照してください。
作業ディレクトリ外の最初の読み取り
permissions.blockReadsOutsideWorkingDirectoriesがオフの間、ファイル読み取りは auto モードでプロンプトなしで実行されます。作業ディレクトリ外のパスで Read、Grep、または Glob ツールを初めて使用するとき、Claude Code はそれらの読み取りを許可し続けるかどうかを尋ねます。
非対話的 -p 実行またはバックグラウンドセッションではプロンプトが表示されません。読み取りはそれ以前と同じように実行されます。
あなたが答えることに関係なく、Claude は作業を続けます。
- Keep allowing:読み取りが実行され、作業ディレクトリ外の後続の読み取りはそれ以前と同じように実行され、Claude Code はあなたの回答を記録するため、プロンプトは再度表示されません
- Block from now on:読み取りが拒否され、Claude Code はユーザー設定で
permissions.blockReadsOutsideWorkingDirectoriesをtrueに設定します。これにより、ファイルツールはすべての後続セッションおよびすべての権限モードでそのような読み取りを拒否します。後で Claude がそのようなパスを読み取ることを許可するには、/add-dirでそのディレクトリを追加するか、設定を削除します - Ask again next time:読み取りが拒否され、作業ディレクトリ外の次の読み取りは再度プロンプトを表示します
会話で述べる境界
分類器は会話で述べる境界をブロック信号として扱います。Claude に「プッシュしないで」または「デプロイ前にレビューを待って」と言う場合、分類器はデフォルトルールが許可する場合でも一致するアクションをブロックします。境界は後のメッセージで解除するまで有効です。Claude 独自の判断が条件が満たされたことは解除しません。
境界はルールとして保存されません。分類器はチェックのたびにトランスクリプトから再読み込みするため、コンテキストコンパクションが述べたメッセージを削除する場合、境界は失われる可能性があります。ハード保証の場合、代わりに deny ルールを追加します。
auto モードがフォールバックする場合
Auto モードがセッションのアクションを承認できない場合、ケースに依存します。
- ブロックされたアクション:Claude Code は通知を表示し、
/permissionsの Recently denied タブの下にアクションをリストします。そこでrを押して手動承認で再試行できます。分類器がアクションに判定を出さない場合。auto モード以外の安全チェックが分類器独自のリクエストを拒否したか、その応答が解析されなかったため、Claude Code は通知または Recently denied エントリなしでアクションを拒否します。 - 繰り返されるブロック:分類器がアクションを 3 回連続でブロックするか、合計 20 回ブロックする場合、auto モードは一時停止し、Claude Code はプロンプトを再開します。プロンプトされたアクションを承認すると auto モードが再開されます。これらのしきい値は設定不可です。許可されたアクションは連続カウンターをリセットし、合計カウンターはセッション中に保持され、独自の制限がフォールバックをトリガーする場合にのみリセットされます。Claude Code は、auto モード以外の安全チェックが分類器独自のリクエストを拒否する場合、拒否をどちらのしきい値にもカウントしません。リンクされたエントリは Claude Code がそれらの拒否を処理する方法をカバーしています。
- プロンプトできないセッション:
--permission-prompt-toolのない 非対話的-p実行にはプロンプトするユーザーがいません。繰り返されるブロックがしきい値に到達する場合、アクションは実行されず、Claude は作業を続けます。auto モード以外の安全チェックが分類器のリクエストを拒否する場合も同じです。Claude Code はどちらのケースでも実行を停止しません。 - チェック中のモード切り替え:分類器チェックが保留中の間に権限モードを切り替える場合、Claude Code は新しいモードが要求しなかった判定を破棄します。代わりに、プロンプトが表示されるか、
dontAskモードでアクションが自動拒否されます。
繰り返されるブロックは通常、分類器がインフラストラクチャについてのコンテキストが不足していることを意味します。/feedback を使用して誤検知を報告するか、管理者に 信頼できるインフラストラクチャを設定するよう依頼してください。
1. [allow、ask、または deny ルール](/docs/ja/permissions#manage-permissions)に一致するアクションは即座に解決されます。ただし、[保護されたパス](#protected-paths)への書き込みは、allow ルールが一致する場合でも分類器にルーティングされます。`rm` と `rmdir` の削除が[重要なパス](#critical-paths)をターゲットにしている場合も Claude Code v2.1.218 以降で分類器にルーティングされます。[`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool)でマークされた MCP ツールは、allow ルールが一致する場合でも直接プロンプトを表示し、[組織が `ask`](/docs/ja/mcp#organization-controls-on-connector-tools)に設定したコネクタツールも同じです。コンテンツスコープの ask ルール(`Bash(git push *)` など)は権限プロンプトにフォールバックします
2. 読み取り専用アクションと作業ディレクトリ内のファイル編集は自動承認されます。[保護されたパス](#protected-paths)への書き込みと[作業ディレクトリ外の最初の読み取り](#first-read-outside-the-working-directories)を除く。これはプロンプトを表示します
3. その他すべては分類器に送られます。ステップ 1 で直接プロンプトを表示するコネクタツールと`requiresUserInteraction` MCP ツールは分類器に到達しません。そのため、組織が必要とする承認も同意ステップも自動承認されません
4. 分類器がブロックする場合、Claude は理由を受け取り、別のアプローチを試みます。ほとんどのセッションでは、理由は書かれた説明ではなく固定テキスト `Blocked by classifier` です。Claude Code v2.1.208 以降。[拒否をレビュー](/docs/ja/auto-mode-config#review-denials)を参照してください
Auto モードに入ると、任意のコード実行を許可する広いルールが削除されます。
* ブランケット `Bash(*)` または `PowerShell(*)`
* `Bash(python*)` のようなワイルドカードインタープリター
* パッケージマネージャー実行コマンド
* `Agent` allow ルール
* [`Monitor`](/docs/ja/tools-reference#monitor-tool) allow ルール。Claude Code は Monitor コマンドをシェルを通じて実行するため
`Bash(npm test)` のような狭いルールは引き継がれます。Claude Code は削除されたルールを auto モードを終了するときに復元します。v2.1.236 より前では、Claude Code は auto モードで `Monitor` allow ルールを有効なままにしていたため、ツール全体に一致するルールは分類器レビューなしで Monitor コマンドを承認していました。
Claude Code はまた、コミットされていない作業を破棄するコマンド(`git reset --hard` または `rm -rf` など)の前に `git status` を実行し、ステージされた、変更された、または追跡されていない作業が存在するかどうかを分類器に表示します。Claude Code はリポジトリの git 設定が `status.showUntrackedFiles=no` を設定している場合でも、そのチェックで追跡されていないファイルを報告します。
分類器はユーザーメッセージ、ファイル読み取りや検索などの読み取り専用ルックアップ以外のツール呼び出し、および CLAUDE.md コンテンツを見ます。ツール結果は削除されるため、ファイルまたは Web ページの敵対的なコンテンツはそれを直接操作することはできません。[PostToolUse フック](/docs/ja/hooks#annotate-a-result-for-the-auto-mode-classifier)の `classifierContext` フィールドでコールの結果に注釈を付けることができます。分類器はそれをアプリケーション提供コンテキストとして読みます。
別のサーバー側プローブは受信ツール結果をスキャンし、Claude がそれを読む前に疑わしいコンテンツにフラグを立てます。これらのレイヤーがどのように連携するかについての詳細については、[auto モードのお知らせ](https://claude.com/blog/auto-mode)および [エンジニアリング深掘り](https://www.anthropic.com/engineering/claude-code-auto-mode)を参照してください。
auto モードがサブエージェントを処理する方法
分類器は サブエージェントの作業を 3 つのポイントでチェックします。
- サブエージェント開始前に、委譲されたタスク説明が評価されるため、危険に見えるタスクは生成時にブロックされます。
- サブエージェント実行中、その各アクションは親セッションと同じルールで分類器を通過し、サブエージェントのフロントマターの任意の
permissionModeは無視されます。 - サブエージェント完了時、分類器はその完全なアクション履歴をレビューします。リターンチェックが懸念事項にフラグを立てた場合、セキュリティ警告がサブエージェントの結果の前に付加されます。別の API 安全チェックがレビューリクエスト自体を拒否する場合、Claude Code は依然としてサブエージェントの結果を返し、作業が未レビューで信頼されていないものとして扱うべきであることを警告する前に付加されます。
ステップ 1 には Claude Code v2.1.178 以降が必要です。以前のバージョンはステップ 2 と 3 で分類器を適用しましたが、サブエージェント開始前にタスク説明を評価しませんでした。
コストとレイテンシ
分類器は /model 選択ではなく Claude Sonnet 5 でデフォルトで実行されます。Anthropic がサーバー側で設定する分類器モデルがそのデフォルトより優先されます。セッションのモデルが Claude Sonnet 4.6 の場合、または availableModelsが Sonnet 5 を除外する場合、分類器はセッションのモデルで実行されます。または Fable モデルで実行する場合は Opus モデルで。Anthropic API 以外のプロバイダーでは、その Opus フォールバックはプロバイダーのデフォルト Opus モデルです。
セッションの最初の auto モードリクエストは Sonnet 5 デフォルトを検証します。リクエストが成功する場合、Sonnet 5 はセッションの分類器モデルのままです。モデルが利用できないため失敗する場合、セッションはフォールバックを使用します。その検証が解決した後、分類器のモデルはセッション中に変更されません。
Enterprise プランおよび Claude API を使用するアカウント、Claude Platform on AWS、Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では、分類器呼び出しはトークン使用量にカウントされます。各チェックはトランスクリプトの一部と保留中のアクションを送信し、実行前にラウンドトリップを追加します。保護されたパス外の読み取りと作業ディレクトリ編集は分類器をスキップするため、オーバーヘッドは主にシェルコマンドとネットワーク操作から発生します。
分類器はサンドボックスネットワーク判定をホストとポートに対して再利用するため、同じホストへの繰り返される接続は各チェックを追加しません。分類器がデフォルトでブロックするものは許可と拒否がどのくらい続くかを説明しています。
dontAsk モードで事前承認済みツールのみを許可する
dontAsk モードを設定すると、Claude Code はプロンプトが表示されるすべてのツール呼び出しを自動的に拒否します。Claude は permissions.allow ルール、読み取り専用 Bash コマンド、および PreToolUse フックによって承認された呼び出しに一致するアクションのみを実行します。このモードは CI パイプラインまたは Claude が実行を許可されているものを事前に定義する制限環境で使用します。セッションは入力を待つことはありません。このモードがアクティブな間、ステータスバーに ⏵⏵ don't ask on が表示されます。
Claude Code は明示的な ask ルールに一致するプロンプトするのではなく呼び出しを拒否します。また、組み込みの AskUserQuestion ツールと 組織が askに設定したコネクタツールも拒否します。これは allow ルールが一致する場合でも同じです。requiresUserInteractionでマークされた MCP ツールも同じ方法で拒否されます。これは、その承認カードがこのモードが収集することのない回答を必要とするためです。これには Claude Code v2.1.199 以降が必要です。
rm と rmdir の削除が重要なパスをターゲットにしている場合(rm -rf / や rm -rf ~ など)は、allow ルールが一致する場合でも、または PreToolUse フック "allow" が許可する場合でも拒否されます。
Web 上の Claude Codeは設定ファイルから defaultMode: "dontAsk" を無視します。bypassPermissionsの詳細を参照してください。
フラグで起動時に設定します。
claude --permission-mode dontAsk
bypassPermissions モードですべてのチェックをスキップする
bypassPermissions モードは権限プロンプトと安全チェックを無効にするため、ツール呼び出しは即座に実行されます。これには保護されたパスへの書き込みが含まれます。
アクションがどのモードも自動承認しないは依然としてこのモードでプロンプトを表示します。
2 つのクロスセッションメッセージングセーフガードはこのモードおよび bypass permissions が利用可能なプラン モード セッションで依然として適用されます。
- このマシンを超えたセッションへのメッセージの
isolatePeerMachines承認プロンプトは依然として表示されます。 crossSessionInbound値が適用されない場合、Claude Code はセッションの別のものからのインバウンドメッセージを承認のために保持し、送信セッションが権限プロンプトもバイパスしていることを識別する場合にのみ確認なしで配信します。権限モードを終了する間、メッセージが保持されている場合、Claude Code はインバウンドルールを再適用し、それらが受け入れるすべての保持メッセージを配信します。
bypass permissions が利用可能なセッションでは、Claude Code は計画モードのブロックも実行しません。Claude はプランなしで編集するよう指示されたままですが、計画中に試みるファイル編集またはシェルコマンドはプロンプトなしで実行されます。明示的な ask ルールおよび rm と rmdir の削除が重要なパスをターゲットにしている場合は依然としてプロンプトを表示します。
このモードはコンテナ、VM、またはインターネットアクセスのない dev container のような隔離環境でのみ使用してください。Claude Code はホストシステムに損害を与えることができません。
有効にするフラグの 1 つで開始したセッションから 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 container設定を使用してください。これは Claude Code を非 root ユーザーとして実行します。
Web 上の Claude Codeは設定ファイルから defaultMode: "bypassPermissions" または "dontAsk" を尊重しません。そのため、リポジトリのチェックイン済み設定はクラウドセッションを bypass-permissions モードで開始することはできません。設定は無視され、セッションはモードドロップダウンに表示されるモードで開始されます。権限モードを切り替えるでクラウドセッションが提供するモードを参照してください。
保護されたパス
パスの小さなセットへの書き込みは、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.yamlgradle-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"/* のようなシェル変数の直下のグロブまたは末尾のスラッシュも重要なパスの削除として扱います。変数が空の場合、コマンドはファイルシステムルートからの削除になるためです。
$(...) またはバッククォート、あるいはプロセス置換 <(...) を使用してコマンド置換内に削除を隠すことは、チェックをスキップしません。Claude Code は、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 を実行