Claude Codeの--dangerously-skip-permissionsは、ファイルの編集やコマンドの実行の前に出る権限確認(「実行してよいですか?」の確認)をすべてスキップするオプションです。
確認が多くて作業が止まるのが面倒で、このオプションを調べている人も多いと思います。ただ、今のClaude Codeには、確認を大きく減らしつつ危険な操作だけを止めるauto modeがあり、ターミナルではこれが最初から有効になっています。この記事では、--dangerously-skip-permissionsの使い方と危険性、代わりの方法、チームで使えないようにする設定をまとめます。
この記事の内容は、2026年10月時点のClaude Codeの公式ドキュメント(権限モード、設定、管理設定のページ)で確認しています。Claude Codeは更新が速いので、細かい挙動は公式ドキュメントもあわせて確認してください。
先に結論
| やりたいこと | おすすめ |
|---|---|
| 確認を減らして、作業を止めずに進めたい | auto mode(ターミナルでは最初から有効。Shift+Tabで切り替え) |
| ファイルの編集だけ確認なしにしたい | acceptEdits(Shift+Tabで切り替え) |
| よく使うコマンドだけ確認なしにしたい | 許可ルール(/permissionsで追加) |
| コンテナの中で、完全に放置して動かしたい | --dangerously-skip-permissions |
| チームや会社で使えないようにしたい | permissions.disableBypassPermissionsModeを"disable"に |
--dangerously-skip-permissionsは、公式ドキュメントで「コンテナやVMなど、隔離された環境でだけ使う」とされています。普段の手元の開発で確認を減らしたいだけなら、auto modeを使うのが安全です。
–dangerously-skip-permissionsとは
Claude Codeには、どこまで確認なしで実行するかを決める権限モードがあります。--dangerously-skip-permissionsは、そのうちのbypassPermissionsモードで起動するオプションで、次のコマンドと同じ意味です。
claude --dangerously-skip-permissions
# 同じ意味
claude --permission-mode bypassPermissions
このモードでは、ファイルの編集、シェルのコマンド、ネットワークへのアクセスが、確認なしですぐに実行されます。.gitや.claude、.zshrcのような、通常は必ず確認が出る「保護されたパス」への書き込みも確認なしになります。
使うときの決まりは次のとおりです。
- 最初の1回だけ警告が出ます。責任を負うことに同意すると、
~/.claude/settings.jsonにskipDangerousModePermissionPrompt: trueが書き込まれ、次からは出なくなります。同意しないとClaude Codeは終了します - LinuxとmacOSでは、rootや
sudoでは起動できません。「--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons」と表示されます(公式が認識するサンドボックスの中では、このチェックは省かれます) - 起動したあとから切り替えることはできません。起動時にこのオプションを付けるか、
--allow-dangerously-skip-permissionsを付けて起動します。後者は、Shift+Tabで切り替えられる候補にbypassPermissionsを加えるだけで、最初からは有効にしません
それでも確認が出る・止まる操作
bypassPermissionsでも、すべてが素通りになるわけではありません。公式ドキュメントでは、次のものはこのモードでも止まるとされています。
- 拒否ルール(
permissions.deny)に当てはまる操作。拒否ルールは、bypassPermissionsを含むすべてのモードで効きます - 確認ルール(
ask)に当てはまる操作。明示的に「毎回確認する」と決めたものは確認が出ます - 重要なパスを消す
rm/rmdir。rm -rf /やrm -rf ~のような操作です。ターミナルでは2分のカウントダウン付きで確認が出て、答えなければ実行されません
逆に言うと、拒否ルールで決めていない操作は、どんなものでも確認なしで実行されます。
なぜ危険なのか
公式ドキュメントには、次のような注意書きがあります。
bypassPermissionsは、プロンプトインジェクションや意図しない操作を何も防がない- インターネットにつながらないコンテナやVM、dev containerなど、ホストに被害が出ない隔離された環境でだけ使う
具体的には、次のようなことが起こりえます。
- Claudeが指示を取り違えて、必要なファイルを消す・上書きする
- リモートのブランチを消す、本番のデータベースにつながるコマンドを実行する
- 読み込んだREADMEやWebページに、Claudeを誘導する文(プロンプトインジェクション)が仕込まれていて、
.envの中身などを外に送ってしまう
手元のMacやWindowsでそのまま使うと、Claudeが触れる範囲には、プロジェクトのコードだけでなく、ホームディレクトリの設定ファイルやSSHの鍵、クラウドの認証情報も含まれます。確認を飛ばすと、これらへの操作も止まらなくなります。
確認を減らしたいだけなら:代わりの方法
auto mode(いちばんのおすすめ)
auto modeは、確認の代わりに、別のモデル(分類器)が操作をチェックするモードです。普段の操作は確認なしで進み、頼んだ範囲を超える操作や、知らない外部サービスへのアクセス、読み込んだ内容に誘導されたような操作だけが止められます。
Claude Code v2.1.283以降では、ターミナルとVS Codeで起動すると、最初からauto modeになります。ステータスバーに⏵⏵ auto mode onと出ていれば、すでにauto modeです。確認がたくさん出る場合は、Shift+Tabで切り替えてみてください。
# 明示的に auto mode で起動する
claude --permission-mode auto
auto modeを使うには、対応しているモデル(AnthropicのAPIではClaude Opus 4.6以降、Sonnet 4.6以降など)であることなどの条件があります。条件を満たさない場合は、確認が出る通常のモード(Manual)で起動します。
auto modeも、安全を保証するものではないと公式に書かれています。方向性を信頼できる作業に使い、重要な操作は自分で確認しましょう。
権限モードの比較
| モード | 確認なしで実行されるもの | 向いている場面 |
|---|---|---|
default(Manual) |
読み取りだけ | すべて自分で確認したい |
acceptEdits |
読み取り、ファイルの編集、mkdirなどのよく使うファイル操作 |
編集内容をあとで見直す前提で進めたい |
plan |
読み取り(+auto modeが使えるときは分類器が許可したコマンド) | 変更する前に調査と計画をしたい |
auto |
すべて(裏で安全チェックあり) | 長い作業、確認の多さを減らしたい |
dontAsk |
読み取りと、事前に許可したものだけ。それ以外は自動で拒否 | CIやスクリプト |
bypassPermissions |
すべて | 隔離されたコンテナやVMだけ |
ターミナルでは、Shift+Tabを押すたびにモードが切り替わります。
よく使うコマンドだけ許可する
「npm run testは毎回許可している」というようなコマンドは、許可ルールに入れておけば確認が出なくなります。/permissionsで追加するか、設定ファイルに書きます。
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)"
],
"deny": [
"Read(./.env)",
"Read(./secrets/**)"
]
}
}
ルールは拒否 → 確認 → 許可の順に評価されます。拒否ルールに当てはまるものは、許可ルールがあっても実行されません。
どうしても使うなら:コンテナの中で
CIのように完全に無人で動かしたい場合は、公式ドキュメントでも--dangerously-skip-permissionsを使う例が載っています。その場合は、コンテナやVMの中で、rootではないユーザーで動かします。
claude -p "テストを実行して、失敗したものを直して" --dangerously-skip-permissions
公式には、Claude Codeをrootではないユーザーで動かすdev containerの設定例が用意されています。手元のPCで直接使うのではなく、こうした隔離された環境で使いましょう。
なお、決められたコマンドだけを実行させたいCIなら、--dangerously-skip-permissionsより、--permission-mode dontAskと許可するツールの指定を組み合わせるほうが安全です。
claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"
–dangerously-skip-permissionsを禁止する設定
チームや会社で使えないようにしたい場合は、設定ファイルでpermissions.disableBypassPermissionsModeを"disable"にします。permissionsの中に書くのがポイントです。
{
"permissions": {
"disableBypassPermissionsMode": "disable"
}
}
この設定は、どの設定ファイルに書いても効きます。
| 設定ファイル | 場所 | 効く範囲 |
|---|---|---|
| ユーザー設定 | ~/.claude/settings.json |
自分のPCのすべてのプロジェクト |
| プロジェクト設定 | .claude/settings.json |
そのプロジェクト(Gitで共有できる) |
| ローカル設定 | .claude/settings.local.json |
そのプロジェクトの自分だけ |
| 管理設定 | 下の表を参照 | そのPC全体。ほかの設定で上書きできない |
本当に強制したい場合は、管理設定(managed settings)に置きます。管理設定は、ユーザーやプロジェクトの設定で上書きできません。ファイルを置く場所は次のとおりです。
| OS | 管理設定の場所 |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-settings.json |
| Linux / WSL | /etc/claude-code/managed-settings.json |
| Windows | C:\Program Files\ClaudeCode\managed-settings.json |
公式ドキュメントにある管理設定の例は、.envなどの読み取りを拒否しつつ、bypassPermissionsを禁止するものです。
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./secrets/**)"
],
"disableBypassPermissionsMode": "disable"
},
"allowManagedPermissionRulesOnly": true
}
allowManagedPermissionRulesOnlyをtrueにすると、ユーザーやプロジェクトの設定に書かれた許可ルールが無視され、管理設定のルールだけが使われます。
この記事の以前の版では、
disableBypassPermissionsModeをpermissionsの外(設定ファイルのいちばん上の階層)に書く例を載せていました。公式ドキュメントではpermissionsの中に書く形になっているので、修正しました。
auto modeもあわせて使えないようにしたい場合は、disableAutoModeを"disable"にします。
よくある質問
Q. 設定したのに –dangerously-skip-permissionsで起動できてしまいます
A. disableBypassPermissionsModeがpermissionsの中に書かれているかを確認してください。また、管理設定が置かれているPCでは、管理設定の内容が優先されます。
Q. 最初に出た警告をもう一度表示したいです
A. ~/.claude/settings.jsonのskipDangerousModePermissionPromptを消すか、falseにします。
Q. VS Codeの拡張機能でも使えますか?
A. 拡張機能の設定でAllow dangerously skip permissionsをオンにすると、モードの選択肢に「Bypass permissions」が出てきます。オフのままだと選べません。
Q. CLAUDE.mdに「確認せずに進めて」と書けばいいのでは?
A. 書いても権限確認はなくなりません。公式ドキュメントでも、権限のルールはClaude(モデル)ではなくClaude Codeが強制するもので、CLAUDE.mdの指示では変わらないとされています。確認を減らすには、権限モードか許可ルールを使います。
まとめ
--dangerously-skip-permissionsはbypassPermissionsモードで起動するオプション。すべての確認がスキップされる- それでも、拒否ルール・確認ルール・重要なパスの
rmは止まる。逆にそれ以外は何でも実行される - 公式は隔離されたコンテナやVMでだけ使うよう案内している
- 確認を減らしたいだけなら、auto mode(ターミナルでは最初から有効)、
acceptEdits、許可ルールを使う - 禁止するなら、
permissionsの中に"disableBypassPermissionsMode": "disable"。強制したいなら管理設定に置く
Claude Codeの導入方法や、ほかの設定については、こちらの記事にまとめています。
参考(公式ドキュメント・英語):
