ガイド
Claude Code の権限モード:default・acceptEdits・plan・auto・bypassPermissions
権限プロンプトをスキップする方法を探している人の多くは、操作のたびに承認するのに疲れています。このページでは、Anthropic の Choose a permission mode のドキュメントに沿って、各権限モードが確認なしで Claude に許可する操作、モードの切り替え方、bypassPermissions を隔離された環境でしか使うべきでない理由を説明します。モード名、フラグ、設定キー、動作はすべてそのドキュメントに基づいており、2026 年 10 月 30 日に確認しました。
- 権限モードは、セッション中に Claude があなたに確認せずに実行できる操作を決めます。
defaultは CLI では Manual と表示され、読み取りだけがプロンプトなしで実行されます。 - ドキュメントによると、Claude Code v2.1.283 以降では、auto モードが、対話型のターミナルと VS Code のセッションにおける組み込みの開始時の権限モードです。プロンプトがまだ多いなら、すでに auto モードになっていないか確認してください。
- 丸腰にならずにプロンプトを減らすには、
acceptEditsを使うか、別の分類器モデルがあなたの代わりに操作をレビューするautoを使います。ドキュメントは、bypassPermissionsはプロンプトインジェクションや意図しない操作に対する保護を一切提供しないとしています。 bypassPermissionsは、コンテナや VM などの隔離された環境でのみ使ってください。deny ルールは、このモードを含むすべてのモードでブロックします。- モードの切り替えは
Shift+Tab、開始時のモードの指定は--permission-modeかpermissions.defaultModeで行います。
権限モード
ドキュメントによると、権限モードは、セッション中に Claude があなたに確認せずに実行できる操作を決めます。Manual モードでは、Claude Code は、ファイルの編集、シェルコマンドの実行、ネットワークへのアクセスを伴うほとんどの操作の前に、停止してあなたに確認します。次の表は、各モードで権限プロンプトなしに実行されるものについてのドキュメントの表です。Manual モードは、設定値の default として載っています。
| モード | 確認なしで実行されるもの | 向いている用途 |
|---|---|---|
default | 読み取りのみ | すべての操作を自分で確認したい場合、機密性の高い作業 |
acceptEdits | 読み取り、ファイルの編集、一般的なファイルシステムコマンド(mkdir、touch、mv、cp など) | レビューしながらコードを反復する場合 |
plan | 読み取りと、auto モードが利用可能なときに分類器が承認したコマンド | 変更の前にコードベースを調べる場合 |
auto | すべて(バックグラウンドの安全チェック付き) | 長いタスク、プロンプト疲れの軽減 |
dontAsk | 作業ディレクトリ内のファイルの読み取りと、事前承認したツール。プロンプトが出るはずのものはすべて拒否される | ロックダウンした CI とスクリプト |
bypassPermissions | すべて | 隔離されたコンテナと VM のみ |
すべての操作をレビューするモードは、CLI、claude --help、VS Code と JetBrains の拡張機能、デスクトップアプリでは Manual という名前です。設定値は default で、フックや SDK の連携ではこちらが使われます。CLI では、値を入力する場所ならどこでも別名の manual を受け付けます。たとえば claude --permission-mode manual や "defaultMode": "manual" です。
モードの切り替え
セッション中:Shift+Tab を押すと、権限モードが順に切り替わります。auto からは、最初の 1 回で default に切り替わり、その後は default → acceptEdits → plan と巡回します。オプションのモードは plan の後ろに入ります。有効なモードはステータスバーに表示されます。
| モード | ステータスバー |
|---|---|
default | グレーの ⏸ manual mode on |
acceptEdits | ⏵⏵ accept edits on |
plan | ⏸ plan mode on |
auto | ⏵⏵ auto mode on |
dontAsk | ⏵⏵ don't ask on |
bypassPermissions | ⏵⏵ bypass permissions on |
すべてのモードがデフォルトの巡回に含まれるわけではありません。
auto:auto モードが利用可能なときに現れます。そこへ切り替えると、確認のプロンプトなしで権限モードが切り替わります。bypassPermissions:--permission-mode bypassPermissions、--dangerously-skip-permissions、--allow-dangerously-skip-permissionsで起動するか、ユーザー設定、--settings、managed settings でpermissions.defaultMode: "bypassPermissions"を設定して起動すると現れます。--allow-付きのバリアントは、権限モードを有効にせずに巡回へ追加します。dontAsk:巡回には現れません。--permission-mode dontAskで設定します。
有効にしたオプションのモードは plan の後ろに入り、bypassPermissions が先、auto が最後になります。両方を有効にしている場合は、auto に向かう途中で bypassPermissions を通ります。
Bash の権限プロンプトから:Manual と acceptEdits の権限モードで auto モードが利用可能な場合、Claude Code は Bash コマンドの権限プロンプトに Yes, and switch to auto mode を追加します。これを選ぶと、コマンドを承認し、セッションを auto モードに切り替えます。PowerShell ツールのプロンプトにはこの選択肢はなく、Claude Code v2.1.247 以降が必要です。あなたの ask ルールやフックによって強制されるプロンプトには、Claude Code はこの選択肢を追加しません。auto モードでもそれらのプロンプトは表示されるため、切り替えてもなくならないからです。
起動時:権限モードをフラグで渡します。同じ --permission-mode フラグは、非対話の実行でも -p と一緒に使えます。
claude --permission-mode plan
デフォルトとして:希望するスコープで permissions.defaultMode を設定します。VS Code では、プロンプトボックスの下部にあるモードのインジケーターをクリックするか、claudeCode.initialPermissionMode で開始時のモードを固定します。
セッションが始まるときのモード
ターミナルで新しいセッションを始めると、Claude Code は次のうち最初に当てはまるものから権限モードを決めます。
--permission-modeフラグ、または--dangerously-skip-permissions- 設定ファイルの
permissions.defaultMode - 組み込みのデフォルト
Claude Code v2.1.283 以降では、ターミナルまたは VS Code 拡張機能での組み込みのデフォルトは auto です。それより前のバージョンでは、フィーチャーフラグを取得するセッションの Pro、Max、Team プランで auto、それ以外は default でした。claude -p と Agent SDK では、組み込みのデフォルトは default です。いずれかの設定ファイルで disableAutoMode が "disable" に設定されている場合も default です。フラグ、設定ファイル、組み込みのデフォルトのいずれかが auto を選んでいても、セッションで auto モードが利用できない場合、Claude Code は代わりに Manual でセッションを始めます。
設定をどこに置くかが重要で、ドキュメントは具体的に説明しています。
| 開始時の権限モードを設定する対象 | 方法 |
|---|---|
| これから始める 1 つのセッション | 権限モードをフラグで渡します。例:claude --permission-mode default |
| このマシンで始めるすべてのターミナルセッション | ~/.claude/settings.json で permissions.defaultMode を設定します |
| 1 つのプロジェクトで始めるすべてのターミナルセッション | プロジェクトの .claude/settings.json で permissions.defaultMode を設定します。ターミナルで始めたセッションは、auto と bypassPermissions を除くすべての値を尊重します |
| 組織内のすべてのターミナルセッション | managed settings で permissions.defaultMode を設定します |
.claude/settings.json や .claude/settings.local.json に "auto" を設定しても、その値は有効になりません。この 2 つのファイルに "bypassPermissions" を設定した場合も有効にならず、セッションは Manual モードで始まります。次の例は、このマシンのすべてのターミナルセッションを Manual モードで始めるもので、~/.claude/settings.json に保存します。
{
"permissions": {
"defaultMode": "default"
}
}
次に始めるセッションでは、ステータスバーに ⏸ manual mode on と表示されます。
acceptEdits:ファイルの編集を自動承認する
acceptEdits モードでは、Claude が作業ディレクトリ内のファイルをプロンプトなしで作成・編集できます。このモードが有効な間、ステータスバーには ⏵⏵ accept edits on と表示されます。ファイルの編集に加えて、一般的なファイルシステムの Bash コマンド(mkdir、touch、rm、rmdir、mv、cp、sed)も自動承認します。ファイルの編集と同様に、自動承認が適用されるのは、作業ディレクトリまたは additionalDirectories の内側のパスだけです。
次のものは、引き続きプロンプトが出ます。
- そのスコープの外のパス
- 保護されたパスへの書き込み
- 認識された
rmとrmdirの重要パスの削除 - 通常のファイルパス以外を含む
touch(オプション、グロブ、timeout 5やLANG=Cのようなプレフィックスなど) - 組み込みの読み取り専用のセット以外のすべての Bash コマンド
ドキュメントでは、各編集をその場で承認するのではなく、後からエディタや git diff で変更を確認したいときに acceptEdits を使うよう勧めています。Manual モードから Shift+Tab を 1 回押して入るか、直接このモードで起動します。
claude --permission-mode acceptEdits
plan:先に調べて、編集はしない
plan モードでは、Claude は変更を加えずに、調査して変更を提案します。Claude はファイルを読み、調べるためにシェルコマンドを実行し、プランを書きますが、ソースは編集しません。バイパス権限が利用可能な対話型のターミナルセッションを除き、プランを承認するまで編集はブロックされたままです。
プランニング中のシェルコマンドがどうなるかはセッションによって異なり、次のうち最初に一致するケースが適用されます。
- バイパス権限が利用可能な対話型のターミナルセッション:プランニングのコマンドには、分類器もプロンプトも適用されません。
- auto モードが利用可能で、
useAutoModeDuringPlan設定がオン(デフォルトでオン):重要パスの削除を除くシェルコマンドを、プロンプトを出す代わりに分類器がレビューします。承認されたコマンドは実行され、拒否されたものはブロックされます。 - auto モードが利用できない、または
useAutoModeDuringPlanがオフ:組み込みの読み取り専用のセット以外のコマンドは、承認を求めるプロンプトが出ます。
plan モードには、Shift+Tab を押すか、1 つのプロンプトの先頭に /plan を付けて入ります。CLI から plan モードで起動することもできます。
claude --permission-mode plan
プランを承認せずに plan モードを抜けるには、もう一度 Shift+Tab を押します。プランができあがると、Claude はそれを提示し、どう進めるかを尋ねます。
- Yes, and use auto mode:承認して、auto モードで開始します。セッションで auto モードが使えない場合、この選択肢は Yes, auto-accept edits と表示されます。バイパス権限を有効にしてセッションを始めた場合は、代わりに Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session と表示されます。
- Yes, manually approve edits:承認して、各編集を個別にレビューします。
- No, keep planning:plan モードにとどまり、何を変えるか Claude に伝えます。
Ctrl+G を押すと、提案されたプランがデフォルトのテキストエディタで開き、Claude が進める前に直接編集できます。プロジェクトのターミナルセッションで plan モードをデフォルトにするには、.claude/settings.json で defaultMode を plan に設定します。
auto:分類器があなたの代わりにレビューする
auto モードでは、Claude が通常の権限プロンプトなしで実行できます。別の分類器モデルが、操作を実行する前にレビューし、依頼の範囲を超えて拡大するもの、見覚えのないインフラを対象とするもの、Claude が読んだ悪意のあるコンテンツに誘導されたように見えるものをブロックします。明示的な ask ルールは、引き続きプロンプトを強制します。
ドキュメントからの警告:auto モードは権限プロンプトを減らしますが、安全性を保証するものではありません。大まかな方向性を信頼できるタスクに使い、機密性の高い操作のレビューの代わりにはしないでください。
auto モードは、アカウントが次の要件をすべて満たす場合にのみ利用できます。
- プラン:すべてのプラン。
- 組織:Team と Enterprise では、auto モードはデフォルトで利用できます。管理者は、managed settings で
permissions.disableAutoModeを"disable"に設定して、組織全体でオフにできます。 - モデル:Anthropic API と Claude Platform on AWS では、Claude Opus 4.6 以降、Sonnet 4.6 以降、Haiku 5.5、または Fable モデル。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、サインイン済みの Claude apps ゲートウェイのセッションでは、Claude Sonnet 5 以降、Opus 4.7 以降、Haiku 5.5、Fable モデルのみ。Sonnet 4.5、Opus 4.5、Haiku 4.5、claude-3 モデルを含む古いモデルは、どのプロバイダーでもサポートされていません。
- プロバイダー:Anthropic API、Claude Platform on AWS、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、サインイン済みの Claude apps ゲートウェイのセッションで、デフォルトで利用できます。
デフォルトでブロックされるもの(ドキュメントにはさらに長い一覧があります):curl | bash のようなコードのダウンロードと実行、機密データの外部エンドポイントへの送信、本番環境へのデプロイとマイグレーション、force push、IAM やリポジトリの権限の付与、セッション前から存在していたファイルを元に戻せない形で破壊すること。デフォルトで許可されるもの:作業ディレクトリ内のローカルファイル操作、lock ファイルやマニフェストで宣言された依存関係のインストール、読み取り専用の HTTP リクエスト。claude auto-mode defaults を実行すると、ルールの全一覧が JSON で出力されます。
分類器は、会話の中であなたが示した境界をブロックのシグナルとして扱います。Claude に「push しないで」と伝えると、デフォルトのルールなら許可される操作でも、一致するものをブロックします。ただし、境界はルールとして保存されず、コンテキストのコンパクトで、境界を示したメッセージが消えることもあります。確実に保証したい場合は、代わりに deny ルールを追加するようドキュメントは述べています。
フォールバック:ブロックされた操作は通知として表示され、/permissions の Recently denied タブに一覧されます。そこで r を押すと、手動の承認付きで再試行できます。分類器が操作を連続 3 回、または合計 20 回ブロックすると、auto モードは一時停止し、Claude Code はプロンプトを再開します。プロンプトが出た操作を承認すると、auto モードが再開します。これらのしきい値は設定できません。
コストとレイテンシ:ドキュメントによると、分類器のリクエストは、/model で選んだものとは別のモデルで実行されることがあります。Enterprise プランと、Claude API、Claude Platform on AWS、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry を使うアカウントでは、分類器の呼び出しがトークン使用量に加算されます。チェックのたびに、トランスクリプトの一部と保留中の操作が送信され、実行の前に 1 往復が増えます。保護されたパスの外にある読み取りと作業ディレクトリ内の編集は分類器をスキップするので、オーバーヘッドは主にシェルコマンドとネットワーク操作で生じます。セッションのモデルリクエストの一部として、サーバーが操作をレビューする場合は、別個の分類器の呼び出しはありません。ANTHROPIC_BASE_URL を LLM ゲートウェイやプロキシに向けた場合、Claude Code v2.1.278 以降はデフォルトでサーバーに問い合わせますが、ゲートウェイやプロキシがレビューのリクエストや結果を落とすと、自前の分類器リクエストにフォールバックします。/status で Auto mode server が Enabled と表示されていれば、分類器のリクエストが送られるのは、サーバーのレビューの対象外の呼び出しだけです。費用の面は、トークンを節約するを参照してください。
bypassPermissions:すべてのチェックをスキップする
bypassPermissions モードは、権限プロンプトと安全チェックを無効にし、保護されたパスへの書き込みを含め、ツール呼び出しをすぐに実行します。「権限プロンプトをスキップする」という検索の多くが探しているのは、このモードで、ドキュメントの警告も率直です。
ドキュメントからの警告:このモードは、Claude Code がホストシステムに損害を与えられない、コンテナ、VM、インターネットにアクセスできない dev container などの隔離された環境でのみ使ってください。
ドキュメントからの警告:bypassPermissions は、プロンプトインジェクションや意図しない操作に対する保護を一切提供しません。バックグラウンドの安全チェック付きで権限プロンプトを大幅に減らすには、代わりに auto モードを使ってください。管理者は、managed settings で permissions.disableBypassPermissionsMode を "disable" に設定して、このモードをブロックできます。
有効にする方法と制限は次のとおりです。
- 有効にせずに始めたセッションから、
bypassPermissionsに入ることはできません。起動時にpermissions.defaultMode: "bypassPermissions"またはclaude --permission-mode bypassPermissionsで有効にします。--dangerously-skip-permissionsフラグも同等です。 - このモードを有効にして対話セッションを初めて始めるとき、Claude Code は、権限チェックなしで行われた操作について責任を負うことへの同意を求める警告ダイアログを表示します。同意すると、Claude Code は
~/.claude/settings.jsonのskipDangerousModePermissionPromptをtrueに設定し、以降のセッションではダイアログがスキップされます。拒否すると、Claude Code は終了します。 - Linux と macOS では、root または
sudoで実行されているとき、Claude Code はbypassPermissionsモードでの起動を拒否します。認識されたサンドボックスの内部では、このチェックは自動的にスキップされます。コンテナ内で自律的に実行するには、Claude Code を非 root ユーザーとして実行する dev container の設定を使ってください。 - VS Code では、バイパス権限に、拡張機能の設定の Allow dangerously skip permissions トグルが必要です。これがないと、モードはインジケーターに表示されません。
- クラウドセッションは、設定ファイルの
defaultMode: "bypassPermissions"や"dontAsk"を尊重しないので、リポジトリにチェックインされた設定で、クラウドセッションをバイパス権限モードで開始することはできません。
このモードでも、どのモードも自動承認しない操作は、プロンプトか拒否の対象のままです。明示的な ask ルールに一致するツール、AskUserQuestion のようにユーザーとのやり取りが必要なツール、rm -rf / や rm -rf ~ のような、認識された rm と rmdir の重要パスの削除です。ドキュメントはまた、重要パスのチェックは一部のコマンドを見逃すことがあるので、サンドボックスのようなオペレーティングシステムの制御の代わりにはならないとしています。
dontAsk:事前承認したツールだけ
dontAsk モードを設定すると、Claude Code は、本来ならプロンプトが出るツール呼び出しをすべて自動で拒否します。作業ディレクトリ内のファイルの読み取り、読み取り専用の Bash コマンド、permissions.allow ルールに一致する操作、PreToolUse フックが承認した呼び出しは、引き続き実行されます。ドキュメントでは、Claude に許可することを事前に定義する CI パイプラインや制限された環境でこのモードを使うよう述べており、セッションは入力を待つことがありません。フックの書き方はフックのガイドを参照してください。起動時にフラグで設定します。
claude --permission-mode dontAsk
ドキュメントにある、厳密な許可リストを使った CI の例です。
claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"
一律のモードではなくルールを使う
ドキュメントによると、モードは基準を決めるものであり、その上に権限ルールを重ねて、特定のツールを事前承認またはブロックできます。
- deny ルールは、
bypassPermissionsを含むすべてのモードでブロックします。 - allow ルールは、
bypassPermissionsでは効果がありません。 - auto モードのまま、特定のコマンドの前に人間によるチェックポイントを必須にするには、
permissions.askルールを追加します。 - auto モードに入るとき、任意のコード実行を許可する広い allow ルール(
Bash(*)やPowerShell(*)の一律の許可、Bash(python*)のようなワイルドカード付きのインタープリター、パッケージマネージャーの run コマンド、Agentの allow ルール)は外されます。Bash(npm test)のような狭いルールは有効なままで、外されたルールは、auto モードを抜けるときに Claude Code が復元します。 - 分類器なしでプロンプトを減らすもう 1 つの方法は、ドキュメントの一般的な構成から、Manual モードと auto-allow モードの Bash サンドボックスの組み合わせです。
claude --permission-mode defaultを実行し、/sandboxを実行して auto-allow を選びます。macOS、Linux、WSL2 の組み込みの Bash サンドボックスが必要です。
ルールの構文は、Anthropic の Permissions のドキュメントにあります。/permissions コマンドは Claude Code のコマンド一覧を参照してください。
保護されたパス
ごく限られたパスへの書き込みは、bypassPermissions モード(およびバイパス権限が利用可能な、plan モードの対話型ターミナルセッション)を除き、自動承認されることはありません。これは、リポジトリの状態と Claude 自身の設定が誤って壊れるのを防ぎます。default と acceptEdits ではプロンプトが出て、auto では分類器に回され、dontAsk では拒否されます。保護されたディレクトリには .git、.vscode、.idea、.husky、.claude(いくつかの例外あり)があり、保護されたファイルには .gitconfig、.bashrc、.zshrc、.npmrc、.mcp.json、.claude.json などがあります。完全な一覧は、ドキュメントの Protected paths のセクションにあります。設定ファイルの permissions.allow ルールは、保護されたパスへの書き込みを事前承認しません。
どのモードを使うべきか
以下は、ここまでのセクションに対する私たちの解釈であり、公式の判断フローではありません。
- 見慣れないコード、機密性の高い作業:
default(Manual)。 - 目で見ながらコードを反復する場合:
acceptEdits。変更は後からgit diffで確認します。 - 触る前にコードベースを理解したい場合:
plan。 - 中断されたくないが安全チェックは欲しい長いタスク:
auto。ドキュメントが安全性を保証しないとしている点に注意してください。 - CI とスクリプト:
--allowedToolsの許可リストを付けたdontAsk。 - 本当に無人の実行:
bypassPermissions。コンテナや VM などの隔離された環境で、非 root ユーザーとして実行する場合に限ります。
FAQ
Claude Code に毎回権限を聞かれるのをやめさせるには?
まず現在のモードを確認してください。ステータスバーに表示され、Shift+Tab で切り替えられます。プロンプトを減らすためのドキュメントの選択肢は、制限の強いものから順に、acceptEdits(ファイルの編集と一般的なファイルシステムコマンドにプロンプトなし)、auto(分類器があなたの代わりにレビュー)、bypassPermissions(すべてのチェックをオフ。隔離された環境のみ)です。ドキュメントは、bypassPermissions がプロンプトインジェクションに対する保護を一切提供しないことを明記しており、バックグラウンドの安全チェック付きでプロンプトを大幅に減らすには auto モードを使うよう述べています。
auto モードが使えない、またはセッションが Manual で始まったのはなぜですか?
ドキュメントが挙げる原因は、セッションが利用条件を満たしていない(サポート外のモデル、または設定ファイルの disableAutoMode)、あるいは Anthropic がサーバー側で一時的にオフにしていることです。見落としやすい点として、.claude/settings.json や .claude/settings.local.json の defaultMode: "auto" は有効にならないため、ターミナルセッションはエラーなしで Manual で始まります。~/.claude/settings.json に移してください。VS Code では、claudeCode.initialPermissionMode が auto を受け付けないので、代わりにモードのインジケーターから Auto を一度選びます。
bypassPermissions は本当に一切聞かないのですか?
いいえ。ドキュメントによると、このモードでも、明示的な ask ルール、AskUserQuestion のようにユーザーとのやり取りが必要なツール、認識された rm と rmdir の重要パスの削除は、引き続きプロンプトが出るか拒否され、deny ルールもブロックします。ただし、それは安全ということではありません。ドキュメントは、このモードがプロンプトインジェクションや意図しない操作に対する保護を一切提供しないとも述べており、だからこそ隔離された環境で使うべきなのです。
参考資料
- Claude Code: Choose a permission mode(このページのすべてのモード、フラグ、設定キー、ショートカット、制限)
- Claude Code: Permissions(allow、ask、deny ルール。上記のドキュメントからリンクされており、ここでは 1 行ずつ引用していません)
- Claude Code: Configure auto mode(auto モードの信頼するインフラ。上記のドキュメントからリンクされており、ここでは 1 行ずつ引用していません)