Claude Code はデフォルトで、ファイルの書き込み・シェルコマンド・ツール呼び出しのたびに承認を求めます。安全側に倒した設計として理にかなっていますが、信頼できる環境で作業しているとき、あるいは CI パイプライン内で Claude Code を動かしているときには、5分おきに承認ダイアログが出るのはワークフローを大きく妨げます。
2026年3月24日にリリースされた Auto Mode は、この問題を「安全レイヤーを維持しつつパーミッションプロンプトをなくす」方法で解決します。本記事では、その安全レイヤーが実際にどう動いているか、--dangerously-skip-permissions との本質的な違い、そして具体的な設定方法を解説します。
Auto Mode とは何か
Auto Mode は、アクションごとに人間が承認する代わりに 2段階クラシファイア が自動判定を行うパーミッションバイパスです。有効にすると承認ダイアログが消え、Claude Code が各アクションの安全性を自律的に判断します。
インタラクティブセッションでは Shift+Tab で切り替えます。プロンプト部分のステータス表示が変わり、Auto Mode が有効になったことを確認できます。
表面上はシンプルですが、内部ではパーミッションシステムが依然として稼働しています。ただし、意思決定者が「人間」から「クラシファイア」に変わっているだけです。
2段階クラシファイアの仕組み
多くの解説記事がここを省略していますが、Auto Mode は「すべてをスキップするスイッチ」ではありません。すべてのアクションは Claude Code が実行する前に2つのクラシファイアを通過します。
Stage 1:インテントクラシファイア
最初のクラシファイアは「このアクションが何をしようとしているか」を評価します。具体的には以下の軸で分類します。
- 読み取りか書き込みか
- 操作がカレントディレクトリ内に収まっているか、外部に影響が及ぶ可能性があるか
- 可逆的な操作(ファイル編集)か、不可逆な操作(
rm、ネットワークリクエスト)か - 外部システム(API、データベース、サードパーティサービス)を伴うか
Stage 1 はまだ「安全/危険」のバイナリ判断をしていません。アクションの構造化された説明を作り上げ、それを Stage 2 に渡します。
Stage 2:リスク評価クラシファイア
2番目のクラシファイアは Stage 1 の出力をリスクモデルと照合し、具体的な判断を下します:ALLOW または DENY です。
DENY 方向に働く要因:
- プロジェクトディレクトリ外への書き込み
- プロジェクトスコープを超えてシステム状態を変更するシェルコマンド
- スコープ外ドメインへのアウトバウンドネットワーク呼び出し
- リスクを増幅するようなツール呼び出しの連鎖(ファイルに書き込んで即実行など)
ALLOW 方向に働く要因:
- プロジェクトファイルの読み取り操作
- Claude Code が現在のセッションですでに触れたディレクトリへの書き込み
- セッション内で確立済みのパターンに合致するツール呼び出し
クラシファイアが DENY を出すと、Auto Mode 有効中でも承認ダイアログが表示されます。これが重要な点です。Auto Mode は、クラシファイアが自信を持って判断できるアクションのプロンプトを除去するものであり、高リスクと判定されたアクションのプロンプトは除去しません。
Auto Mode と --dangerously-skip-permissions の違い
この2つは表面上似た効果を持ちますが、根本的に異なる仕組みで動作します。
| Auto Mode | --dangerously-skip-permissions | |
|---|---|---|
| 安全クラシファイア | 全アクションで実行される | 完全にバイパスされる |
| DENY の場合 | 承認ダイアログを表示 | DENY は起こらない(すべて許可) |
| 想定用途 | 信頼環境でのインタラクティブ使用 | ヘッドレス自動化(安全網なし) |
| フラグ | 不要(Shift+Tab で切り替え) | --dangerously-skip-permissions 必須 |
| 組織レベルでの無効化 | 可能(disableBypassPermissionsMode) | 同じ設定で無効化可能 |
--dangerously-skip-permissions は、インタラクティブなプロンプトが技術的に不可能なヘッドレス環境のために存在します。コンテナ内の CI パイプライン、自動テストランナー、スクリプトによるバッチ処理などです。名前が意図的に警告的なのは、その挙動がそれだけ重大だからです:クラシファイアは動かず、何もブロックされず、Claude Code が決定したことはすべて実行されます。
Auto Mode は、環境を信頼していて中断なく作業したい人間向けの機能です。 クラシファイアは動き続け、高リスクと判定されたアクションは引き続きフラグが立ちます。すべての安全システムを捨てる代わりに、承認ダイアログをクラシファイアの判断に委ねているだけです。
Claude Code とやり取りできる環境にいるなら、ほぼ確実に Auto Mode の方が適切です。--dangerously-skip-permissions は、一切の入力を受け付けられないパイプライン向けです。
settings.json による Auto Mode のカスタマイズ
クラシファイアのデフォルト設定は汎用的なユースケース向けに調整されています。プロジェクトの具体的な形状(必要なツール、使わないツール、想定される外部呼び出し)がわかっている場合は、settings.json を通じて動作を調整できます。
ファイルはプロジェクトルートの .claude/settings.json、またはユーザーレベルのデフォルトとして ~/.claude/settings.json に置きます。
Auto Mode が自動処理するツールを指定する
{
"autoMode": {
"allowedTools": [
"Read",
"Write",
"Edit",
"Bash"
]
}
}
allowedTools を設定すると、Auto Mode はリストに含まれるツールのみプロンプトをバイパスします。リストにないツールは Auto Mode が有効であっても承認ダイアログを表示します。
特定のツールを Auto Mode の対象から外す
{
"autoMode": {
"deniedTools": [
"WebSearch",
"WebFetch"
]
}
}
deniedTools は、クラシファイアの判断に関わらず特定のツールに必ず承認プロンプトを表示させます。ローカル操作は Auto Mode のフローで処理しつつ、ネットワーク呼び出しは常に手動承認したい場合に使います。
両方のリストを組み合わせる
{
"autoMode": {
"allowedTools": [
"Read",
"Write",
"Edit",
"Bash",
"Grep",
"Glob"
],
"deniedTools": [
"WebSearch",
"WebFetch",
"mcp__stripe__charge",
"mcp__database__execute_query"
]
}
}
deniedTools は allowedTools より優先されます。両方に同じツールが含まれている場合、そのツールは拒否されます。
「ローカルツールをホワイトリスト、外部システムに触れるものをブロックリスト」というパターンが最も汎用的な設定です。コード操作で中断されることなく作業しながら、自分のマシンの外に出るもの・プロジェクト外のデータを変更するものは明示的な制御下に置けます。
MCP サーバーのツールを設定する
MCP ツール名は mcp__<サーバー名>__<ツール名> の形式に従います。必要に応じて細かく、あるいは大まかに指定できます。
{
"autoMode": {
"deniedTools": [
"mcp__database__*",
"mcp__stripe__*"
]
}
}
ワイルドカードパターンを使うと、特定の MCP サーバー全体を Auto Mode の対象外にしつつ、他のクラシファイア駆動の動作は維持できます。
エンタープライズ:組織全体で Auto Mode を無効化する
チームに Claude Code をデプロイしている組織では、ユーザーによる Auto Mode の有効化を禁止することができます。
組織レベルの settings.json(MDM や共有設定管理で配布)に以下を記述します:
{
"permissions": {
"disableBypassPermissionsMode": true
}
}
disableBypassPermissionsMode: true は Auto Mode と --dangerously-skip-permissions の両方を無効にします。ユーザーがいずれも有効にできなくなり、インタラクティブセッションでの Shift+Tab も効果を持ちません。
この設定が適切な場面:
- すべてのアクションに監査証跡が必要な機密コードベースで作業しているチーム
- AI による コード変更にコンプライアンス要件がある組織
- Claude Code が本番システムや顧客データにアクセスできる環境
プロジェクトの .claude/settings.json に設定を置くことで、機密リポジトリにだけ厳格モードを適用し、他では Auto Mode を許可するという使い分けも可能です。
実際のユースケース
信頼できるプロジェクトでのローカル開発
最も一般的なユースケースです。自分のコードベースで作業していて、Claude Code は自分のローカル開発環境を指しており、スコープ内に機密なものはない。セッション開始時に Shift+Tab を押し、中断なく作業し、終わったら無効に戻す。
クラシファイアはエッジケースを引き続き捕捉します。Claude Code がプロジェクトディレクトリ外に書き込もうとしたり、予期しないネットワークエンドポイントにアクセスしようとすると、プロンプトが表示されます。通常のプロジェクト範囲内のすべてのアクションについては、プロンプトは出ません。
自動コードレビューパイプライン
Claude Code は CI パイプライン内でプルリクエストの分析、リファクタリング提案、コーディング規約の適用に利用できます。この場合、パイプラインは --dangerously-skip-permissions で Claude Code を起動し(人間が承認できないため)、deniedTools 設定で書き込み操作をブロックします。
ただし注意:--dangerously-skip-permissions を使用している場合、deniedTools は機能しません。パーミッションレイヤー全体がバイパスされるためです。読み取り専用の CI パイプラインには、設定ではなく CLI フラグで許可ツールを指定するアプローチが正解です:
claude --dangerously-skip-permissions \
--allowedTools "Read,Grep,Glob" \
"Analyze the diff in this PR and identify potential issues"
繰り返しリファクタリングセッション
モジュールのリネーム、50ファイルにわたるインポートの再構成、API インターフェースの更新など。すべてのアクションが同じパターンのバリエーションであり、50回承認を求められても安全上の意味はありません。アプローチはすでにレビュー済みのはずです。
allowedTools を Read、Write、Edit、Grep に絞った Auto Mode がこうしたセッションに適しています。繰り返しの承認をなくしながら、想定外のことがあればクラシファイアが対処します。
マルチエージェント構成
Claude Code をオーケストレーターエージェントから呼ばれるサブエージェントとして動かす場合、インタラクティブなプロンプトなしで動作する必要があります。Auto Mode はプログラムから有効化でき、クラシファイアレイヤーが人間が直接監視していない状況でも合理的な安全床を提供します。
Auto Mode が守ってくれないもの
限界を正確に把握しておくことが重要です。
クラシファイアは完璧ではありません。 一般的なパターン向けに調整されたリスクモデルを使用しています。珍しいアクション、通常でないツールの組み合わせ、巧妙に構成されたプロンプトは、手動レビューなら捕捉できたものでも ALLOW 判定を受けることがあります。Auto Mode は監視のオーバーヘッドを減らしますが、監視を不要にするものではありません。
プロジェクトディレクトリ内の意図しないファイル書き込みは承認されます。 クラシファイアはデフォルトでプロジェクトスコープのパスへの書き込みを許可します。Claude Code がプロジェクト内のファイルに誤った編集をしても、Auto Mode はそれを捕捉しません。ここで /rewind とチェックポイント機能が Auto Mode の重要な補完として機能します。
想定パターンに合致する API 呼び出しは承認されます。 セッション内で特定の MCP ツールを一度使用すると、クラシファイアはその後の同じツールへの呼び出しを確立済みの動作として扱います。同じツールへの予期しないフォローアップ呼び出しが通り抜ける可能性があります。
Auto Mode は判断のログを取りません。 クラシファイアは ALLOW/DENY の判断を監査証跡に書き込まずに行います。Claude Code が何をしてなぜそうしたかの記録が必要な場合、別のアプローチが必要です。アクションごとの手動承認か、外部ロギングレイヤーの追加が選択肢です。
これらのリスクが重要な環境では、Auto Mode を使わないことが正解です。パーミッションダイアログは、人間がループに入るモデルが本当に安全な状況のために存在します。
まとめ
Auto Mode は特定の文脈で有効なツールです。環境を信頼していて、Claude Code に何をやらせるかのスコープを把握していて、アクションごとの承認のオーバーヘッドが意味ある安全上の利益を生まずにスピードを落としているとき。
2段階クラシファイアにより、完全に盲目的な状態にはなりません。高リスクなアクションには引き続きプロンプトが出ます。allowedTools と deniedTools の設定で、クラシファイアが自分の判断に任せる場所とあなたに委ねる場所を細かく調整できます。
--dangerously-skip-permissions は別の文脈のための別のツールです。人間のインタラクションが一切不可能な完全自動パイプライン向け。安全モデルはクラシファイアが各アクションを監視することではなく、起動前に Claude Code がアクセスできるものをスコープで制限することにあります。
様々なプロジェクトタイプにわたる Claude Code の設定パターンを追跡しています。他のチームがどのように設定やルールを構成しているか興味があれば、ルールコレクション に本番環境の事例があります。
クイックリファレンス
Auto Mode を有効化: インタラクティブセッションで Shift+Tab
Auto Mode を無効化: 再度 Shift+Tab
ヘッドレス用 CLI フラグ: --dangerously-skip-permissions(クラシファイアなし、すべて許可)
特定のツールを Auto Mode からブロック:
{ "autoMode": { "deniedTools": ["WebFetch"] } }
Auto Mode を特定のツールに限定:
{ "autoMode": { "allowedTools": ["Read", "Write", "Edit"] } }
組織全体で Auto Mode を無効化:
{ "permissions": { "disableBypassPermissionsMode": true } }
settings.json の場所:
- プロジェクトレベル:
.claude/settings.json - ユーザーレベル:
~/.claude/settings.json - 組織レベル:MDM または共有設定管理ツールで配布