Claude Codeが書き換えのたびに承認を求めて作業が止まる人、または逆に危険な操作だけは止めたい人向け
ファイル編集のたびに承認を求められて流れが切れる場面、または逆に「調査はしてほしいが書き換えはしてほしくない」「危ない操作だけは止めたい」と細かく振り分けたい場面で、Shift+Tabを叩いて許可の厳しさを切り替える
Claude Codeで作業していると、ファイルを書き換えるたびに「許可しますか?」と聞かれて止まります。1ターンに3回も4回もEnterを押す羽目になって、流れがブツ切れになる。これを叩くと、その「聞かれ方」の段階を一段ずつ切り替えられます。
逆に「危ないことだけは止めて、安全な作業は黙って進めて」と細かく分けたい人にも同じキー操作で対応できます。1つのショートカットで複数の許可モードをぐるぐる回す仕組みです。
噛み砕くと、許可モードの「ダイヤル」を回すキー
冷蔵庫の温度ダイヤルを思い浮かべてください。「強」「中」「弱」を切り替える、あれです。Shift+Tab は Claude Code に同じことをやらせます。
用意されている許可モードは全部で6種類。そのうち最初から回せるのは次の3つで、押すたびに順番に切り替わります。
default: 読み込みだけ自動でOK、書き換えやコマンド実行は毎回聞かれるacceptEdits: 上に加えて、ファイル書き換えとmkdirtouchrmrmdirmvcpsedの7コマンドも自動OKplan: 逆に、ファイル書き換えを一切させない。調査して提案を出すだけ
残りの3つは auto bypassPermissions dontAsk で、起動時に特別な指定をしたり、アカウント条件を満たしたときだけ顔を出します。詳しくは「落とし穴」セクションで触れます。
「世界の魚を紹介するサイトを作りたい」を例に、実際の手順を見る
仮に、世界の魚図鑑サイトを Claude Code で作る作業中だとします。最初は安全寄りに default で始めて、流れに乗ってきたら acceptEdits に上げて、最後に深掘り調査だけ plan に切り替える、というのを 1セッションでやってみます。
ステップ1: 起動した直後は default モード
普通に claude と打って起動すると、ステータス行に何も特別な表示はありません。これがデフォルトの default モード。読み込みは黙ってやるけど、ファイルを書き換える瞬間は必ず止まります。
$ claude
> 魚の図鑑トップページの構成を index.html に書いて
ここで Claude が index.html を作ろうとした瞬間、「このファイルを作っていい?」と聞かれます。1回目は問題なくEnter。
ステップ2: 1回 Shift+Tab を押して acceptEdits に切り替える
同じノリで「次は魚10種類分の詳細ページを作って」と頼むと、また毎回聞かれます。10ファイル作るのに10回承認するのはダレる。ここで Shift+Tab を1回。
ステータス行が ⏵⏵ accept edits on に変わります。これが acceptEdits モード。これ以降、作業フォルダの中のファイル作成・書き換えは聞かれずに進みます。mkdir touch rm rmdir mv cp sed といったよくあるファイル・フォルダ操作7コマンドも同様(公式が列挙する通りそのまま)。
ステップ3: 危ないことは依然として止まる
acceptEdits に上げても、全部が素通りになるわけじゃない。「保護された場所」への書き込みは引き続き聞かれます。具体的には .git .vscode .idea .husky .claude といったフォルダと、.gitconfig .bashrc .zshrc .mcp.json など個人設定系のファイル。
つまり「自分のプロジェクトの中身は黙って書く、でも開発環境の根っこには触らせない」というラインで止めてくれます。これは安心ポイント。
ステップ4: もう1回 Shift+Tab で plan モードへ
図鑑の構成が一段落して、「そういえば既存のコード全体を読んで、書き直しの叩き台が欲しいな」と思ったとします。書き換えはまだしてほしくない、調査だけ。ここで Shift+Tab をもう1回。
ステータス行が plan 表示に切り替わります。このモード中、Claudeはファイルを読みまくってコマンドを走らせて調査するけど、ソースコードには一切触りません。提案だけ出します。
ステップ5: plan モードを抜ける
調査が終わって提案が出てきたら、その場で5択が並びます。公式は「auto モードで開始」「acceptEdits で開始」「1つずつ確認しながら書き換え」「フィードバックしてプランし直す」「Ultraplan でブラウザレビュー」の5択。選んだ内容に応じてそのモードに切り替わって書き換えが始まります。何も決めずに抜けたいだけなら、もう一度 Shift+Tab を押せば plan を抜けて次のモードへ進めます。一周回って default に戻る形です。
ステップ6: ここで初心者がやりがちな勘違い
「6モードあるって書いてあるのに、3つしか出てこない」と困惑する人がいます。これは仕様通り。残り3つは事前条件を満たさないと顔を出さない設計で、何も指定せずに Shift+Tab を連打しても、永遠に3モードを回るだけです。
つまり Shift+Tab は何をしてくれるのか
- やってくれる: Claudeに「次の作業からはこのルールで動いてね」と即座に切り替える。1キーで3モードをぐるっと回す
- やってくれる: plan モードに入っているときは、もう一度押すだけで抜けられる。提案を承認しなくても外せます
- やってくれない: 逆回し。一方向にしか回らないので、行き過ぎたら一周しないと戻れない
- やってくれない: 事前準備なしで
autoやbypassPermissionsやdontAskに切り替える。これらは起動時の指定やアカウント条件が必須 - 意味が薄い場面: 1回叩いて終わりの単発作業。承認1回で済むなら、モード切り替えのほうが手間
使いどころ3シナリオ
シナリオ1: 料理ブログの記事を10本まとめて作るとき
WordPress用のHTML記事を10本、似た構成で量産する作業。default のままだと毎ファイル「書いていい?」が10回飛んできます。最初の1本だけ default で書き味を確認して、よさそうなら Shift+Tab で acceptEdits へ。残り9本は黙々と書かれていきます。書き上がった後で git diff で差分を一気にレビューするほうが、結果的に集中力が保てます。
シナリオ2: 他人のオープンソースをcloneしてきた直後
「とりあえずこのプロジェクト一式の中身を Claude に読ませて、何をやってるコードか教えてもらいたい」場面。書き換えは絶対にしてほしくない。Shift+Tab を2回押して plan モードへ。Claudeはコードを読み込んで全体構造の説明を出してくれます。提案が出てきたら、納得できる分だけ取り込めばいい。
シナリオ3: 家計簿アプリの本番デプロイ前にコードレビューしたいとき
すでにコードはできていて、書き直しの方針を相談したい段階。書き換えは慎重にやりたい。default のまま「この関数まわりを直したい、案を出して」と頼んで、提案を1つずつ承認していきます。途中で「やっぱり大規模に直したい」となったら、Shift+Tab で acceptEdits に上げて連続編集に切り替え。シーンに応じて手動でダイヤルを回すイメージです。
初心者が踏みやすい落とし穴
- auto / bypassPermissions / dontAsk は事前準備なしで出てこない。何も指定せず
Shift+Tabを連打しても永遠に3モードしか回りません。autoはアカウント条件達成が必要、bypassPermissionsは起動時に--dangerously-skip-permissions等の指定を渡さないと顔を出さず、dontAskは--permission-mode dontAsk付きの起動でしか入れません - Alt+M は全環境で動くわけじゃない。macOSの場合 iTerm2 や VS Code 内蔵ターミナルで「OptionキーをMetaにする」設定をしないと反応しません。確実なのは
Shift+Tabのほうです - 逆回しの公式手段はない。回しすぎたら、もう一周回って戻るしかありません。
Shift+Shift+Tabのような派生記述は公式docには載っていない仕様 - acceptEdits でも .git や .bashrc は守られる。「全部素通り」ではないので、「重要な設定が勝手に書き換わったらどうしよう」という心配は不要。書き換えそうになった瞬間にちゃんと聞かれます
- auto モードに入ると安全装置が働く。背後の判定モデルが「これは危ない」と判断した行動を弾きます。3回連続もしくは累計20回弾かれると auto は一旦止まって、通常モードの確認に戻ります。これは設定で変えられません
- plan モードからの抜け方は2通り。提案を承認するとそのまま編集モードに移行。承認せずに抜けたいなら、もう一度
Shift+Tabを押せば次のモードへ進めます - 「auto を .claude/settings.json で初期モードに」はできない。プロジェクト側の設定が勝手に auto を有効化できない安全装置として、
~/.claude/settings.jsonのほうに書かないと無視されます。こちらはパソコン1台に1人ぶん用意される、個人の設定ファイル - 現在モードはステータス行で必ず確認。
Shift+Tabを押したつもりが反応していないことが稀にあります。ステータス行の表示で確実に変わったか目視で確認する習慣をつけると安心です
書き方
Shift+Tab
(一部の端末設定では Alt+M も同じ動作)
やってみるとこうなる
入力
(claude起動中にキーを押す)
Shift+Tab
出力例
ステータス行が次のモード表示に切り替わる
例: 1回押すと「⏵⏵ accept edits on」表示
もう1回押すと「plan」表示
さらにもう1回押すと表示が消えてdefaultに戻る
このページに出てきた言葉
- 許可モード
- Claudeがファイル書き換えやコマンド実行を「いちいち人間に聞くか/黙ってやるか」のルールセット。全部で6種類ある
- default モード
- 起動直後の標準モード。読み込みは自動OK、書き換えやコマンド実行は毎回確認される
- acceptEdits モード
- ファイル作成・書き換えと、mkdir / touch / rm / rmdir / mv / cp / sed の7コマンドを自動OKにするモード。ステータス行に「⏵⏵ accept edits on」と表示される
- plan モード
- Claudeに調査だけさせて書き換えを一切させないモード。提案を出してきたら承認して編集モードに切り替えるか、Shift+Tabで抜ける
- auto モード
- 別の判定モデルが背後で安全チェックしながら全部を自動実行するモード。Max・Team・Enterprise・APIプランかつ対応モデル使用などの条件を満たすと選べる
- bypassPermissions モード
- 全ての確認をスキップする最も危険なモード。--dangerously-skip-permissions など特定の起動指定を付けた時だけ選べる。VMやコンテナ内でだけ使う想定
- dontAsk モード
- 事前に許可登録した動作だけを実行し、それ以外は全部却下するCI用モード。Shift+Tabのループには出ず、起動時に --permission-mode dontAsk と書いた場合のみ入れる
- 保護された場所
- .git / .vscode / .idea / .husky / .claude(一部除く)と .gitconfig / .bashrc / .zshrc / .mcp.json などの個人設定ファイル。bypassPermissions以外では常に確認される
- ステータス行
- Claude Code の入力欄まわりに表示される現在状態の1行。今どの許可モードにいるかがここで分かる