Claude Code Auto Mode 調査メモ
概要
Claude Code の権限モード「Auto Mode」について調査した結果をまとめる。
Auto Mode とは
各ツール呼び出しの前にAIクラシファイアが安全性を判定し、安全なアクションは自動承認、危険なアクションはブロックする仕組み。
従来の2択(「毎回承認」vs「全スキップ(bypassPermissions)」)の中間に位置する。
有効化方法
⚠️ 重要(v2.1.142以降): プロジェクト設定(
.claude/settings.json)にdefaultMode: "auto"を書いても無視される。リポジトリが自分自身に auto モードを付与できないようにするセキュリティ制約。
// ❌ プロジェクト設定では効かない(v2.1.142以降)
// .claude/settings.json
{ "defaultMode": "auto" }
// ✅ ユーザー設定に書く
// ~/.claude/settings.json
{ "defaultMode": "auto" }
https://code.claude.com/docs/en/settings#permission-settings より
Default permission mode when opening Claude Code. Valid values: default, acceptEdits, plan, auto, dontAsk, bypassPermissions. As of Claude Code v2.1.142, auto is ignored when set in project or local settings (.claude/settings.json, .claude/settings.local.json) so a repository cannot grant itself auto mode. Set it in ~/.claude/settings.json instead. The --permission-mode CLI flag overrides this setting for a single session
その他の有効化方法:
- CLI:
claude --permission-mode auto - セッション中の切り替え:
Shift+Tab(default → acceptEdits → plan → auto のサイクル)
クラシファイアの判定フロー
- Claude Codeがツール呼び出し(Bash、Edit、WebFetch、MCP等)を生成
- AIクラシファイアがアクション内容を検査
- 安全と判定 → 自動実行
- 危険と判定 → ブロックし、別のアプローチを促す
- ブロックが連続する場合 → ユーザーへの権限プロンプトにフォールバック
対象ツール
| モード | Bash | Edit/Write | MCP | WebFetch |
|---|---|---|---|---|
| default | 毎回確認 | 毎回確認 | 毎回確認 | 毎回確認 |
| acceptEdits | 毎回確認 | 自動承認 | ❌対象外 | 毎回確認 |
| auto | 自動判定 | 自動判定 | ✅自動判定 | 自動判定 |
| bypassPermissions | 全スキップ | 全スキップ | 全スキップ | 全スキップ |
💡
acceptEditsはファイル編集のみ自動承認。MCP ツールは auto mode でないと自動承認されない。
検出対象
- 大量ファイル削除(
rm -rf、ワイルドカード一括削除) - データ流出(信頼済み外部へのデータ送信)
- 悪意あるコード実行(プロンプトインジェクション経由)
- 本番環境への直接操作(force push、本番DBへの直接クエリ)
既存の権限ルールとの関係
-
permissions.denyルールはクラシファイアより優先される - Auto Modeが許可しても、denyルールに一致すればブロック
- パイプ・チェーン(
&&,||,;,|)は各サブコマンドを個別にチェック
{
"permissions": {
"deny": ["Bash(git push --force *)"]
},
"defaultMode": "auto"
}
→ Auto Mode有効でも git push --force は常にブロック。
カスタマイズ: autoMode.environment
組織の信頼済みインフラを自然言語で定義できる。クラシファイアはこの定義を参照し、定義外の宛先をデータ流出の潜在的ターゲットと判断する。
{
"autoMode": {
"environment": [
"Trusted cloud: AWS ap-northeast-1 region, PoC account only"
]
}
}
⚠️ 注意:
autoMode設定も共有プロジェクト設定(.claude/settings.json)からはクラシファイアに読み込まれない(セキュリティ上の理由)。個人設定(~/.claude/settings.jsonまたは.claude/settings.local.json)またはマネージド設定に置く必要がある。
評判・実績
ポジティブ
- Anthropic計測: ユーザーは承認プロンプトの93%を結局approveしている → 儀式的な承認が不要に
- bypassPermissionsの危険性なしに生産性向上
- 開発環境での利用は十分実用的という評価が主流
- Reddit初回発表スレッド: 771 upvotes / 133 comments と高い関心
ネガティブ・注意点
- 偽陽性あり(安全なコマンドがブロックされることがある)
- トークン消費が若干増加(クラシファイア呼び出し分)
- Anthropic公式: 「隔離環境での利用を推奨」「リスクを軽減するが完全には排除しない」
- Research Preview(正式版ではない)
コミュニティの声
"It is not entirely safe, but it is a lot safer than --dangerously-skip-permissions, and previously a lot of people were just clicking yes to requests mostly without thinking, which isn't safe either."
参考リンク
- 公式ドキュメント: https://code.claude.com/docs/en/permissions#permission-modes
- 公式ブログ: https://claude.com/blog/auto-mode
- 設定リファレンス(defaultMode制約の記載): https://code.claude.com/docs/en/settings