Claude Code の承認モード『default』が『Manual』に改称 — パーミッションモード整理と AskUserQuestion 自動継続の廃止(v2.1.200)

Claude Code v2.1.200 で、パーミッションモードの『default』が『Manual』に改称されました(CLI・--help・VS Code・JetBrains)。--permission-mode manual と "defaultMode": "manual" が従来の default と併用で受け付けられ、後方互換は保たれます。同時に AskUserQuestion ダイアログが既定で自動継続しなくなり、アイドルタイムアウトは /config でオプトインする形に変わりました。本記事では Manual / acceptEdits / plan / bypassPermissions の各モードを整理し、今回の改称と自動継続廃止が非対話・背景セッションの運用に何を意味するかを解説します。

Claude Code v2.1.200 で、承認まわりの用語と挙動に 2 つの変更が入りました。パーミッションモードの defaultManual に改称され(CLI・--help・VS Code・JetBrains)、あわせて AskUserQuestion ダイアログが既定で自動継続しなくなりました(アイドルタイムアウトは /config でオプトイン)。改称は後方互換つき — --permission-mode manual"defaultMode": "manual" が、従来の default と併用で受け付けられます。地味な変更に見えますが、非対話・背景セッションの運用では意味が変わります。本記事では、パーミッションモード全体を整理しつつ、今回の 2 点が何を変えるのかを実装目線で見ます。

到達点

  • Claude Code のパーミッションモード(Manual / acceptEdits / plan / bypassPermissions)を整理する
  • defaultManual 改称の後方互換の効き方を押さえる
  • --permission-mode フラグと defaultMode 設定の関係を理解する
  • AskUserQuestion自動継続廃止が背景・自動運用に与える影響
  • アイドルタイムアウトを /configオプトインする使いどころ

なぜ「default」は分かりにくかったのか

default という名前には問題がありました。「デフォルト = 何もしないと選ばれるもの」という一般的な意味と、「このモードは何をするのか」という機能の説明が、名前に同居していたからです。

  • 一般名詞としての default:「既定値」という意味
  • モード名としての default:「各操作で都度ユーザーに確認する」という挙動

この二重性が、ドキュメントや --help、UI 上で混乱の元でした。Manual は後者の機能そのものを名前にしています。「手動で承認する」——名前を見れば挙動が分かる。今回の改称は、この名前と機能の一致を狙ったものです。

パーミッションモードの整理

Claude Code には、ツール実行の承認をどこまで自動化するかを切り替えるモードがあります。改称後の呼び方で整理します。

モード挙動主な用途
Manual(旧 default)承認が要る操作ごとに都度確認する通常の対話。安全側の既定
acceptEditsファイル編集は自動承認、それ以外は確認編集を任せて手を止めたくないとき
plan読み取り専用。変更せず計画だけ提示まず方針を固めたいとき
bypassPermissions承認プロンプトをすべてスキップ隔離環境での自動実行(要注意)

対話中は Shift+Tab でモードを巡回でき、起動時は --permission-mode <mode> で指定、設定ファイルでは defaultMode で既定を決めます。

Manual は「安全だが手数が多い」、bypassPermissions は「速いが危険」。その間を acceptEdits(編集だけ任せる)plan(まず読むだけ) が埋める、という構図で捉えると選びやすくなります。

改称の後方互換

用語変更でありがちな事故は、既存の設定・スクリプトが壊れることです。今回はそこが配慮されています。

// settings.json — どちらも受け付けられる
{
  "defaultMode": "manual"   // 新
  // "defaultMode": "default" も従来どおり有効
}
# フラグも同様に併用可
claude --permission-mode manual   # 新
claude --permission-mode default  # 従来どおり有効

つまり manual が新しい正式名だが、default も引き続き通る。既存の CI・スクリプト・チーム配布設定を今すぐ書き換える必要はありません。ただし今後のドキュメントや UI は Manual 表記に寄っていくので、新規に書くなら manual を使うのが素直です。

もう一つの変更:AskUserQuestion の自動継続廃止

こちらは挙動そのものの変更で、自動・背景運用に直接効きますAskUserQuestion は、Claude がユーザーに選択肢を尋ねるための仕組みです。従来はこのダイアログが既定で自動継続する余地がありましたが、v2.1.200 で 既定では自動継続しなくなりました

代わりに、アイドルタイムアウトは /config でオプトインする形になっています。

状況従来v2.1.200 以降
質問への無応答自動で進む余地があった既定では待つ(自動継続しない)
自動で進めたい/configアイドルタイムアウトを明示的に有効化

なぜこれが重要か

無人で走らせるセッションを考えると分かります。Claude が判断に迷って AskUserQuestion を出したとき——

  • 自動継続する設計だと、誰も見ていない間にモデルが勝手に選んで先に進む。意図しない選択で作業が進むリスク。
  • 待つ設計(新既定)だと、人が答えるまで止まる。安全だが、完全無人だとそこで停滞する。

新しい既定は「黙って進めるより、止まって待つ方が安全」という判断です。そのうえで、本当に無人で流したいケースだけ /config でアイドルタイムアウトを有効にする。安全側をデフォルトにして、自動化は明示的にオプトインする——という設計思想がここにも出ています。

運用への落とし込み

  1. 通常は Manual のまま:名前が変わっただけで、都度確認の安全な既定は同じ。慌てて設定を変える必要はない。
  2. 編集を任せたいなら acceptEdits:レビュー前提でファイル変更を回すとき。破壊的コマンドは別途 permissions.denyautoMode で縛る。
  3. 背景・自動セッションは AskUserQuestion の挙動を確認:無人で流すなら、質問で止まる前提で設計するか、/config でアイドルタイムアウトを意図的に有効化する。
  4. 設定は manual で新規に書く:後方互換で default も通るが、今後の表記に合わせるなら manual

注意点

  • 改称は表記だけ、挙動は同じ:defaultManual で承認の中身が変わったわけではありません。都度確認という挙動はそのまま。
  • 後方互換に甘えすぎない:default は当面通りますが、ドキュメント・UI は Manual に寄ります。チーム内の用語も揃えておくと混乱が減ります。
  • 自動継続オプトインは無人前提でのみ:/config のアイドルタイムアウトは、止まって困る無人運用でだけ有効に。対話セッションで有効にすると、迷ったときに勝手に進む挙動が戻ってきます。
  • VS Code / JetBrains でも表記が変わる:CLI だけでなく IDE 拡張の表示も Manual になります。手順書のスクショ等は更新が要るかも。

まとめ

v2.1.200 の 2 変更は、「承認まわりを分かりやすく・安全側に寄せる」という一貫した方向を持っています。defaultManual の改称は名前と機能を一致させ(後方互換つきなので既存設定は無傷)、AskUserQuestion の自動継続廃止は**「迷ったら勝手に進めず止まって待つ」**を既定にしました。

勘所は 3 つ — Manual はただの改称なので慌てない、新規設定は manual で書く、無人運用だけ /config でアイドルタイムアウトを明示的に有効にする。対話で使うぶんには体感はほぼ変わりませんが、Claude Code を背景・自動で回している人ほど、AskUserQuestion の挙動変更は一度確認しておく価値があります。