【2026年最新】Claude Codeのdangerously-skip-permissionsとautoモードは何が違う?6つのパーミッションモード完全解説

dangerously-skip-permissionsって名前が怖すぎて使えない」

Claude Codeを使い始めると、必ずこのフラグを目にする。そして2026年3月、新たな疑問が加わった。

autoモードが来たらしいけど、dangerously-skip-permissionsと何が違うの?」

この2つは一見「どちらも確認ダイアログなしで動く」ように見えるが、設計思想がまったく異なる。dangerously-skip-permissionsは「人間の判断を完全に排除する」、autoモードは「AIが各操作の危険度を判断する」 — この違いを理解することが、今後のClaude Code活用の鍵になる。

この記事では、2026年3月現在のClaude Codeパーミッションシステムを6つのモード全体像から解説し、dangerously-skip-permissions vs autoモードの本質的な違いに迫る。

📌 注意: autoモードは2026年3月時点でResearch Preview段階。利用できるユーザーは限定的な可能性がある。


目次

なぜパーミッション制御が必要なのか

Claude Codeはファイルの読み書き、Bashコマンドの実行、外部APIへのリクエスト — これらをすべて「自律的に」実行できる。AIが自律的に動くからこそ、意図しない操作を防ぐ仕組みが必要になる。

パーミッションシステムは公式ドキュメント上「Allow/Ask/Denyルール」で構成され、評価順序は deny → ask → allow だ。本記事ではこれに加えてCLAUDE.mdによるスコープ制限を組み合わせた実用的な3層防御として整理する(筆者の整理であり、Anthropic公式の呼称ではない):

[Layer 3] Confirm(確認モード)= Allow/Ask/Denyルール
  → settings.json の defaultMode でどのレベルで確認を求めるか設定
  → 本記事のメインテーマ

[Layer 2] Scope(作業範囲制限)
  → CLAUDE.mdで作業ディレクトリ・禁止操作を記述

[Layer 1] Deny(絶対禁止ルール)
  → settings.json の deny配列でブロックするコマンドを定義
  → 例: rm -rf * は永続的にブロック

多くのユーザーが「パーミッションモードだけ変えれば自動化できる」と考えがちだが、3層すべてを設計することで初めて安全な自動化が実現する


6つのパーミッションモード一覧

Claude Codeには現在5つの標準パーミッションモードが存在し、さらに2026年3月にResearch Previewとしてautoモードが追加された(auto--enable-auto-modeフラグで有効化する別仕組み)。

モード確認プロンプトファイル操作BashコマンドAI判断向いている用途
planなし(実行不可)❌ 不可❌ 不可コード分析・プランニングのみ
default各ツール初回使用時⚠️ 一部確認⚠️ 要確認通常の対話型開発
acceptEditsファイル編集は自動✅ 自動⚠️ 要確認コーディング作業を快適に
dontAskダイアログなし(許可外は拒否)設定次第設定次第CI/CDヘッドレスエージェント
bypassPermissionsなし(全自動)✅ 自動✅ 自動完全隔離環境での自動化
auto ⭐NEWAIが危険度判定✅ 自動(低リスク)🤖 AI判断✅ あり日常開発(Research Preview)

各モードの詳細解説

plan — 「見るだけ」モード

planモードはClaude Codeのすべてのツール実行を完全にブロックする。コードを読んで分析し、計画を提案することしかできない。

// settings.json
{
  "permissions": {
    "defaultMode": "plan"
  }
}

こんなときに使う:
– 「このコードが何をしているか説明して」という分析依頼
– 変更のリスクを確認してからGOサインを出したい
– Claude Codeを使い始めて、AIがどう動くか学びたい


default — 「標準」モード

インストール直後のデフォルト。各ツールの初回使用時に確認プロンプトが表示される(公式: “Standard behavior: prompts for permission on first use of each tool”)。一度承認したツールはセッション中は再確認されない。

こんなときに使う:
– 通常の日常的な開発作業
– 新しいプロジェクトをClaude Codeに任せるとき
– 「任せたいけど、重要な操作は自分で確認したい」というバランス型

バランスは良いが、コーディング作業を続けると「ファイル編集するたびに確認ダイアログが来る」のがストレスに感じる場合もある。その場合は次のacceptEditsが最適だ。


acceptEdits — 「コーディング最適化」モード

ファイル操作(Read/Write/Edit)を自動承認しつつ、Bashコマンドなど潜在的に危険な操作は引き続き確認を求める。

// settings.json
{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

こんなときに使う:
– ガッツリとコーディング作業をするとき
– ファイルの編集は任せたいが、コマンド実行は自分で確認したい
– 「defaultより快適にしたいが、bypassPermissionsはさすがに不安」というとき

# セッション開始時にacceptEditsモードで起動
claude --permission-mode acceptEdits

実際の開発で最もバランスが取れているモードとして、多くのユーザーに支持されている。ただし auto モードが正式リリースされれば、その役割を置き換える可能性がある。


dontAsk — 「明示的許可リスト」モード

あまり知られていないが、CI/CDや自動化に最も適した設計のモードだ。

動作の仕組み:
1. permissions.allow(settings.json)で事前承認されたツール → 実行
2. それ以外のツール → 確認ダイアログなしで拒否(静かに失敗)

// settings.json
{
  "permissions": {
    "defaultMode": "dontAsk",
    "allow": [
      "Read(*)",
      "Write(src/**)",
      "Bash(npm test)",
      "Bash(npm run lint)"
    ]
  }
}

こんなときに使う:
– CI/CDパイプラインにClaude Codeを組み込む
– 「テストの実行とログ解析だけに限定したい」というヘッドレス実行

制限事項: Claude Code CLI(settings.json)では誰でも利用可能。ただしClaude Agent SDKとして組み込む場合はTypeScript SDKのみ対応(Python SDK未対応)。CLIユーザーには制限はない。


bypassPermissions — 「完全自動化」モード

すべての権限チェックをスキップし、確認ダイアログなしで全操作を実行する。

// settings.json
{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}

Anthropicの公式スタンス: 「コンテナやVMなど完全に隔離された環境でのみ使用すること」

こんなときに使う:
– Dockerコンテナ内でのClaude Code自動化
– 一時的なCI/CDランナー(使い捨て環境)
– 個人のサンドボックス環境での実験・プロトタイピング


auto — 「AI判断」モード ⭐ Research Preview(2026年3月)

2026年3月、Anthropicがリサーチプレビューとして投入した新モード。

従来のモードと根本的に違う点が一つある。Claude自身が各操作の危険度を評価し、承認が必要かどうかを決める

動作の仕組み(※Anthropicは正確な判断基準を公式公開していない。以下は一般的な傾向):
– 読み取り専用の操作 → 自動実行
– 外部ネットワーク接続を伴うコマンド → ユーザーに確認
– ファイルシステムへの広範なアクセス → Claudeが文脈を判断して決定

# Research Preview版での有効化
claude --enable-auto-mode

こんなときに使う:
– 日常の開発作業で確認ダイアログを減らしたい
acceptEditsより賢い自動化が欲しい
– AIに判断を任せながらも完全放棄はしたくない

コスト面の注意: autoモードはトークン消費が増加する。各操作前にClaude自身が「この操作に確認が必要か」を推論するため、レスポンスの遅延とコスト増が発生しうる。


dangerously-skip-permissions vs auto モード — 本質的な違い

これが本記事の核心だ。どちらも「確認ダイアログを減らす」方向性を持ちながら、その設計思想はまったく異なる。

dangerously-skip-permissions(= bypassPermissions)の考え方

人間の判断 → 完全排除
Claude → すべて実行してよい

このフラグは「環境ごと隔離することで安全を担保する」というアプローチだ。確認しないのではなく「壊れても困らない環境だから確認不要」という前提がある。

# CLIフラグで一時的に使う
claude --dangerously-skip-permissions

# または settings.json で永続化
{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}

安全のための前提条件:
– Dockerコンテナ / 使い捨てVM
– 本番データへのアクセスなし
– ネットワーク制限が別途かかっている

auto モードの考え方

人間の判断 → AIが代替
Claude → 危険度を評価して実行可否を決める

このモードは「AIの判断力を使って確認の必要性を減らす」というアプローチだ。環境の隔離は必要なく、Claudeが文脈を理解して適切な判断を下す。

claude --enable-auto-mode

想定される用途:
– 通常のローカル開発環境
– 本番に繋がっていない開発マシン
– 「頭を使いたくないが環境を隔離する手間もかけたくない」ケース

比較表: どちらを選ぶべきか

観点dangerously-skip-permissionsauto モード
安全の担保環境の隔離(コンテナ等)Claudeの判断
危険操作への対応すべて実行(Deny設定で補完)危険と判断した操作は確認
トークンコスト増加なし増加(推論コスト)
利用環境完全隔離環境が必須ローカル開発でも使用可
現在の状態安定版Research Preview
向いているユーザーCI/CD・コンテナ活用者日常開発で快適さを求める人

一言で言うなら:
dangerously-skip-permissions = 「環境が安全だから何でもやっていい」
auto = 「AIが判断するから確認しなくていい」


dangerously-skip-permissions の正体

改めて整理すると、dangerously-skip-permissionsbypassPermissionsモードのCLIエイリアスだ。

# この2つは同じ意味
claude --dangerously-skip-permissions
claude --permission-mode bypassPermissions

なぜ怖い名前のフラグが存在するのか?Anthropicの設計意図として「このフラグを使うときは十分理解してから使え」という警告が込められている。一時的な有効化(CLIフラグ)と永続化(settings.json)を使い分けることで、「まず試してから組み込む」というワークフローを促す意図もある。


ユースケース別の選び方

ケース1: 通常の対話型開発

推奨: acceptEdits(現在)/ auto(Research Preview解禁後)
理由: ファイル編集は自動で快適に。Bash操作は確認できて安心。

ケース2: コードレビュー・分析だけしたい

推奨: plan
理由: 変更不可でコード解析に専念。「壊れるのが心配」という不安がゼロ。

ケース3: CI/CDに組み込みたい(安全第一)

推奨: dontAsk + allowリスト明示
理由: 許可外の操作は拒否。予測可能で安全な自動化。

設定例:
{
  "permissions": {
    "defaultMode": "dontAsk",
    "allow": ["Read(*)", "Bash(npm test)", "Bash(npm run build)"]
  }
}

ケース4: Dockerコンテナで完全自動化

推奨: bypassPermissions(= --dangerously-skip-permissions)
前提: コンテナが壊れても問題ない隔離環境であること

設定例:
{
  "permissions": {
    "defaultMode": "bypassPermissions",
    "deny": [
      "Bash(curl * | bash *)",
      "Bash(wget * && bash *)"
    ]
  }
}

ケース5: ローカル開発で確認ダイアログを最小化したい(新)

推奨: auto(Research Preview)
前提: Claude Code最新版で --enable-auto-mode が使えること

注意: Research Preview段階のため、本番ワークフローへの組み込みは慎重に。

安全な設定パターン — Deny設定との組み合わせ

bypassPermissionsacceptEditsを使う場合でも、Layer 1のDeny設定を組み合わせることで安全性を高められる。

個人開発向け最小Deny設定

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "deny": [
      "Bash(rm *)",
      "Bash(rm -r*)",
      "Bash(rm -rf*)",
      "Bash(git reset --hard *)",
      "Bash(git push --force*)"
    ]
  }
}

bypassPermissions + 最低限のガード

{
  "permissions": {
    "defaultMode": "bypassPermissions",
    "deny": [
      "Bash(rm -rf *)",
      "Bash(curl * | bash *)",
      "Bash(wget * -O- | sh *)",
      "Bash(sudo *)"
    ]
  }
}

Anthropic公式の推奨: devcontainerの活用

Anthropicは完全自動化のためのリファレンス実装として公式devcontainerを提供している。このコンテナには以下が事前設定されている:

  • ファイアウォールルールで外部接続をnpmレジストリ・GitHub・Claude APIなど必要なサービスのみに制限
  • デフォルト拒否のネットワークポリシー
  • この環境ならdangerously-skip-permissionsを安心して使えると公式ドキュメントで明記

Agent Teams での注意点

Claude Codeで複数エージェントを並列実行する場合、チームメイトはリーダーのパーミッション設定を継承する

リーダーが --dangerously-skip-permissions
  → 全チームメイトも bypassPermissions で動作する

これはパワフルな反面、意図せず全エージェントが制約なしに動く状態になりうる。Agent Teams使用時は特にDeny設定でのLayer 1防御が重要だ。


まとめ

dangerously-skip-permissionsbypassPermissionsモードへのCLIショートカットであり、「環境の隔離を前提にすべての操作を自動化する」モードだ。

2026年3月に登場したautoモードはこれとは異なり、「Claudeが各操作の危険度をAIで判断する」新世代のアプローチ。どちらも「確認ダイアログを減らす」が、安全担保の方法が根本的に異なる。

使いたいとき選ぶモード
安全にコード分析plan
普通に開発default
コーディング快適にacceptEdits
CI/CD(明示的制御)dontAsk + allowリスト
隔離環境での完全自動化bypassPermissions / dangerously-skip-permissions
ローカルで賢い自動化(Preview)auto

3層防御(Deny設定・スコープ制限・モード選択)を組み合わせることで、どのモードも安全に活用できる。dangerously-skip-permissionsも怖い名前に惑わされず、適切な環境で使えば強力なツールだ。


参考リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次