利用可能なモード
各モードは利便性と監視のバランスが異なります。以下の表は、各モードでパーミッションプロンプトなしで Claude が実行できることを示しています。| モード | 確認なしで実行されるもの | 最適な用途 |
|---|---|---|
default | 読み取りのみ | 開始、機密作業 |
acceptEdits | 読み取り、ファイル編集、一般的なファイルシステムコマンド(mkdir、touch、mv、cp など) | レビュー中のコードの反復処理 |
plan | 読み取りのみ | コードベースの探索、変更前 |
auto | すべて、バックグラウンド安全チェック付き | 長時間タスク、プロンプト疲労の軽減 |
dontAsk | 事前承認済みツールのみ | ロックダウン CI とスクリプト |
bypassPermissions | すべて | 隔離されたコンテナと VM のみ |
bypassPermissions を除くすべてのモードで、保護されたパスへの書き込みは自動承認されることはなく、リポジトリ状態と Claude 独自の設定を偶発的な破損から保護します。
モードはベースラインを設定します。パーミッションルールを上に層状にして、特定のツールを事前承認またはブロックします。拒否ルールと明示的な確認ルールは bypassPermissions を含むすべてのモードで適用されます。許可ルールはそのモードでは効果がありません。他のすべてが既に承認されているためです。
パーミッションモードを切り替える
セッション中、起動時、または永続的なデフォルトとしてモードを切り替えることができます。モードは Claude にチャットで尋ねるのではなく、これらのコントロールを通じて設定されます。以下からインターフェースを選択して、変更方法を確認してください。- CLI
- VS Code
- JetBrains
- Desktop
- Web and mobile
セッション中:デフォルトとして:設定で 同じ
Shift+Tab を押して default → acceptEdits → plan をサイクルします。現在のモードはステータスバーに表示されます。すべてのモードがデフォルトサイクルに含まれるわけではありません。auto:アカウントが auto モード要件を満たす場合に表示されます。auto へのサイクルはオプトインプロンプトを表示し、それを受け入れるか、いいえ、今後は聞かないでください を選択して auto をサイクルから削除するまで続きますbypassPermissions:--permission-mode bypassPermissions、--dangerously-skip-permissions、または--allow-dangerously-skip-permissionsで開始した後に表示されます。--allow-バリアントはモードをサイクルに追加しますが、アクティブ化しませんdontAsk:サイクルに表示されることはありません。--permission-mode dontAskで設定します
plan の後にスロットインし、bypassPermissions が最初で auto が最後です。両方が有効な場合、bypassPermissions から auto へのサイクルを通過します。起動時:モードをフラグとして渡します。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 内のパスにのみ適用されます。そのスコープ外のパス、保護されたパスへの書き込み、その他すべての Bash コマンドはまだプロンプトが表示されます。
PowerShell ツールが有効な場合、acceptEdits モードはスコープ内のパスに対して Set-Content、Add-Content、Clear-Content、Remove-Item も自動承認し、それらの一般的なエイリアスも承認します。同じスコープと保護されたパスのルールが適用されます。
事実後にエディターまたは git diff 経由で変更をレビューしたい場合、各編集をインラインで承認するのではなく acceptEdits を使用します。デフォルトモードから Shift+Tab を 1 回押して入るか、直接開始します。
計画モードで編集前に分析する
計画モードは Claude に変更を加えずに調査と提案を行うよう指示します。Claude はファイルを読み、シェルコマンドを実行して探索し、計画を書きますが、ソースを編集しません。パーミッションプロンプトはデフォルトモードと同じように適用されます。Shift+Tab を押すか、単一のプロンプトに /plan をプレフィックスして計画モードに入ります。CLI から計画モードで開始することもできます。
Shift+Tab を再度押し、計画を承認しません。
計画をレビューして承認する
計画の準備ができたら、Claude はそれを提示し、どのように進めるかを尋ねます。そのプロンプトから以下を実行できます。- 承認して自動モードで開始
- 承認して編集を受け入れる
- 承認して各編集を手動でレビュー
- フィードバック付きで計画を続ける
- Ultraplan でブラウザベースのレビュー用に改善
Shift+Tab で計画モードに戻るか、次のプロンプトに /plan をプレフィックスしてください。
Ctrl+G を押して、提案された計画をデフォルトのテキストエディタで開き、Claude が進める前に直接編集できます。showClearContextOnPlanAccept が有効な場合、各承認オプションは計画コンテキストを最初にクリアするオプションも提供します。
計画を受け入れると、--name または /rename で既に名前を設定していない限り、計画コンテンツからセッションに自動的に名前が付けられます。
計画モードをデフォルトとして設定する
プロジェクトのデフォルトとして計画モードを設定するには、.claude/settings.json で defaultMode を設定します。
自動モードでパーミッションプロンプトをなくす
自動モードには Claude Code v2.1.83 以降が必要です。
- プラン:すべてのプラン。
- 所有者:Team と Enterprise では、所有者がユーザーがオンにできるようにする前に Claude Code 管理設定 で有効にする必要があります。管理者は 管理設定 で
permissions.disableAutoModeを"disable"に設定することでロックオフすることもできます。 - モデル:Anthropic API では Claude Opus 4.6 以降、または Sonnet 4.6。Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry では Claude Opus 4.7 と Opus 4.8 のみ。Sonnet 4.5、Opus 4.5、Haiku、claude-3 モデルを含む古いモデルはどのプロバイダーでもサポートされていません。
- プロバイダー:Anthropic API ではデフォルトで利用可能です。Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry では、
CLAUDE_CODE_ENABLE_AUTO_MODEを設定 するまで自動モードはオフです。
defaultMode: "auto" を設定し、セッションがエラーなしで default モードで開始する場合、設定は .claude/settings.json または .claude/settings.local.json にある可能性があります。Claude Code v2.1.142 以降はこれらのファイルから auto を無視するため、リポジトリは自動モードを自身に付与することはできません。~/.claude/settings.json に移動してください。
Bedrock、Vertex AI、または Foundry で自動モードを有効にする
Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry では、CLAUDE_CODE_ENABLE_AUTO_MODE が 1 に設定されるまで自動モードは Shift+Tab サイクルに表示されません。変数は Claude Code v2.1.158 以降で機能します。これらのプロバイダーでは Claude Opus 4.7 と Opus 4.8 のみがサポートされています。
1 人の開発者に対して有効にするには、~/.claude/settings.json の env ブロックに変数を追加します。
env ブロックを 管理設定 に追加します。
変数が設定されると、自動モードはすべてのセッションの Shift+Tab サイクルに表示されます。デフォルトの開始モードにするには、ユーザーまたは管理設定で "permissions": {"defaultMode": "auto"} も設定します。これらのプロバイダーでは、CLAUDE_CODE_ENABLE_AUTO_MODE も設定されていない限り、Claude Code は defaultMode: "auto" を無視します。
開発者が自動モードを有効にするのを防ぐには、管理設定で disableAutoMode を "disable" に設定します。これは有効化変数をオーバーライドします。
LLM ゲートウェイ を通じて接続し、ANTHROPIC_BASE_URL で設定されている場合、ゲートウェイが Anthropic API を通じてリクエストをルーティングするため、有効化変数なしで自動モードに既にアクセス可能な場合があります。disableAutoMode 設定はその設定で同じ方法で適用されます。
分類器がデフォルトでブロックするもの
分類器は作業ディレクトリとリポジトリの設定されたリモートを信頼します。その他すべては 信頼できるインフラストラクチャを設定 するまで外部として扱われます。 デフォルトでブロック:curl | bashのようなコードのダウンロードと実行- 機密データを外部エンドポイントに送信
- 本番環境へのデプロイとマイグレーション
- クラウドストレージでの大量削除
- IAM またはリポジトリパーミッションの付与
- 共有インフラストラクチャの変更
- セッション前に存在していたファイルを不可逆的に破壊
- フォースプッシュ、または
mainへの直接プッシュ git reset --hard、git checkout -- .、git restore .、git clean -fd、git stash drop、またはgit stash clear。分類器はこれらがコミットされていない変更を破棄すると推定しますgit commit --amend。HEAD のコミットがこのセッションで作成されていない場合terraform destroy、pulumi destroy、cdk destroy、またはterragrunt destroy。リソースを破壊するプランを適用する場合
- 作業ディレクトリ内のローカルファイル操作
- ロックファイルまたはマニフェストで宣言されている依存関係のインストール
.envを読み取り、認証情報を一致する API に送信- 読み取り専用 HTTP リクエスト
- 開始したブランチまたは Claude が作成したブランチへのプッシュ
claude auto-mode defaults を実行して完全なルールリストを確認してください。日常的なアクションがブロックされている場合、管理者は autoMode.environment 設定を通じて信頼できるリポジトリ、バケット、サービスを追加できます。自動モードを設定 を参照してください。
会話で述べる境界
分類器は会話で述べる境界をブロック信号として扱います。Claude に「プッシュしないで」または「デプロイ前にレビューを待って」と言う場合、分類器はデフォルトルールが許可する場合でも一致するアクションをブロックします。境界は後のメッセージで解除するまで有効です。Claude 独自の判断が条件が満たされたことは解除しません。 境界はルールとして保存されません。分類器はチェックのたびにトランスクリプトから再読み込みするため、コンテキストコンパクション が述べたメッセージを削除する場合、境界は失われる可能性があります。ハード保証の場合、代わりに deny ルール を追加します。自動モードがフォールバックする場合
拒否されたアクションはそれぞれ通知を表示し、/permissions の Recently denied タブに表示されます。そこで r を押して手動承認で再試行できます。
分類器がアクション 3 回連続でブロックするか、合計 20 回ブロックする場合、自動モードは一時停止し、Claude Code はプロンプトを再開します。プロンプトされたアクションを承認すると自動モードが再開されます。これらのしきい値は設定不可です。許可されたアクションは連続カウンターをリセットし、合計カウンターはセッション中に保持され、独自の制限がフォールバックをトリガーする場合にのみリセットされます。
非対話的モード で -p フラグを使用する場合、プロンプトするユーザーがいないため、繰り返されるブロックはセッションを中止します。
繰り返されるブロックは通常、分類器がインフラストラクチャについてのコンテキストが不足していることを意味します。/feedback を使用して誤検知を報告するか、管理者に 信頼できるインフラストラクチャを設定 するよう依頼してください。
分類器がアクションを評価する方法
分類器がアクションを評価する方法
各アクションは固定の決定順序を通過します。最初に一致するステップが勝ちます。
- allow または deny ルール に一致するアクションは即座に解決されます。ただし、保護されたパス への書き込みは、allow ルールが一致する場合でも分類器にルーティングされます
- 読み取り専用アクションと作業ディレクトリ内のファイル編集は自動承認されます。保護されたパス への書き込みを除く
- その他すべては分類器に送られます
- 分類器がブロックする場合、Claude は理由を受け取り、別のアプローチを試みます
- ブランケット
Bash(*)またはPowerShell(*) Bash(python*)のようなワイルドカードインタープリター- パッケージマネージャー実行コマンド
Agentallow ルール
Bash(npm test) のような狭いルールは引き継がれます。削除されたルールは自動モードを終了するときに復元されます。分類器はユーザーメッセージ、ツール呼び出し、CLAUDE.md コンテンツを見ます。ツール結果は削除されるため、ファイルまたは Web ページの敵対的なコンテンツはそれを直接操作することはできません。サーバー側プローブは受信ツール結果をスキャンし、Claude がそれを読む前に疑わしいコンテンツにフラグを立てます。これらのレイヤーがどのように連携するかについての詳細については、自動モードのお知らせ および エンジニアリング深掘り を参照してください。自動モードがサブエージェントを処理する方法
自動モードがサブエージェントを処理する方法
分類器は サブエージェント の作業を 3 つのポイントでチェックします。
- サブエージェント開始前に、委譲されたタスク説明が評価されるため、危険に見えるタスクは生成時にブロックされます。
- サブエージェント実行中、その各アクションは親セッションと同じルールで分類器を通過し、サブエージェントのフロントマターの任意の
permissionModeは無視されます。 - サブエージェント完了時、分類器はその完全なアクション履歴をレビューします。リターンチェックが懸念事項にフラグを立てた場合、セキュリティ警告がサブエージェントの結果の前に付加されます。
コストとレイテンシ
コストとレイテンシ
分類器は
/model 選択から独立したサーバー設定モデルで実行されるため、モデルの切り替えは分類器の可用性を変更しません。分類器呼び出しはトークン使用量にカウントされます。各チェックはトランスクリプトの一部と保留中のアクションを送信し、実行前にラウンドトリップを追加します。保護されたパス外の読み取りと作業ディレクトリ編集は分類器をスキップするため、オーバーヘッドは主にシェルコマンドとネットワーク操作から発生します。dontAsk モードで事前承認済みツールのみを許可する
dontAsk モードはプロンプトが表示されるすべてのツール呼び出しを自動的に拒否します。permissions.allow ルールと 読み取り専用 Bash コマンドに一致するアクションのみが実行できます。明示的な ask ルールはプロンプトするのではなく拒否されます。これにより、モードは CI パイプラインまたは Claude が実行を許可されているものを事前に定義する制限環境で完全に非対話的になります。Claude Code on the web上のクラウドセッションは defaultMode: "dontAsk" を無視します。詳細は bypassPermissionsを参照してください。
フラグで起動時に設定します。
bypassPermissions モードですべてのチェックをスキップする
bypassPermissions モードはパーミッションプロンプトと安全チェックを無効にするため、ツール呼び出しは即座に実行されます。v2.1.126 以降、これには保護されたパスへの書き込みが含まれます。これより前のバージョンではまだプロンプトが表示されていました。明示的なask ルールはこのモードでもプロンプトを強制し、ファイルシステムのルートまたはホームディレクトリを対象とした削除(rm -rf / や rm -rf ~ など)は、モデルエラーに対する回路遮断器として機能するため、引き続きプロンプトが表示されます。このモードは、Claude Code がホストシステムに損害を与えることができないコンテナ、VM、またはインターネットアクセスのない dev container のような隔離環境でのみ使用してください。
有効にするフラグの 1 つで開始したセッションから bypassPermissions に入ることはできません。有効にするために再起動してください。
--dangerously-skip-permissions フラグは同等です。
Linux と macOS では、Claude Code はこのモードで root として実行されている場合、または sudo の下で実行されている場合、起動を拒否します。
defaultMode: "bypassPermissions" または "dontAsk" を尊重しないため、リポジトリのチェックイン済み設定はクラウドセッションを bypass-permissions モードで開始することはできません。この設定は無視され、セッションはモードドロップダウンに表示されるモードで開始されます。クラウドセッションが提供するモードについては、パーミッションモードを切り替えるを参照してください。
保護されたパス
パスの小さなセットへの書き込みは、bypassPermissions を除くすべてのモードで自動承認されることはありません。これはリポジトリ状態と Claude 独自の設定の偶発的な破損を防ぎます。
| モード | 保護されたパスへの書き込み |
|---|---|
default、acceptEdits、plan | プロンプト表示 |
auto | 分類器にルーティング |
dontAsk | 拒否 |
bypassPermissions | 許可 |
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
関連項目
- Permissions:allow、ask、deny ルール。管理ポリシー
- Configure auto mode:分類器に組織が信頼するインフラストラクチャを伝える
- Hooks:
PreToolUseおよびPermissionRequestフック経由のカスタムパーミッションロジック - Ultraplan:ブラウザベースのレビュー付き Claude Code on the web セッションで計画モードを実行
- Security:セキュリティ保護とベストプラクティス
- Sandboxing:Bash コマンドのファイルシステムとネットワーク隔離
- Non-interactive mode:
-pフラグで Claude Code を実行