Permission Modes(パーミッションモード)

仕組み・概念
Permission Modes
パーミッションモード
Claudeがファイルを編集したりコマンドを動かしたりする前に出す「やっていい?」の確認、その頻度を切り替える仕組み。default / acceptEdits / plan / auto / dontAsk / bypassPermissions の6段階から選ぶ。

Claude Codeで編集やコマンドのたびに出る確認に答えるのが面倒になってきた人向け

編集のたびに出る確認に答えるのが面倒になってきたら、Shift+Tab を押して acceptEdits に切り替えて編集を自動で通し、逆に本番反映など失敗が痛い操作の前は default に戻して一手ずつ自分で承認する、というふうに作業の場面に合わせて確認の頻度を切り替えたいときに使う。

Claude Codeに作業を任せていると、ファイルを書き換えたりコマンドを動かしたりするたびに「これ、やっていい?」と一度止まって聞いてきます。その「聞く頻度」を切り替える仕組みが Permission Modes です。読むだけは自動、書き換えは毎回確認、いっそ全部おまかせ──こういう温度を場面ごとに選べます。

公式は default / acceptEdits / plan / auto / dontAsk / bypassPermissions の6つを用意しています。家計簿アプリを作りながら、確認の数をどこまで減らすか・どこは残すかを実際に切り替えていきます。

噛み砕くと

新しい職場に来た優秀な助手を思い浮かべてください。初日は何をするにも「これ触っていいですか」と逐一聞いてくる。慎重で安心だけど、いちいち答えるのが面倒です。慣れてきたら「資料の編集はもう勝手にやっていいよ、でも公式サイトへの投稿だけは必ず私に確認して」と任せる範囲を広げますよね。

Permission Modes は、その「どこまで勝手にやっていいか」の取り決めを、つまみ1個で切り替える機能です。つまみを回すほど助手は止まらず動き、つまみを戻すほど一手ごとに確認を取りに来ます。

ここが地味に効きます。

そもそも、何の「確認」を減らしているのか

公式の定義はこうです。Claudeがファイルを編集する・コマンドを動かす・ネット通信をしようとすると、いったん止まって承認を求める。その止まる回数をコントロールするのがモードです。

大事なのは、モードはチャット欄でClaudeに「もう確認しないで」と頼んで変わるものではない、という点です。Shift+Tab を押す・起動コマンドのうしろに書き足す・設定ファイルに書いておく、のどれかで切り替えます。

6つのモードを一覧で押さえる

公式のテーブルがそのまま核です。確認なしで動く範囲が広い順ではなく、よく使う順に並べ直すと頭に入りやすいです。

モード 確認なしで動くもの 向いている場面
default 読み取りだけ。編集とコマンドは毎回確認 使い始め・慎重にやりたい作業
acceptEdits 読み取り+ファイル編集+よく使う mkdir touch rm rmdir mv cp sed など 自分で見直しながらコードを直していく
plan 読み取りだけ(調べて計画を出す、編集はしない) 手を入れる前にコードの中身を調べる
auto ぜんぶ。ただし裏で安全チェックが走る 長い作業・確認疲れを減らす
dontAsk 事前に許可したものだけ 締めたCI・スクリプト
bypassPermissions ぜんぶ、無条件 隔離コンテナ・VM専用

このうち Shift+Tab のサイクルに最初から入っているのは上の3つです。auto は要件(後述)を満たしたアカウントだと plan の後ろにサイクル追加されますが、初回は受け入れの確認が出ます。dontAsk はサイクルには出ず、bypassPermissions も起動時に専用の指定をつけた時だけ顔を出す。下の3つは基本的に起動時に名指しで有効にする別経路、と思っておくといいです。

「家計簿アプリ」を例に、実際の手順を見る

題材は、Claude Codeで作っている家計簿アプリです。プロジェクトのフォルダは ~/budget-app にあるとします。編集のたびに出る確認を減らしていく流れを追います。

ステップ1: 起動直後は default。読みは自動、書き換えは毎回確認

家計簿アプリのフォルダでClaude Codeを立ち上げると、最初は default です。「収支グラフの色を変えて」と頼むと、関連ファイルはスッと読みに行きます。読むだけは確認なし。

ところが実際にファイルを書き換える段になると止まります。

Edit budget.js
  Do you want to make this edit? (y/n)

1回ならいい。ただ色の微調整を10回繰り返すと、10回 Enter を押すことになります。これがだんだん効いてきます。

ステップ2: Shift+Tab で acceptEdits に切り替える

Shift+Tab を1回押します。画面の下のステータスバーに ⏵⏵ accept edits on と出れば acceptEdits モードです。

これで ~/budget-app の中のファイル編集と、mkdir touch rm rmdir mv cp sed といったよく使う操作が確認なしで通ります。色の微調整10連発も、もう Enter 連打は要りません。あとから git diff でまとめて差分を見ればいい、という発想です。

ステップ3: ここで初心者がやりがちな勘違い

acceptEdits にしたから「もう何でも勝手にやってくれる」と思いがちですが、違います。自動で通るのは ~/budget-app の中だけ。フォルダの外への書き込み、それと .git.claude といった保護対象への書き込みは、このモードでも必ず確認が出ます。

つまり家計簿アプリのコードは勝手に直しても、その下にある履歴の保管庫こと .git には勝手に手を出さない設計です。事故で大事なものを壊さないための歯止めですね。

ステップ4: 大きな作り直しの前に plan モードへ

「収支データの保存方法をまるごと作り直したい」みたいな大手術の前は、いきなり書き換えさせると怖い。そこで Shift+Tab をもう1回押して plan モードにします。

plan はClaudeに「調べて計画だけ出して、手は出すな」と命じるモードです。ファイルを読み、必要なら調査のコマンドを動かし、作り直しの計画書を出してくる。でもコードは1文字も書き換えません。

計画ができると、Claudeが「この計画でどう進める?」と聞いてきます。そのまま編集に入る、1つずつ手動で見る、計画を練り直す、などをここで選べます。承認するとモードが切り替わって編集が始まる流れです。

ステップ5: 今どのモードか、ステータスバーで確認する癖をつける

モードはセッション中ずっと残ります。さっき acceptEdits にしたのを忘れて翌日も同じ画面で作業すると、「あれ、確認なしで通ってる」と慌てます。一手動かす前に、画面下のステータスバーをチラ見する習慣をつけると安全です。

ステップ6: 危ない操作の前は default に戻す

本番環境への反映や、決済まわりの変更みたいな「失敗が痛い」操作の前は、Shift+Tabdefault まで戻します。一手ごとに確認が出る状態に戻して、自分の目で1つずつ承認する。

ちなみに bypassPermissions(全部無条件で通すモード)は、家計簿アプリを自分のパソコンで作っている限り出番はありません。あれは隔離した箱の中でだけ使うものです。理由は落とし穴のところで書きます。

つまり Permission Modes は何をしてくれるのか

  • やってくれる: 確認の頻度を6段階で切り替える。読むだけ自動・編集も自動・全部おまかせ、を場面で選べる
  • やってくれない: チャットで「確認しないで」と頼んでも変わらない。切り替えは Shift+Tab か起動時の指定か設定ファイルだけ
  • 意味が薄い場面: 一度きりの小さな作業。1ファイル直すだけなら default のまま1回 Enter を押すほうが早い

使いどころ3シナリオ(家計簿アプリで再現)

シナリオ1: 自分で差分を見ながらコードを直していく → acceptEdits

家計簿アプリの収支グラフを、色・文字サイズ・並び順とこまかく詰めていく作業。1回ごとに確認を押すのは時間のムダです。acceptEdits にして編集を自動で通し、キリのいいところで git diff を開いて「ここ意図と違うな」をまとめてチェックする。これが一番テンポがいい使い方だと思います。

シナリオ2: 既存コードの中身を調べてから手を入れたい → plan

他の人が書いた家計簿アプリを引き継いで、まず「どこで何をしているか」を把握したいとき。plan なら、Claudeが読みあさって全体像と作り直しの計画を出してくれます。手は出さないので、把握しきる前に勝手に壊される心配がない。調査フェーズの安心感がぜんぜん違います。

シナリオ3: CIで決まった作業だけ自動で回したい → dontAsk

家計簿アプリのテストを、保存のたびに機械が自動で回す環境を組むとき。人が画面の前にいないので、確認が出たら止まってしまいます。dontAsk は事前に許可したものだけ通し、それ以外は全部はねる「完全おまかせ不可」のモード。CIにぴったりです。隔離した箱の中で全部任せてしまうなら bypassPermissions もありますが、これは後述の警告つきで使います。

初心者が踏みやすい落とし穴

  • bypassPermissions を普通のパソコンで使わない。確認も安全チェックも全部切るので、外部から仕込まれた悪意ある指示(プロンプトインジェクション)に丸腰です。公式も「コンテナ・VMなど隔離した環境専用」と明言しています。ただし全部切るとはいえ、rm -rf /rm -rf ~ のようなパソコン全体やホームを丸ごと消す操作だけは、モデルの誤作動への歯止めとして bypassPermissions でも確認が出ます。確認なしで安全チェックは欲しい、なら auto を使う。
  • bypassPermissions は途中から入れない。起動時に専用の指定をつけて立ち上げたセッションでないと選べず、入りたければ立ち上げ直しが必要です。--dangerously-skip-permissions も同じ扱い。Linux/Macでは管理者権限(root/sudo)での起動を拒否されます。
  • Shift+Tab のサイクルは基本3つ。最初は defaultacceptEditsplan のループです。auto は要件を満たすと plan の後ろに加わり(初回は受け入れ確認つき)、bypassPermissions も起動時に --allow-dangerously-skip-permissions をつければサイクルに入ります。dontAsk はサイクルには出ません。起動時に何も有効化していなければ、出てくるのは3つだけです。
  • auto はまだ research preview で条件が厳しい。使えるモデルは Claude Sonnet 4.6・Opus 4.6・Opus 4.7 のみ、Anthropic API 経由限定で Bedrock / Vertex / Foundry では使えず、v2.1.83 以降が必要。公式も「確認は減るが安全を保証するものではない」と釘を刺しています。
  • acceptEdits でも保護対象と作業フォルダの外は自動承認されない.git .claude .zshrc などへの書き込み、~/budget-app の外への書き込みは、このモードでも確認が出ます。「全部自動になった」と油断しないこと。
  • 設定ファイルの置き場所を間違えると auto が無視される。プロジェクト側やローカルの settings.jsondefaultMode: "auto" と書いても効きません。これはプロジェクトが勝手に自分へ auto を許可できないようにする仕組みで、~/.claude/settings.json 側に置く必要があります。
  • auto で口頭で言った境界は会話が要約されると消えるauto 中に「pushしないで」と言うと、判定役のAIがその境界を守ってくれます。ただ会話が長くなって要約で前の発言が消えると、その境界ごと失われます。確実に止めたいなら、口頭ではなく拒否ルールを設定しておく。

書き方

Shift+Tab で default → acceptEdits → plan を切り替え/起動時は claude --permission-mode plan のように後ろに書き足す/いつも同じにしたいなら settings.json の permissions.defaultMode に書く

やってみるとこうなる

入力

Shift+Tab

出力例

ステータスバーの表示が「⏵⏵ accept edits on」に変わり、作業フォルダ内のファイル編集が確認なしで通るようになる(保護対象と作業フォルダ外は引き続き確認が出る)

このページに出てきた言葉

モード
Claudeがどこまで勝手に動いていいかの設定。<code>default</code>(毎回確認)から <code>bypassPermissions</code>(全部おまかせ)まで6段階ある
Shift+Tab
セッション中にモードを <code>default</code> → <code>acceptEdits</code> → <code>plan</code> と切り替えるキー操作。今どのモードかは画面下のステータスバーに出る
保護対象
<code>.git</code>(変更履歴の保管庫)や <code>.claude</code>(Claude Code自身の設定)など、どのモードでも勝手には書き換えさせない大事なファイル群
research preview
試験的な先行公開のこと。機能は使えるが、まだ完成版ではなく挙動が変わりうる段階。<code>auto</code> モードがこれにあたる
プロンプトインジェクション
Webページやファイルの中にAIをだます指示をこっそり仕込む攻撃。<code>bypassPermissions</code> はこれに丸腰なので隔離環境専用
判定役のAI
<code>auto</code> モードで動くもう1つの別モデル。Claudeの操作を実行前にチェックし、頼んだ範囲を超える危ない動きをブロックする

関連項目

公式ドキュメント

https://code.claude.com/docs/en/permission-modes

-

← 戻る