Claude Code v2.1.200 で、承認まわりの用語と挙動に 2 つの変更が入りました。パーミッションモードの default が Manual に改称され(CLI・--help・VS Code・JetBrains)、あわせて AskUserQuestion ダイアログが既定で自動継続しなくなりました(アイドルタイムアウトは /config でオプトイン)。改称は後方互換つき — --permission-mode manual と "defaultMode": "manual" が、従来の default と併用で受け付けられます。地味な変更に見えますが、非対話・背景セッションの運用では意味が変わります。本記事では、パーミッションモード全体を整理しつつ、今回の 2 点が何を変えるのかを実装目線で見ます。
到達点
- Claude Code のパーミッションモード(Manual / acceptEdits / plan / bypassPermissions)を整理する
default→Manual改称の後方互換の効き方を押さえる--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 でアイドルタイムアウトを有効にする。安全側をデフォルトにして、自動化は明示的にオプトインする——という設計思想がここにも出ています。
運用への落とし込み
- 通常は Manual のまま:名前が変わっただけで、都度確認の安全な既定は同じ。慌てて設定を変える必要はない。
- 編集を任せたいなら acceptEdits:レビュー前提でファイル変更を回すとき。破壊的コマンドは別途
permissions.denyやautoModeで縛る。 - 背景・自動セッションは AskUserQuestion の挙動を確認:無人で流すなら、質問で止まる前提で設計するか、
/configでアイドルタイムアウトを意図的に有効化する。 - 設定は
manualで新規に書く:後方互換でdefaultも通るが、今後の表記に合わせるならmanual。
注意点
- 改称は表記だけ、挙動は同じ:
default→Manualで承認の中身が変わったわけではありません。都度確認という挙動はそのまま。 - 後方互換に甘えすぎない:
defaultは当面通りますが、ドキュメント・UI はManualに寄ります。チーム内の用語も揃えておくと混乱が減ります。 - 自動継続オプトインは無人前提でのみ:
/configのアイドルタイムアウトは、止まって困る無人運用でだけ有効に。対話セッションで有効にすると、迷ったときに勝手に進む挙動が戻ってきます。 - VS Code / JetBrains でも表記が変わる:CLI だけでなく IDE 拡張の表示も
Manualになります。手順書のスクショ等は更新が要るかも。
まとめ
v2.1.200 の 2 変更は、「承認まわりを分かりやすく・安全側に寄せる」という一貫した方向を持っています。default → Manual の改称は名前と機能を一致させ(後方互換つきなので既存設定は無傷)、AskUserQuestion の自動継続廃止は**「迷ったら勝手に進めず止まって待つ」**を既定にしました。
勘所は 3 つ — Manual はただの改称なので慌てない、新規設定は manual で書く、無人運用だけ /config でアイドルタイムアウトを明示的に有効にする。対話で使うぶんには体感はほぼ変わりませんが、Claude Code を背景・自動で回している人ほど、AskUserQuestion の挙動変更は一度確認しておく価値があります。