Claude Code の defaultMode 4 種類の違いと選び方(default / acceptEdits / plan / bypass)

Claude Code 公開:

Claude Code の settings.json で設定する permissions.defaultMode の 4 つの値の違いを表で整理し、個人開発・チーム開発・CI のそれぞれでどれを選ぶべきかを解説します。Shift+Tab による一時的な切り替えとの関係も説明します。

検証日 2026年9月7日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。
目次
  1. 4 つの値の比較
  2. 設定の書き方
  3. 用途別の選び方
    1. 個人開発:acceptEdits
    2. 初めてのコードベース・設計作業:plan
    3. チーム共有の設定:default か acceptEdits
    4. CI・使い捨てコンテナ:bypassPermissions
  4. 一時的に切り替える方法
  5. 関連する設定
  6. まとめ

Claude Code の permissions.defaultMode は、「allow にも deny にも一致しなかった操作をどう扱うか」を決める設定です。4 つの値があり、日常的に使うのは defaultacceptEdits の 2 つです。

結論として、個人開発なら acceptEdits、初めて触るコードベースや設計作業なら plan、CI や使い捨てコンテナだけ bypassPermissions、が目安です。

KEY POINT

この記事で分かること

  • 4 つの defaultMode の違い(何が自動で、何が確認されるか)
  • 用途別の選び方
  • Shift+Tab や起動オプションによる一時的な切り替えとの関係

4 つの値の比較

ファイル読み取りファイル編集コマンド実行用途
default自動確認確認初期値。慎重に進めたいとき
acceptEdits自動自動確認日常の開発。編集は任せ、コマンドは見る
plan自動不可不可(読み取り系の一部を除く)調査、設計、レビュー
bypassPermissions自動自動自動隔離環境での自律実行のみ

いずれのモードでも、deny に一致する操作は実行されず、allow に一致する操作は確認なしで実行されます。defaultMode が効くのは、どのルールにも一致しなかった操作だけです。

設定の書き方

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

ユーザー全体の既定にするなら ~/.claude/settings.json、プロジェクトごとなら .claude/settings.json、自分だけなら .claude/settings.local.json に書きます。

用途別の選び方

個人開発:acceptEdits

ファイル編集を毎回確認する手間がなくなり、コマンド実行(テスト、インストール、Git)は確認できます。編集内容は後から git diff でまとめて見る運用にすると効率的です。

初めてのコードベース・設計作業:plan

変更を伴わないので、安心して調査と計画を任せられます。計画に納得してから acceptEdits に切り替えて実装に進みます(Plan Mode の使い方)。

チーム共有の設定:default か acceptEdits

プロジェクトの settings.json に書く場合は、慎重な側に倒しておきます。速く進めたい人は自分の settings.local.jsonacceptEdits に上書きできます。

CI・使い捨てコンテナ:bypassPermissions

確認する人がいない環境では、確認待ちで止まらないようにします。ただしすべての操作が自動で通るため、ホスト環境や本番の認証情報がある環境では使わないでください。

bypassPermissions は deny も無視しない

bypassPermissions でも deny は有効です。CI で使う場合でも、rm -rf や force push の deny は入れておいてください。

一時的に切り替える方法

方法範囲
Shift+Tab現在のセッション内。default → acceptEdits → plan を順に切り替え
claude --permission-mode planそのセッションの初期モード
claude -p ... --permission-mode acceptEdits非対話モードの 1 回の実行

いずれも設定ファイルは書き換えません。「普段は acceptEdits、今日は調査だけ」のような使い分けは、設定を変えずに Shift+Tab や起動オプションで行います。

関連する設定

defaultMode だけでは「どのコマンドを自動にするか」は決められません。allow / ask / deny と組み合わせた全体の設計は、親記事の settings.json で permissions を設計する を参照してください。

まとめ

  • defaultMode は「ルールに一致しなかった操作」の扱いを決める。deny と allow は常に優先される
  • 個人開発は acceptEdits、調査は plan、チーム共有は慎重側、隔離環境だけ bypassPermissions
  • Shift+Tab--permission-mode は一時的な切り替えで、設定ファイルは変わらない

よくある質問

defaultMode と Shift+Tab の切り替えはどちらが優先されますか?
Shift+Tab はそのセッション内での一時的な変更で、defaultMode は起動時の初期値です。セッション中の切り替えは設定ファイルを書き換えません。
acceptEdits にするとコマンドも自動実行されますか?
されません。acceptEdits はファイルの作成・編集だけを自動許可し、コマンド実行は引き続き確認(または allow ルール)に従います。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合はお問い合わせからお知らせください。