5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code Auto Mode を実際に動かして中身を全部見た

5
Last updated at Posted at 2026-03-11

Claude Codeで長めのタスクを回していると、こんな確認が何度も出てきますよね。

Do you want to proceed?
❯ 1. Yes
  2. Yes, and don't ask again for: ...
  3. No

「このファイルを編集していいですか?」 → Yes
「このコマンドを実行していいですか?」 → Yes
「この……」 → Yes Yes Yes Yes Yes

「毎回Yes押すの面倒だから……」と --dangerously-skip-permissions を使ったことがある方、少なくないと思います。名前からして怖いフラグですが、それでも使いたくなるくらい承認ダイアログが邪魔に感じる場面があるのも事実です。

Claude Code v2.1で、この問題に対する新しい選択肢が追加されました。Auto Mode です。

Auto Modeとは

Claude Codeの権限モードの1つで、Claudeが分類器(classifier)を使ってアクションの許可/拒否を自動判断するモードです。

claude --permission-mode auto

従来の default モードでは全操作でユーザーに確認を求めていました。bypassPermissions--dangerously-skip-permissions)は全操作を素通し。Auto Modeはその間で、Claudeの分類器が判断するモードです。

ユーザーの指示
  ↓
Claudeがツールを使おうとする
  ↓
分類器がallow/denyルールで評価
  ↓
├── allowに該当 → ユーザーに聞かず自動実行
├── denyに該当  → ユーザーに聞かず自動ブロック
└── どちらでもない → ユーザーに確認を求める

承認をスキップしているのではなく、Claudeが判断している。ここが重要です。

分類器の中身を見てみる

Auto Modeの判断ロジックは claude auto-mode config で確認できます。実際に叩いてみました。

claude auto-mode config

返ってきたJSONにはallowルールとdenyルールが並んでいます。これがAuto Modeの「脳」です。

allowルール(自動承認される操作)

ルール 内容
Local Operations ワーキングディレクトリ内のファイル操作。ただし「プロジェクトスコープ」の定義が厳密で、~//etc への逸脱はスコープ外
Read-Only Operations GETリクエスト、読み取り専用APIコール。状態を変更しない操作
Test Artifacts テスト用APIキーのハードコード、プレースホルダー資格情報
Declared Dependencies package.jsonrequirements.txt既に宣言されているパッケージのインストール(npm installpip install -r
Toolchain Bootstrap rustup、pypa、bun、brew等の公式インストーラーによるツールチェーン導入
Standard Credentials .env から読んだAPIキーを対応するエンドポイントに送信
Git Push to Working Branch 作業ブランチへのpush(デフォルトブランチは除く)

注目すべきは「Declared Dependencies」の条件。npm install foo のようなエージェントが選んだパッケージ名の直接インストールは許可されない。typosquatやサプライチェーン攻撃のリスクがあるからです。

denyルール(ブロックされる操作)

30項目以上あります。主要なものを抜粋します。

カテゴリ ブロック内容
Git Destructive git push --force、リモートブランチ削除、履歴書き換え
Git Push to Default main/masterへの直接push
Code from External curl | bash、外部リポジトリからのコード実行
Production Deploy 本番環境へのデプロイ、本番DBマイグレーション
Irreversible Local Destruction セッション開始前から存在するファイルの rm -rfgit clean -fdxgit checkout .
Data Exfiltration 機密データの外部送信(HTTP、git push、クラウドストレージ)
Credential Exploration 資格情報ストアの体系的スキャン
Self-Modification エージェント自身の設定ファイル変更
External System Writes Jira/GitHub Issues/Slackへの投稿(ユーザーが明示的に指示していない場合)
Unauthorized Persistence SSHキー追加、.bashrc変更、cronジョブ作成

特に面白いのが以下の2つです。

Content Integrity / Impersonation: 「失敗した作業を成功と報告する」「人間が書いたものとして署名する」──嘘をつくことがセキュリティ上の問題として明示的にブロックされている。

Exfil Scouting: データ持ち出しの準備行為(到達可能なエンドポイントの探索、エンコーディングバイパスの試行)すらブロック対象。未遂も捕捉する設計です。

実際に試してみた

ルールを眺めているだけではわからないので、--permission-mode auto で実際にいくつかの操作を試しました。

操作 結果 分類器の判断
ファイル読み取り(cat test.txt 自動実行 Allow: Local Operations
ファイル編集(追記) 自動実行 Allow: Local Operations
curl GETリクエスト(httpbin.org) 自動実行 Allow: Read-Only Operations
rm -rf test.txt(ユーザーがファイル名指定) 自動実行 Allow: ユーザーが特定ファイルを明示指定
npm install express(未宣言パッケージ) 自動実行 ユーザーが明示的に指示→allowと判断?
git push --force origin main 確認を要求 Deny: Git Destructive
~/.zshrc に追記 自動ブロック Deny: Unauthorized Persistence
curl POSTでwebhook.siteにデータ送信 自動ブロック Deny: Data Exfiltration

面白い発見がいくつかあります。

npm install express が通った。 denyルール上は「agent-chosen package names」はブロック対象のはずですが、ユーザーが明示的にパッケージ名を指定して指示した場合は分類器が許可しました。ルールの文面をそのまま適用するのではなく、文脈を見て判断しているようです。

rm -rf test.txt も通った。 denyルールの「Irreversible Local Destruction」には「without explicit user direction naming the specific targets」という例外があります。ユーザーがファイル名を指定していれば、削除も許可される。

~/.zshrc 変更とwebhook.site POSTは問答無用でブロック。 ユーザーが指示しても、シェル設定の変更(Unauthorized Persistence)と外部へのデータ送信(Data Exfiltration)は通りませんでした。

設定方法

起動コマンドだけでなく、設定ファイルでも有効化できます。

方法 スコープ 設定
CLIフラグ そのセッションのみ claude --permission-mode auto
ユーザー設定 全セッション ~/.claude/settings.json"permissions": {"defaultMode": "auto"}
プロジェクト設定 そのプロジェクトのみ .claude/settings.json に同上
マネージド設定 組織全体(上書き不可) MDM or /etc/claude-code/managed-settings.json

自分はユーザー設定で defaultMode: auto にしているので、毎回フラグを付けなくても常にAuto Modeで起動しています。

権限モード一覧

Claude Codeの全権限モードを整理します。claude --help と公式ドキュメントから確認した内容です。

モード 起動方法 動作
default claude ツール初回使用時に承認を求める
acceptEdits --permission-mode acceptEdits ファイル編集を自動承認
plan --permission-mode plan 分析のみ。ファイル変更・コマンド実行不可
dontAsk --permission-mode dontAsk /permissions で事前許可したツール以外は自動拒否
auto --permission-mode auto 分類器がallow/denyルールで判断
bypassPermissions --dangerously-skip-permissions 全操作を無条件で承認

セッション中にShift+TabでトグルできるAuto-Acceptは、上記とは別の仕組みです。画面を見ながら使う前提の機能。

--dangerously-skip-permissions との違い

両者の違いは**「判断しているのが誰か」**です。

bypassPermissions auto
判断者 なし(すべてスキップ) 分類器(allow/denyルール)
force push 通る ブロック
rm -rf(既存ファイル) 通る ブロック
curl | bash 通る ブロック
本番デプロイ 通る ブロック
外部へのデータ送信 通る ブロック
ローカルファイル編集 通る 通る
npm install(宣言済み) 通る 通る

bypassPermissionsは全てを素通しさせる。autoは30項目以上のdenyルールを持つ分類器が門番をやっている。この差は大きいです。

サンドボックスとの併用

Auto Modeは権限モード(Claudeの意思決定レイヤー)ですが、これとは別にOS レベルのサンドボックスが存在します。

  • macOS: sandbox-exec(Seatbelt)
  • Linux: bubblewrap

サンドボックスは以下を強制します:

  • ファイルシステム隔離: ワーキングディレクトリ外のファイル変更をOS レベルでブロック
  • ネットワーク隔離: Unixドメインソケット経由のプロキシで、承認されたドメインのみ通信許可

公式ドキュメントでは「権限(permissions)とサンドボックスは補完的なセキュリティレイヤー」と説明されています。権限はClaudeがツールを使うこと自体を制御し、サンドボックスはBashコマンドの実行範囲をOS レベルで制限する。二重の防御です。

チェックポイント

コード変更前に自動的に状態を保存する機能です。

  • Escを2回押すか/rewindコマンドでロールバック可能
  • ただし rmmv などのBashコマンドによる削除はチェックポイント対象外
  • あくまでClaude Codeの Edit / Write ツール経由の変更が対象

組織での管理

管理者がAuto Modeを含む権限設定を制御する手段があります。マネージド設定(managed settings)です。

公式ドキュメントに記載されている管理用設定:

設定キー 効果
disableBypassPermissionsMode bypassPermissionsモードと--dangerously-skip-permissionsフラグを無効化
allowManagedPermissionRulesOnly ユーザー/プロジェクト設定でのpermissionルール定義を禁止
allowManagedHooksOnly マネージド以外のhooksを無効化
sandbox.network.allowManagedDomainsOnly マネージド設定のドメインのみ通信許可

設定の配信方法:

プラットフォーム 方法
macOS MDM(Jamf等)経由のマネージド設定
Linux/WSL /etc/claude-code/managed-settings.json

普段使いの所感

自分の場合、30個以上のスキルを組み合わせてClaude Codeを運用しています(記事はこちら)。設定ファイルで defaultMode: auto にしてから、日常的なコーディングで承認ダイアログを見ることはほぼなくなりました。

denyルールの粒度が想像以上に細かいのが印象的です。「force pushブロック」程度かと思っていたら、データ持ち出しの準備行為やエージェント自身の設定変更まで見ている。しかも claude auto-mode config で分類器のルールを全部確認できるので、「何がブロックされるか」が事前にわかる。ブラックボックスではない。

一方で、実験で見たように分類器の判断はルールの文面通りではない場面もあります。ユーザーの指示内容や文脈を見て柔軟に判断している分、予測が難しい面もある。Gitで管理 + 重要な操作は自分で確認する、この2つは引き続き意識しています。

まとめ

項目 内容
何ができる 分類器がallow/denyルールで操作を自動判断
起動方法 claude --permission-mode auto
永続設定 ~/.claude/settings.jsonpermissions.defaultMode: "auto"
allowルール ローカルファイル操作、読み取り専用、宣言済み依存インストール等
denyルール force push、本番デプロイ、データ持ち出し、資格情報探索等30項目以上
確認方法 claude auto-mode config で分類器の全ルールを確認可能
安全策 分類器 + サンドボックス(OS レベル) + チェックポイント

参考リンク

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?