Claude Code の権限モードの違い:default・acceptEdits・plan・auto の選び方
結論
- 権限モードは、確認なしで Claude が実行できる範囲を決める設定です。公式ドキュメントでは
default、acceptEdits、plan、auto、dontAsk、bypassPermissionsを挙げています。 - 変更内容を後から確認するなら
acceptEdits、変更前に調べるならplanと、目的で選びます。bypassPermissionsは隔離されたコンテナや VM 専用です。 autoは確認を減らせますが、安全を保証するものではなく、モデルや組織設定の条件もあります。執筆時点(2026年10月)の公式ドキュメントに基づくため、導入前に最新の記載を確認してください。
権限モードで何が変わるか:6つのモードの違い
Claude Code(Anthropic 社が提供する、ターミナルで動く AI コーディングエージェント)には権限モードがあります。公式ドキュメントによると、権限モードはセッション中に確認なしで実行できる操作を決める設定で、ファイル編集、シェルコマンド、ネットワークアクセスの前に止まって確認するかどうかが変わります。
default:確認なしで実行できるのは読み取りのみ。すべて自分で確認したい作業、機微な作業向けです。acceptEdits:読み取り、ファイル編集、mkdir・touch・mv・cpなどの一般的なファイル操作コマンド。レビューしながらコードを直す場面向けです。plan:読み取りが中心です。変更前にコードベースを調べる場面向けです。auto:すべて実行しますが、裏で安全チェックが走ります。長いタスクや、確認の繰り返しを減らしたい場面向けです。dontAsk:作業ディレクトリ内の読み取りと事前承認済みのツールのみ実行し、確認が要る操作は拒否します。CI やスクリプト向けです。bypassPermissions:すべて実行します。隔離されたコンテナや VM 専用です。
default は、CLI や VS Code、デスクトップアプリなどでは Manual と表示されます。設定値は default で、CLI では manual という別名も使えます。
モードは基準で、権限ルールを重ねて特定ツールを事前承認またはブロックできます。deny ルールは bypassPermissions を含むすべてのモードで効きますが、allow ルールは bypassPermissions では効果がありません。
起動時のモードと切り替え方
公式ドキュメントでは、ターミナルで新しいセッションを始めるとき、次のうち最初に当てはまるものが使われると説明しています。
--permission-modeフラグ、または--dangerously-skip-permissions- 設定ファイルの
permissions.defaultMode - 組み込みのデフォルト
組み込みのデフォルトは、Claude Code v2.1.283 以降の対話型ターミナルと VS Code では auto です。それより前のバージョンでは Pro、Max、Team プランが対象で、claude -p や組織の設定によっても変わります。何も指定しないと確認の少ない auto で始まる場合があるため、配布前に起動時のモードを明示しておくと安心です。
1回だけ指定する例です。
claude --permission-mode plan
全セッションの既定を default にする例は、~/.claude/settings.json に次のように書きます。
{
"permissions": {
"defaultMode": "default"
}
}
プロジェクトの .claude/settings.json の permissions.defaultMode は、ターミナルでは auto と bypassPermissions 以外の値が有効です。VS Code 拡張は、開始モードのためにプロジェクト設定を読みません。
セッション中の切り替え
CLI では Shift+Tab で切り替えます。auto からは最初の1回で default になり、その後は default、acceptEdits、plan の順です。dontAsk は順番に含まれず、--permission-mode dontAsk で指定します。VS Code ではプロンプト欄下のモード表示から選びます。
acceptEdits と plan の使いどころ
acceptEdits は、作業ディレクトリ内のファイルの作成・編集を確認なしで進めます。mkdir、touch、rm、rmdir、mv、cp、sed も自動承認されますが、対象は作業ディレクトリか additionalDirectories 内のパスだけです。保護パスへの書き込みや、組み込みの読み取り専用コマンド以外のその他の Bash コマンドは確認が出ます。後から git diff などで変更を見る運用に向きます。
plan は、調査して計画を書くだけで、ソースは編集しません。計画を承認するまで編集はブロックされます。ただし、bypass permissions が使える対話型ターミナルでは、このブロックは強制されません。Shift+Tab か、1回のプロンプトの先頭に /plan を付けて入ります。
計画の承認時は、Yes, and use auto mode、Yes, manually approve edits、No, keep planning から選びます。
auto モードの便利さと注意点
auto では、別のモデル(分類器)が実行前に操作を確認し、依頼を超える操作や、読み込んだ内容に誘導された疑いのある操作などをブロックします。公式ドキュメントは、確認を減らすが安全を保証するものではなく、機微な操作のレビューの代わりにはしないよう注意しています。
利用にはモデルの要件があり、Sonnet 4.5、Opus 4.5、Haiku 4.5 などの古いモデルはどのプロバイダでも非対応です。Team と Enterprise では既定で使えますが、管理者は managed settings の permissions.disableAutoMode を "disable" にして無効にできます。使えない場合、セッションは Manual で始まります。
既定でブロックされる例は、コードのダウンロードと実行、機微データの外部送信、本番デプロイ、フォースプッシュなどです。作業ディレクトリ内のファイル操作や、読み取り専用の HTTP リクエストは許可されます。連続3回、または合計20回ブロックされると auto は一時停止し、確認に戻ります。
会話で伝えた「プッシュしないで」などの境界は分類器が参照しますが、ルールとして保存されず、コンテキスト圧縮で失われる場合があります。確実に止めたいなら deny ルールを使います。
dontAsk・bypassPermissions と、どのモードでも変わらない点
dontAsk は、確認が出るはずの操作をすべて自動拒否します。事前に許可範囲を決める CI 向けで、公式ドキュメントの例は次のとおりです。
claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"
bypassPermissions は、権限確認と安全チェックを無効にします。公式ドキュメントは、隔離された環境でのみ使うこと、プロンプトインジェクションや意図しない操作への保護がないことを警告しています。起動時に有効化していないセッションでは入れず、Linux と macOS では root や sudo での起動を拒否します(認識されたサンドボックスの中ではこの確認は省かれます)。管理者は permissions.disableBypassPermissionsMode を "disable" にしてブロックできます。
どのモードでも自動承認されないものがあります。たとえば ask ルールに一致するツールや、ルートやホームディレクトリなど重要なパスを対象にした rm・rmdir です。また .git や .claude などの保護パスへの書き込みは、bypassPermissions モードと、bypass permissions が使える対話型ターミナルの plan モードのセッション以外では自動承認されません。
よくある質問
Manual モードと default は別物ですか?
同じモードです。画面では Manual、設定値や hooks・SDK では default と呼びます。CLI では manual も別名として使えます。
何も設定しないと、どのモードで始まりますか?
公式ドキュメントでは、Claude Code v2.1.283 以降の対話型ターミナルと VS Code で、組み込みのデフォルトは auto です。auto が使えない場合は Manual で始まります。細かい条件は公式ドキュメントで確認してください。
bypassPermissions を社内で使わせてよいですか?
公式ドキュメントでは、コンテナや VM など隔離された環境でのみ使うモードとされています。使わせたくない場合は、管理者が managed settings で permissions.disableBypassPermissionsMode を "disable" にできます。
関連する無料ツール
Claude Code 権限設定(settings.json)ジェネレーター: deny / ask / allow のルールを選ぶと、置き場所つきで settings.json を出力します。配る前の設定の下書きに使えます。
参考(執筆時点)
- Choose a permission mode(公式ドキュメント)
この記事は、上の出典の内容を中小DXラボが要約・再構成したものです。仕様は変わることがあります。社内で使う・配る前に、公式ドキュメントで最新の情報を確認してください。