CoreCodeブログ

ガイド

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

すべてのモードがデフォルトの巡回に含まれるわけではありません。

有効にしたオプションのモードは 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 は次のうち最初に当てはまるものから権限モードを決めます。

  1. --permission-mode フラグ、または --dangerously-skip-permissions
  2. 設定ファイルの permissions.defaultMode
  3. 組み込みのデフォルト

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 の内側のパスだけです。

次のものは、引き続きプロンプトが出ます。

ドキュメントでは、各編集をその場で承認するのではなく、後からエディタや git diff で変更を確認したいときに acceptEdits を使うよう勧めています。Manual モードから Shift+Tab を 1 回押して入るか、直接このモードで起動します。

claude --permission-mode acceptEdits

plan:先に調べて、編集はしない

plan モードでは、Claude は変更を加えずに、調査して変更を提案します。Claude はファイルを読み、調べるためにシェルコマンドを実行し、プランを書きますが、ソースは編集しません。バイパス権限が利用可能な対話型のターミナルセッションを除き、プランを承認するまで編集はブロックされたままです。

プランニング中のシェルコマンドがどうなるかはセッションによって異なり、次のうち最初に一致するケースが適用されます。

plan モードには、Shift+Tab を押すか、1 つのプロンプトの先頭に /plan を付けて入ります。CLI から plan モードで起動することもできます。

claude --permission-mode plan

プランを承認せずに plan モードを抜けるには、もう一度 Shift+Tab を押します。プランができあがると、Claude はそれを提示し、どう進めるかを尋ねます。

Ctrl+G を押すと、提案されたプランがデフォルトのテキストエディタで開き、Claude が進める前に直接編集できます。プロジェクトのターミナルセッションで plan モードをデフォルトにするには、.claude/settings.json で defaultMode を plan に設定します。

auto:分類器があなたの代わりにレビューする

auto モードでは、Claude が通常の権限プロンプトなしで実行できます。別の分類器モデルが、操作を実行する前にレビューし、依頼の範囲を超えて拡大するもの、見覚えのないインフラを対象とするもの、Claude が読んだ悪意のあるコンテンツに誘導されたように見えるものをブロックします。明示的な ask ルールは、引き続きプロンプトを強制します。

ドキュメントからの警告:auto モードは権限プロンプトを減らしますが、安全性を保証するものではありません。大まかな方向性を信頼できるタスクに使い、機密性の高い操作のレビューの代わりにはしないでください。

auto モードは、アカウントが次の要件をすべて満たす場合にのみ利用できます。

デフォルトでブロックされるもの(ドキュメントにはさらに長い一覧があります):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" に設定して、このモードをブロックできます。

有効にする方法と制限は次のとおりです。

このモードでも、どのモードも自動承認しない操作は、プロンプトか拒否の対象のままです。明示的な 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"

一律のモードではなくルールを使う

ドキュメントによると、モードは基準を決めるものであり、その上に権限ルールを重ねて、特定のツールを事前承認またはブロックできます。

ルールの構文は、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 ルールは、保護されたパスへの書き込みを事前承認しません。

どのモードを使うべきか

以下は、ここまでのセクションに対する私たちの解釈であり、公式の判断フローではありません。

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 ルールもブロックします。ただし、それは安全ということではありません。ドキュメントは、このモードがプロンプトインジェクションや意図しない操作に対する保護を一切提供しないとも述べており、だからこそ隔離された環境で使うべきなのです。

参考資料