Claude Codeの自動承認オフ — 手動モードに戻す手順
auto modeを止めて毎回確認する手動モードに戻す手順です。今のセッションだけ戻す方法と、次回以降も手動で始める設定、組織単位で封じる方法を分けて扱います。
Claude Codeの自動承認をオフにするには、Shift+Tabで今のセッションだけ手動へ切り替える方法と、settings.jsonのpermissions.defaultModeを"default"にして次回以降も手動で始める方法の2通りがあります。組織全体で封じたいなら、管理設定のdisableAutoModeが別に用意されています。この3つは効く範囲がそれぞれ違うため、どこまで止めたいかによって選び方が変わってきます。
前提: 「自動承認」が指しているもの
Claude Codeで「自動承認」と呼ばれる挙動は、実は3つあります。ファイル編集だけを自動承認するacceptEdits、分類器がツール呼び出しを判定するauto、そして確認そのものを全部飛ばすbypassPermissions(--dangerously-skip-permissions)です。このうちbypassPermissionsはもともと明示的に有効化しないと使えないオプトイン機能なので、意図せずオンになっている心配はありません。
本記事が扱うのは、既定で有効になりうるacceptEditsとautoをオフにして、すべての操作を確認するManual(default)モードへ戻す手順です。Pro・Max・Teamプランでは新規セッションがauto modeで始まるようになっており、その背景はauto mode既定化で確認したい設定にまとめています。「気づいたらauto modeになっていた」場合は、まずそちらで対象条件を確認すると切り分けが早くなります。
手動に戻したくなる場面はだいたい決まっています。機密性の高いリポジトリで作業していて1件ずつ差分を見たい、レビュー前のPRブランチで意図しない変更を混ぜたくない、あるいは新しく入ったメンバーにまずは挙動を1ステップずつ見せたい、といったケースです。逆に言えば、こうした事情がない通常のセッションでauto modeを毎回手で止めるのは手間が増えるだけなので、手順2以降は「常にこの条件では手動にする」対象を絞ってから設定するのが実用的です。
手順1: 今のセッションだけ手動に戻す
一番手早いのはShift+Tabでモードを切り替える方法です。
Shift+TabautoからShift+Tabを押すと、最初の1回でdefault(Manual)に切り替わります。そこからさらに押すとacceptEdits→plan→defaultという順で巡回するので、Manualに戻したいだけなら1回押した時点で止めます。ステータスバーの表示が⏸ manual mode onになっていれば切り替え完了です。
セッションを起動する時点から手動にしたい場合は、フラグで直接指定します。
claude --permission-mode defaultこの方法はそのセッションだけに効きます。次回claudeを実行すればまた既定のモードに戻るため、恒常的に変えたい場合は手順2に進みます。
手順2: 次回以降も手動で始めるようにする
permissions.defaultModeを"default"に設定すると、対象範囲のすべてのセッションがManualで始まります。CLI上の表示名Manualに対応する設定値は"default"で、v2.1.200以降は同義のエイリアスとして"manual"とも書けます。書く場所によって効く範囲が変わります。
| 書き場所 | 効く範囲 |
|---|---|
~/.claude/settings.json | 効く範囲この端末で始める全セッション |
プロジェクトの.claude/settings.json | 効く範囲そのプロジェクトの全セッション(共有可) |
| 管理設定(managed settings) | 効く範囲組織のターミナルセッション全体 |
個人の端末で常に手動から始めたい場合は、次のように~/.claude/settings.jsonに書きます。
{
"permissions": {
"defaultMode": "default"
}
}"default"はautoと違い、プロジェクトの.claude/settings.jsonや.claude/settings.local.jsonに書いても正しく反映されます。効かない特殊扱いを受けるのは"auto"という値だけなので、チームで特定リポジトリだけ手動固定にしたい場合はプロジェクト設定に書いて問題ありません。
なお~/.claude/settings.jsonにauto以外のdefaultModeをすでに書いているPro・Max・Teamのセッションでは、起動時に一度だけ「auto modeに切り替えますか」と尋ねられることがあります。ここで断れば設定はそのまま残り、以降のセッションで再び聞かれることはありません。
手順3: 組織全体でauto modeを使わせないようにする
管理者権限がある場合、個々のdefaultMode設定とは別に、auto modeそのものを選択肢から消すこともできます。管理設定(managed settings)で次のように指定します。
{
"permissions": {
"disableAutoMode": "disable"
}
}これを設定すると、autoがShift+Tabの巡回サイクルから消え、--permission-mode autoを明示しても、組み込みの既定値がautoを選ぼうとしても、セッションはManualで始まります。ユーザー側のdefaultMode設定を上書きする強制力を持つため、手順2の個人設定より優先されます。組織単位でセキュリティポリシーとして固定したいときの選択先です。
VS Code拡張で同じ操作をするには
VS Code拡張はCLIとは別の設定を読みます。会話ごとにモードインジケーターをクリックしてManualを選ぶのが即時の切り替えで、常に手動から始めたい場合はVS Codeのユーザー設定でclaudeCode.initialPermissionModeを"default"に指定します。この設定は"auto"を受け付けないため、Autoを既定にしたいときだけモードインジケーターから選ぶ操作が必要になり、Manualへ戻すときは設定値で完結します。
手動に戻しても効き続ける設定
Manualモードにしても、個別の許可ルールは無効になりません。permissions.allowに登録済みのコマンドは、モードに関わらず自動承認され続けます。「とにかく毎回確認したい」場合は、モードをManualにするだけでなく、allowルールに何を書いているかも合わせて見直す必要があります。逆にpermissions.denyは全モードで有効なので、手動に戻したからといって危険なコマンドを禁止するルールが緩むこともありません。
確認を減らしつつ手動は維持したい場合
すべてauto modeに任せるのは避けたいが、毎回のプロンプトも減らしたいという場合は、ManualモードのままBashサンドボックスのauto-allowを組み合わせる選択肢があります。分類器を経由せず、サンドボックスという隔離環境の中でだけコマンドを自動実行させる仕組みです。
/sandbox/sandboxでauto-allowを選ぶと、macOS・Linux・WSL2の組み込みサンドボックス内でBashコマンドが自動実行されます。ただしdenyルールはそのまま働き、コマンドの内容を名指ししたaskルール(Bash(git push *)など)は引き続きプロンプトが出ます。設定ファイルから有効にする場合はsandbox.enabledをtrueにします。分類器を通さずに済む分、auto modeより判断基準は単純ですが、サンドボックスの外に出る操作は従来どおり確認が必要です。
よくあるつまずき
defaultModeを書いたのに変わらない:"auto"から"default"への変更自体は.claude/settings.local.jsonでも効きますが、複数の設定ファイルで値がぶつかっている場合は管理設定がプロジェクト設定を、プロジェクト設定がユーザー設定を上書きします。/permissionsで有効になっている設定の出どころを確認します- Bedrock・Vertex・Foundry経由なのに最初から手動を心配している: この3経路とEnterpriseプランは、そもそも組み込みの既定がManualです。何も設定していなければ手順自体が不要です
- VS Code拡張だけ効かない: 拡張はプロジェクトの
.claude/settings.jsonを起動モードの決定に使いません。claudeCode.initialPermissionModeか、拡張内のモードインジケーターでの選択が必要です disableAutoModeとdefaultMode: "default"を混同する: 前者はauto modeという選択肢自体を消す設定、後者は既定の開始モードを変えるだけの設定です。後者だけではユーザーがShift+Tabや--permission-mode autoで再びauto modeに切り替えられてしまいます
よくある質問
Shift+Tabで手動に戻すと、次回のセッションも手動になりますか
なりません。Shift+Tabはそのセッションの間だけ有効です。次にclaudeを起動すると、defaultModeの設定や組み込みの既定値に従って再びauto modeなどで始まります。恒常的に変えるには手順2の設定が必要です。
acceptEditsモードも同時にオフになりますか
permissions.defaultModeを"default"にすれば、既定の開始モードはManualになるためacceptEditsから始まることもなくなります。ただしセッション中にShift+TabでacceptEditsへ切り替えること自体は引き続きできます。巡回からacceptEditsを外す設定はないため、編集を毎回確認したい場合はpermissions.allowに編集系のルールを置かない運用で調整します。
手動に戻すと、ファイル編集のたびに確認が必要になりますか
はい。Manualモードで自動的に承認されるのは読み取り専用の操作だけです。ファイルの作成・編集やほとんどのシェルコマンドは、これまでどおり1件ずつ確認を求められます。確認を毎回はさみたくない特定の操作だけは、permissions.allowに個別のルールとして登録しておく形になります。
過去のセッションをresumeしても手動になりますか
なりません。resumeしたセッションは、--permission-modeを明示的に指定しない限り、中断した時点のモードのまま再開されます。defaultModeは新規セッションの既定値を決めるだけなので、auto modeで動いていた古いセッションを手動で再開したいなら--resumeと--permission-mode defaultを一緒に指定します。
claude --resume auth-refactor --permission-mode default管理設定を書き換える権限がない場合はどうすればよいですか
個人の~/.claude/settings.jsonか、共有しているプロジェクトの.claude/settings.jsonにdefaultMode: "default"を書けば、自分のセッションだけは手動固定にできます。組織全体でauto modeを封じるdisableAutoModeは管理者専用の設定です。
まとめ
自動承認をオフにする方法は、目的に応じて3段階に分かれます。今のセッションだけならShift+Tabか--permission-mode default、次回以降も手動から始めたいなら~/.claude/settings.jsonまたは.claude/settings.jsonのdefaultMode: "default"、組織全体でauto modeという選択肢自体を消したいなら管理設定のdisableAutoModeです。VS Code拡張はCLIと設定の読み方が異なるため、claudeCode.initialPermissionModeを別途確認します。
どの方法を選んでも、permissions.allow・ask・denyのルールはモードとは独立に効き続けます。手動に戻したのに特定のコマンドだけ確認なしで通っている、あるいは逆に許可したはずの操作が止まるという場合は、まずモードよりもこれらのルールを疑うのが近道です。auto modeの分類器がどのルールで何を止めているかはauto mode分類器は何を止めているか、allow/ask/denyを含めた設定ファイル全体の構造はClaude Code settings.json完全ガイドにまとめています。