利用可能なモード
各モードは、利便性と監視のバランスを異なる方法で取ります。以下の表は、各モードで Claude がパーミッション プロンプトなしで実行できることを示しています。Manual モードはその設定値であるdefault の下に表示されます。
すべてのアクションを確認するモードは、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削除。許可ルールまたはPreToolUsehook"allow"では承認されません - クロス セッション メッセージング セーフガード
-
permissions.blockReadsOutsideWorkingDirectoriesがオンの場合、作業ディレクトリ外の読み取り:認識されたファイル読み取り Bash コマンドおよび auto モードおよびbypassPermissionsモードでもサンドボックス外で実行するために承認が必要な unsandboxed retry。Claude Code v2.1.257 以降が必要です シェル パーサーが追跡できないコマンド(例えば、複数回ディレクトリを変更したり、サブシェルを実行したりするコマンド)は、外部パスを指定しない場合でも同じ方法でプロンプトが表示されます。このプロンプトは、コマンドが sandbox で実行され、sandbox がブロックを強制する場合には適用されません。
一般的なセットアップ
権限モードは Claude がアクションの前に確認するかどうかを決定し、Bash サンドボックスと外側の隔離境界は、アクションが実行されると何に到達できるかを決定します。以下の各行は、目標をフラグまたは設定と、必要な隔離とペアにします。これは開始点です。利用可能なモードは、各モードでプロンプトなしで実行されるものをリストしています。
Bash サンドボックスと auto モードは独立して機能し、Sandbox modesの下にリストされている例外を除いて組み合わさります。完全な相互作用については、サンドボックスが権限と権限モードにどのように関連するかおよび隔離が権限モードにどのように関連するかを参照してください。
セッションが開始するモード
ターミナルで新しいセッションを開始すると、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 モードで開始します。他の値はすべての設定ファイルから適用されます。 - 組み込みデフォルト
auto デフォルトには、macOS、Linux、WSL では Claude Code v2.1.228 以降が必要で、ネイティブ Windows では v2.1.233 以降が必要です。以前のバージョンでは、組み込みデフォルトは Manual です。
組み込みデフォルトは、Claude Code の実行方法、プラン、および Claude Code がフィーチャーフラグを取得できるかどうかに依存します。セッションに一致する最初の行が適用されます。表は、ターミナルまたは VS Code 拡張機能を通じて開始するセッションをカバーしています。デスクトップアプリと claude.ai については、権限モードを切り替えるの Desktop と Web タブを参照してください。
フィーチャーフラグ取得がオフの場合、または インストールまたはアップグレード後の最初のセッションでフラグがまだ到達していない場合、VS Code 拡張機能は開始権限モードを選択するときにすべての設定ファイルを無視します。
フラグ、設定ファイル、または組み込みデフォルトが
auto を選択しても、auto モードがセッションで利用できない場合、Claude Code はセッションを Manual で開始します。Auto モードは、セッションが 利用可能性要件を満たさない場合(設定ファイルがそれをオフにするか、サポートしていないモデルなど)、または Anthropic がサーバー側で一時的にそれをオフにした場合に利用できません。
組み込みデフォルトが初めてセッションを auto モードで開始するとき、Claude Code はこのページにリンクする通知を表示します。
- ターミナルでは、セッションの上部に 1 回
- VS Code 拡張機能では、新しい会話画面のカードとして、却下するまで表示されます
~/.claude/settings.json が auto 以外の defaultMode を設定し、他の設定ファイルが設定しない場合、セッションはそのモードで開始し続けます。Claude Code はターミナルまたは VS Code 拡張機能で 1 回、設定を auto モードに変更するかどうかを尋ねます。却下した場合、設定はそのままです。
異なる権限モードで開始する
1 つのセッション、マシン上のすべてのセッション、プロジェクト内、または組織内のすべてのセッションの開始権限モードを設定できます。複数の設定ファイルがpermissions.defaultMode を設定する場合、設定の優先順位が決定するため、プロジェクトまたは管理値は ~/.claude/settings.json より優先されます。実行中のセッションの権限モードを変更するには、権限モードを切り替えるを参照してください。
この例は、マシン上のすべてのターミナルセッションを Manual モード(その設定値は
default)で開始するようにします。~/.claude/settings.json に保存します。
⏸ manual mode on を表示します。
権限モードを切り替える
各インターフェースには、セッション中に権限モードを切り替えるための独自のコントロールと、新しいセッションが開始する権限モードを選択するための独自の方法があります。インターフェースを選択して、そのコントロールを確認してください。- CLI
- VS Code
- JetBrains
- Desktop
- Web and mobile
セッション中:デフォルトとして:異なる権限モードで開始するで説明されているように、必要なスコープで
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 モードは依然としてそれらのプロンプトを表示するため、切り替えてもそれらは削除されません。起動時:権限モードをフラグとして渡します。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 に変更を研究して提案するよう指示しますが、実際には変更を加えません。Claude はファイルを読み込み、シェルコマンドを実行して探索し、プランを作成しますが、ソースを編集しません。bypass 権限が利用可能なインタラクティブターミナルセッションを除き、編集はプランを承認するまでブロックされたままです。 オートモードが利用可能で、デフォルトでオンになっているuseAutoModeDuringPlan 設定がオンの場合、分類器はプランニング中にシェルコマンドをレビューしてプロンプトを表示する代わりに確認します。承認されたコマンドは実行され、拒否されたコマンドはブロックされます。それ以外の場合、組み込みの読み取り専用セット外のコマンドはサンドボックスのオートアロウモードが有効な場合を含めて承認を求めるプロンプトが表示されます。bypass 権限が利用可能なインタラクティブターミナルセッションでは、分類器もプロンプトもプランニングコマンドには適用されません。bypassPermissions モードですべてのチェックをスキップは、そこでもまだプロンプトが表示される少数のものをカバーしています。v2.1.212 から v2.1.217 では、bypass 権限のないセッションは、オートモードが利用可能かどうかに関わらず、読み取り専用セット外のすべてのコマンドについてプロンプトを表示していました。
プランモードに入るには、Shift+Tab を押すか、単一のプロンプトに /plan を付けます。CLI からプランモードで開始することもできます。
Shift+Tab をもう一度押してプランを承認せずにプランモードを終了します。
プランをレビューして承認する
プランの準備ができたら、Claude はそれを提示し、どのように進めるかを尋ねます。そのプロンプトから以下を選択できます。- はい、オートモードを使用する: 承認してオートモードで開始します。オートモードがセッションで利用可能でない場合(例えば、組織がそれをオフにした場合)、このオプションははい、編集を自動受け入れと表示されます。bypass 権限を有効にしてセッションを開始した場合、オプションは代わりにはい、このセッションで BYPASS PERMISSIONS(以降プロンプトなし)に切り替えると表示されます。
- はい、編集を手動で承認する: 承認して各編集を個別にレビューします。
- いいえ、プランニングを続ける: プランモードにとどまり、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 セッションでデフォルトで利用可能です。
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 以降は効果がありません。
サーバー側クラシファイアレビュー
自動モードでは、Claude Code はサーバーに決定順序が送信するアクションをレビューするよう要求できます。これはセッションのモデルリクエストの一部として行われ、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 以降が必要です
- サーバーがセッションをレビューしない: レスポンスがレビュー結果なしで完了するか、サーバーがこのセッションをレビューしないと答えます。最も一般的な原因は、LLM ゲートウェイまたはプロキシがレビューのリクエストまたは結果をドロップすることと、プラットフォーム、リージョン、または認証情報がまだサーバー側チェックを持たないことです。Claude Code は独自のクラシファイアリクエストにフォールバックします。そのフォールバックがセッションの残りの間保持されると、これらのリクエストが請求されるアカウントでクラシファイアリクエスト料金に関する通知を表示します。
- サーバーがアクションに対して判定を出さない: Claude Code はアクションを拒否し、レビューなしで実行しません。あらゆる接続で、これはレスポンスがレビュー結果の到着前に終了するか、結果が Claude Code が読み取れない形式で到達する場合に発生します。レスポンスを短縮またはリライトする LLM ゲートウェイまたはプロキシはどちらかを引き起こす可能性があります。Anthropic API への直接接続では、サーバーのチェックがアクション(例えば、タイムアウト)に失敗する場合にも発生します。サーバーが安全判定を返さなかったは拒否メッセージ、拒否が繰り返される場合に何が起こるか、および対処方法をカバーしています。
CLAUDE_CODE_AUTO_MODE_SERVER=0を設定します。Anthropic API への直接接続では、変数には Claude Code v2.1.281 以降が必要です。1 に設定すると、そこでサーバーレビューをオンにします。セッションがまだそれを持たない場合(例えば、-p または Agent SDK セッション)。CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 も設定していない限り。CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定し、CLAUDE_CODE_AUTO_MODE_SERVER を設定しないままにする場合、Claude Code もサーバーに質問することを停止します。
クラシファイアがデフォルトでブロックするもの
クラシファイアは、作業ディレクトリとセッション開始時にそれに対して構成されたリモートを信頼します。セッション中にgit remote add または git remote set-url で追加またはリポイントされたリモートは信頼されず、信頼できるインフラストラクチャを構成するまで、他のすべてが外部として扱われます。v2.1.200 より前では、セッション中に追加されたリモートも信頼されていました。
デフォルトでブロック:
curl | bashのようなコードのダウンロードと実行- 外部エンドポイントへの機密データの送信
- 本番環境へのデプロイとマイグレーション
- クラウドストレージでの大量削除
- IAM またはリポジトリ権限の付与
- 共有インフラストラクチャの変更
- セッション前に存在していたファイルの不可逆的な破壊
- Force push
- 実行時にシークレットまたは機密データをリポジトリの外に送信するか、デプロイが公開するものを拡大する変更のコミットまたはプッシュ。これは、シークレットをまだ受け取っていない宛先にシークレットを渡す CI ワークフローまたはデプロイ構成、シークレットストアを読み取ってデータを送信するスクリプトまたはセットアップステップ、およびデプロイが公開するものを拡大する構成変更(レジストリ、可視性、アーティファクト、またはソースマップ設定など)をカバーします。チェックはすべてのブランチに適用され、リポジトリが公開されている場合でも適用され、コミットまたはプッシュがパイプラインをトリガーするかどうかに関係なく、コミットまたはプッシュされるときに発火します。クリアするには、コミットまたはプッシュだけでなく、実行効果に名前を付ける必要があります。v2.1.211 より前では、このチェックはデフォルトブランチにスコープされていました。そこへのプッシュは、機密コンテンツを含む場合、要求したものに対して隠蔽または誤表示されたコンテンツ、リポジトリの外からポーティングされたコンテンツ、またはリクエストしたレビューの周りをルーティングされたコンテンツを含む場合にブロックされました
git reset --hard、git checkout -- .、git restore .、git clean -fd、git stash drop、またはgit stash clear。クラシファイアはこれらがコミットされていない変更を破棄すると推定しますgit commit --amend。HEAD のコミットがこのセッションで作成されていない場合- v2.1.198 から、HEAD のコミットが既にプッシュされている場合の
git commit --amend。メッセージのみの言い換えはブロックされません。--amend -m。新しくステージされたものはなく、Claude がこのセッション中に作成したコミット上 terraform destroy、pulumi destroy、cdk destroy、またはterragrunt destroy。リソースを破壊するプランの適用
- シークレットマネージャーへの書き込み、または 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ブラウザアクション。ページコンテンツ、クッキー、または認証情報をオリジン外に送信する可能性があります
- ワイルドカード、glob、または年齢フィルタではなく、特定の名前付きパスによって
/tmp、$TMPDIR、または別の共有スクラッチまたはキャッシュディレクトリ内のファイルを削除 - 独自のメッセージがそれらの詳細をその受信者に対して認可しなかった場合、送信、アップロード、公開、または他の人または共有システムに書き込まれるコンテンツに機密詳細を含める。PR および issue 本文、コミットメッセージ、およびコメントは、リポジトリが信頼境界の外にあるか公開されている場合、組織自体の公開リポジトリを含む、この種のアウトバウンドコンテンツとしてカウントされます。内部ファイルパス、コード名、ライブ API レスポンスデータ(メールやアカウント識別子など)、およびインフラストラクチャ識別子は機密詳細としてカウントされます。PR、issue、およびコミットメッセージのスコープには Claude Code v2.1.200 以降が必要です。PR または issue 本文内のライブ個人データ(メールアドレス、アカウントまたは組織識別子、使用メトリックなど)には、リポジトリの可視性または信頼境界に関係なく、それらの詳細と受信者に名前を付ける必要があります。そのチェックには Claude Code v2.1.203 以降が必要です
- Claude Code 自体の tmux ペインにキーストロークを送信して、独自のインターフェースを駆動。クラシファイアはこれを Claude が独自の権限または監視を変更することとして扱います
- セキュリティ動作を保護するテストまたはアサーション(認証、アクセス制御、入力検証、またはサンドボックスなど)をコメントアウト、削除、または 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でのフォーク、またはサードパーティリポジトリへのプッシュ。その外部ターゲットに名前を付けない限り
- 機密ローカルストアからのコンテンツ、またはファイル名、パス、またはタイプが機密としてマークしているファイルからのコンテンツ。コミット、プッシュ、PR または issue テキスト、gist または paste、またはパッケージ公開に入る。ソースと宛先の両方に名前を付けない限り。セッショントランスクリプトと会話ログ、SSH キー、クラウド認証情報、ブラウザプロファイル、シェル履歴などの認証情報と構成ドットフォルダ、およびユーザーデータエクスポートはすべてカウントされ、リポジトリがプライベートであることはそれをクリアしません
- Claude Code セッショントランスクリプト、
~/.claude/projects/または構成ディレクトリの下の.jsonl履歴ファイルへの書き込み。シェルコマンドを通じて直接または間接的に。ルールはまた、Claude Code が独自のチェック用に各トランスクリプトエントリに追加するメタデータ行もカバーします。トランスクリプトの読み取りはブロックされません rm -rf "$VAR"またはRemove-Item -Recurse -Force $dirのような再帰的な force delete。ターゲットはシェル変数であり、会話でクラシファイアが見るどこにも割り当てられていません。値は以前のコマンド出力からのみ来ました。クラシファイアは決してそれを受け取らないため、クラシファイアは削除ターゲットを他の削除ルールに対して検証できません。ブロックは、削除されている正確なパスに名前を付けるか、Claude が解決されたリテラルパスが書き込まれたコマンドで削除を再実行するときにクリアされます。クラシファイアが解決できるターゲットを持つ削除は影響を受けません。Remove-Itemターゲットが裸の*または/*または\*で終わる場合、クラシファイアに到達しません。Claude Code はそれらを直接拒否します
169.254.169.254などのクラウドインスタンスメタデータエンドポイントから認証情報をリクエスト、またはマシン自体のサービスアカウントまたはノード ID でクラウド、クラスタ、またはレジストリコールを明示的に認証- トンネル、リバースシェル、または外部を指すようにリライトされたリゾルバーまたはプロキシ構成など、直接リクエスト以外のルートでパブリックホストに到達
- ノード証明書やノードのコンテナレジストリ認証など、タスクではなくホストに属する認証情報を読み取る
- Claude が開始しなかった兄弟コンテナ、ポッド、または VM、またはコンテナの下のノードに接続またはスキャン
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 が作成した正確なジョブの削除
- セキュリティ関連のコード、構成、および脅威モデルの読み取り、レビュー、または書き込み。タスクの一部として
- 同じマルチエージェントセッションで一緒に作業しているエージェント間のメッセージ
environmentにリストされている信頼できるドメイン、バケット、およびサービスへのデータ送信。これはデータフローのみをカバーし、同じインフラストラクチャ上の破壊的または認証情報操作ではありません- Chrome の Claude。信頼できる内部ドメイン、localhost、または指定した URL へのナビゲーション
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 はサーバーが判定を出さないアクションを拒否し、連続して 10 回のレスポンスで判定がない場合、ターンを停止します。サーバーが安全判定を返さなかったを参照してください。
- チェック中のモード切り替え: クラシファイアチェックが保留中に権限モードを切り替える場合、Claude Code は新しいモードが要求しなかった判定を破棄します。代わりにプロンプトされるか、
dontAskモードでアクションが自動拒否されます。
/feedback を使用して偽陽性を報告するか、管理者に信頼できるインフラストラクチャを構成させてください。
クラシファイアがアクションを評価する方法
クラシファイアがアクションを評価する方法
各アクションは固定の決定順序を通過します。最初に一致するステップが勝ちます。
- 許可、質問、または拒否ルールに一致するアクションは、これらの例外を除いて直ちに解決されます。
- 保護されたパスへの書き込みは、許可ルールが一致する場合でもクラシファイアにルーティングされます。
rmとrmdirの削除も Claude Code v2.1.218 以降で重要なパスをターゲットにしている場合もそうです requiresUserInteractionとマークされた MCP ツール。許可ルールが一致する場合でも直接プロンプトします。コネクタツール組織がaskに設定したもの。その設定が Claude Code に到達するセッションでも- コマンドごとの許可ドメインを含むシェルコマンド。許可ルールが一致する場合でもクラシファイアにルーティングされます。ルールはコマンドを承認するため、そのホストではなく
Bash(git push *)のようなコマンドのコンテンツで一致する質問ルール。権限プロンプトにフォールバック
- 保護されたパスへの書き込みは、許可ルールが一致する場合でもクラシファイアにルーティングされます。
- 読み取り専用アクションと作業ディレクトリ内のファイル編集は自動承認されます。保護されたパスと作業ディレクトリ外の最初の読み取りへの書き込みを除く。プロンプトします
- サーバー側クラシファイアレビューを持つセッションでは、読み取り専用およびサンドボックス化シェルコマンドはそのレビューを待ち、それがそれらにフラグを立てる場合はブロックされます
- その他すべてはクラシファイアに送信されます。ステップ 1 でプロンプトするコネクタツールと
requiresUserInteractionMCP ツールはクラシファイアに到達しません。組織が必要な承認も同意ステップも自動承認されません - クラシファイアがブロックする場合、Claude は理由を受け取り、代替を試みます。ほとんどのセッションでは、理由は
[Data Exfiltration]のようにクラシファイアが一致したルールに名前を付けます。書かれた説明ではなく。拒否をレビューを参照してください
- ブランケット
Bash(*)またはPowerShell(*) Bash(python*)のようなワイルドカードインタープリタ- パッケージマネージャー実行コマンド
Agent許可ルールMonitor許可ルール。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 フィールドで呼び出しの結果に注釈を付けることができます。クラシファイアはアプリケーション提供のコンテキストとして読み取ります。フィールドには Claude Code v2.1.236 以降が必要です。別のサーバー側プローブは、Claude がそれを読む前に、受信ツール結果をスキャンして疑わしいコンテンツにフラグを立てます。これらのレイヤーがどのように連携するかについての詳細は、自動モードアナウンスメントとエンジニアリング深掘りを参照してください。自動モードがサブエージェントを処理する方法
自動モードがサブエージェントを処理する方法
クラシファイアはサブエージェント作業を 3 つのポイントでチェックします。
- サブエージェントが開始する前に、委任されたタスク説明が評価されるため、危険に見えるタスクはスポーン時にブロックされます。
- サブエージェントが実行されている間、その各アクションはクラシファイアを通じて親セッションと同じルールで実行され、サブエージェントの frontmatter の
permissionModeは無視されます。 - サブエージェントが終了すると、クラシファイアはその作業と最終レポートをレビューしてから、親がレポートを読みます。クラシファイアがサブエージェントの作業またはレポートにフラグを立てるか、別の 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を参照してください。
スタートアップ時にフラグで設定します:
bypassPermissions モードですべてのチェックをスキップする
bypassPermissions モードは権限プロンプトとセーフティチェックを無効にするため、保護されたパスへの書き込みを含むツール呼び出しが即座に実行されます。
アクション no モードが自動承認するアクションはこのモードでもプロンプトが表示されます。
このモードでは、および権限バイパスが利用可能なインタラクティブターミナルプランモードセッションでは、2 つのクロスセッションメッセージングセーフガードが引き続き適用されます。
- このマシンを超えたセッションへのメッセージに対する
isolatePeerMachines承認プロンプトが引き続き表示されます。 crossSessionInbound値が適用されない場合、Claude Code は別のセッションからのインバウンドメッセージを承認待ちで保持し、送信セッションが権限プロンプトもバイパスしていることを識別した場合にのみ確認なしで配信します。権限モードを終了してメッセージが保持されている場合、Claude Code はインバウンドルールを再適用し、保持されているメッセージのうち現在受け入れるものを配信します。
rm と rmdir の削除でクリティカルパスをターゲットにしたものはまだプロンプトが表示されます。
プランモードは Claude Code がインタラクティブターミナルなしで実行される場所ではブロックを保持します。これには -p を使用した非インタラクティブ実行、Agent SDK セッション、および VS Code 拡張機能のチャットパネルでの会話が含まれます。そこでは、--allow-dangerously-skip-permissions により bypassPermissions が後で選択可能になります。
このモードを有効にせずに開始したセッションから bypassPermissions に入ることはできません。permissions.defaultMode: "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 の下で実行されている場合、起動を拒否します。
defaultMode: "bypassPermissions" または "dontAsk" を尊重しないため、リポジトリのチェックイン設定はクラウドセッションをバイパス権限モードで開始できません。設定は無視され、セッションはモードドロップダウンに表示される権限モードで開始されます。権限モードを切り替えるを参照して、クラウドセッションが提供するモードを確認してください。
保護されたパス
パスの小さなセットへの書き込みは、bypassPermissions モードおよび bypass permissions が利用可能なプラン モード セッションを除き、自動承認されることはありません。これはリポジトリ状態と Claude 独自の設定の偶発的な破損を防ぎます。
--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 ルールはコマンドを完全にブロックします。
代わりに何が起こるかは、権限モードによって異なります。
明示的な ask ルール がコマンドにマッチする場合、Claude Code は
auto モードでも承認を求めます。承認を求めるモードでは、PermissionRequest フック は他のプロンプトに答えるのと同じ方法でプロンプトに答えることができます。
Claude Code は、rm または rmdir ターゲットが以下のいずれかである場合、重要なパスとして扱います。
- ファイルシステムのルート
- トップレベルディレクトリ、つまりルートの直接の子である
/usr、/etc、/dataなどのディレクトリ - ホームディレクトリ
- Windows ドライブルートとそのトップレベルディレクトリ(
C:\やC:\Windowsなど) - 作業ディレクトリとその親
- 追加の作業ディレクトリとその親。ただし、削除が
rm -rf <dir>/*のようにそれらの下のグロブである場合のみ。ディレクトリ自体に対するrm -rf <dir>はこのチェックをトリガーしません
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 を実行