Claude Media
CLAUDE_CODE_ENABLE_AUTO_MODEとは — auto modeの有効化と、不要になった条件

CLAUDE_CODE_ENABLE_AUTO_MODEとは — auto modeの有効化と、不要になった条件

auto modeでCLAUDE_CODE_ENABLE_AUTO_MODEを求められたときの対処。環境変数の書き方、v2.1.207で不要になった条件、設定が効かないときの見どころを扱います。

CLAUDE_CODE_ENABLE_AUTO_MODE は、Amazon Bedrock・Google Vertex AI・Microsoft Foundry経由のClaude Codeでauto modeを使えるようにする環境変数です。値は 1 を指定します。ただしv2.1.207以降は、この環境変数なしでもクラウド経由でauto modeが使えます。auto modeを選ぼうとして環境変数の指定を求める案内(auto mode requires CLAUDE_CODE_ENABLE_AUTO_MODE=1など)が出ているなら、最初に見るのは環境変数ではなくClaude Codeのバージョンです。

CLAUDE_CODE_ENABLE_AUTO_MODEとは

CLAUDE_CODE_ENABLE_AUTO_MODE は、クラウド経由のClaude Codeでauto modeへのオプトインを宣言する環境変数です。値は 1 のみを扱います。

そのauto modeは、ツール呼び出しのたびに人へ確認を求める代わりに、分類器モデルが安全性を判定して自動承認する権限モードです。--permission-mode auto で起動時に指定できる6つの権限モードのひとつです。設計思想はClaude Code auto modeの中身で扱いました。

この環境変数が登場したのはv2.1.158です。それまでのauto modeはAnthropic APIで直接認証している環境が前提で、Bedrock・Vertex AI・Foundry経由では使えませんでした。v2.1.158でこの3プロバイダーにも道が開き、その入口が CLAUDE_CODE_ENABLE_AUTO_MODE=1 によるオプトインでした。対象モデルはOpus 4.7とOpus 4.8です。既定は無効で、立てるまで挙動は変わりません。

v2.1.160では、クラウド経由でauto modeが使えないときの案内が、この環境変数によるオプトインを促す内容に整理されました。検索でたどり着く読者が目にしているのは、多くの場合この案内です。

そしてv2.1.207で、Bedrock・Vertex AI・Foundryはオプトインなしでauto modeを使えるようになりました。無効化する側の指定が settings.jsondisableAutoMode に移り、環境変数は「使うために立てるもの」から「立てなくてよいもの」へ変わっています。詳細はv2.1.158の解説v2.1.207の解説にあります。

案内が出て進めないときに見る3か所

1. Claude Codeのバージョン

最初に確認するのはここです。v2.1.207以降であれば、Bedrock・Vertex AI・Foundryのいずれでも環境変数は要りません。

claude --version
claude update

更新して案内が消えるなら、環境変数は触らずに済みます。v2.1.210では、オプトインの要らなくなったプロバイダーに対して /doctor がauto modeを既定にする提案を飛ばしていた問題も直っているため、診断結果の食い違いもここで解消します。

2. 環境変数(v2.1.206以前を使い続ける場合)

社内でバージョンを固定している、あるいはすぐに更新できない事情があるなら、環境変数でオプトインします。

export CLAUDE_CODE_ENABLE_AUTO_MODE=1
claude

シェルの設定ファイルに書けば毎回有効になりますが、.zshrc.bashrc に置くとauto modeを使わないセッションにも影響します。プロジェクト単位で切りたいときは、後述する settings.jsonenv に寄せる形が扱いやすくなります。

3. 組織の管理設定で止められていないか

環境変数を立ててもauto modeがモード一覧に出てこない場合、管理設定側で塞がれている可能性があります。permissions.disableAutoMode"disable" にすると、auto modeは無効になりShift+Tabの切り替えサイクルからも外れます。管理設定はユーザー設定より優先されるため、手元でいくら環境変数を立てても現れません。

環境変数をどこに書くか

書き場所は3つあり、影響範囲が違います。

書き場所効く範囲向くケース
シェルの設定ファイル効く範囲その端末の全セッション向くケース個人の常用環境
settings.jsonenv効く範囲設定ファイルのスコープ内向くケースプロジェクト・組織単位で揃える
CI・起動スクリプトの環境変数効く範囲そのジョブのみ向くケース非対話実行、コンテナ

settings.json に書く場合は次の形です。ユーザー設定なら ~/.claude/settings.json、プロジェクト共有なら .claude/settings.json に置きます。

{
  "env": {
    "CLAUDE_CODE_ENABLE_AUTO_MODE": "1"
  }
}

設定ファイルの階層と優先順位はClaude Code設定ガイドに一覧があります。CIで回すなら、環境変数はジョブ定義側で渡し、リポジトリに常駐させない形が事故を減らします。

有効にしたあと、auto modeは何を止めるのか

有効化は入口にすぎません。auto modeは「すべて素通し」ではなく、分類器がツール呼び出しごとに評価し、危険と判断したものだけを人に返します。--dangerously-skip-permissions との違いはここです。

止め方の設計は settings.jsonautoMode で調整できます。

フィールド役割
environment役割自組織のリポジトリや内部ドメインなど、信頼する範囲を宣言する
allow役割分類器を通さず自動承認する操作
soft_deny役割原則止めるが、明示的な依頼があれば通す操作
hard_deny役割ユーザーの意図や allow を問わず無条件でブロックする操作(v2.1.136で追加)

判定の範囲そのものも広がってきました。v2.1.193では autoMode.classifyAllShell が加わり、任意コード実行のパターンだけでなくBash・PowerShellの全コマンドを分類器に通せます。同じv2.1.193で、許可されなかった理由が会話の記録・拒否時の通知・/permissions の最近の拒否一覧の3か所に残るようになりました。止まった原因を後から追えます。

破壊的な操作への線引きも段階的に固くなりました。v2.1.183では、git reset --hardgit clean -fdgit stash dropterraform destroy のような取り返しのつかない操作が、明示的に頼んでいない限りブロックされます。頼めば実行されるので、全面禁止ではありません。v2.1.208では、rm -rf ~ のような削除が $(…) やバッククォートの中に埋まっていても確認プロンプトが出るようになり、書き方の違いで網をすり抜ける余地が塞がれました。

権限モード全体の比較はClaude Codeセキュリティ・権限ガイドで扱っています。

Bedrock・Vertex AI・Foundryで気をつける点

3プロバイダーとも、v2.1.207以降はオプトインなしで使えます。違いが出るのは、その先の運用側です。

プロバイダー押さえる点
Amazon Bedrock押さえる点CloudTrailの操作監査と分類器の判定を組み合わせる構成が取れる
Google Vertex AI押さえる点組織ポリシーで送信先を絞るなら autoMode.environment に社内バケットや内部APIドメインを列挙しておくと、想定外のブロックが起きにくい
Microsoft Foundry押さえる点テナント分離を前提にする組織では permissions.disableAutoMode で可否を組織単位に固定できる

いずれも分類器は「環境外への送信」をブロック対象に含みます。社内の正規の宛先を environment に書いていないと、良性の操作が止まって手が増えます。有効化の直後に誤検知が続くようなら、まず environment の記述量を疑うのが早道です。

なお、外部セッションでの分類器はv2.1.210から既定でSonnet 5を使い、セッション最初のリクエストで検証してセッションに固定する挙動になりました。

設定したのに反映されないときの見どころ

環境変数を立てたのに変わらない、という状況で実際に効いてくるのは次の5点です。

  • autoMode の読み取り元が変わった:v2.1.207以降、autoMode はリポジトリ常駐の .claude/settings.local.json からは読まれず、~/.claude/settings.json が参照されます。リポジトリ側に置いて共有していたなら、ユーザー設定か管理設定へ移す必要があります
  • allow / soft_deny は既定リストを置き換える:両フィールドを書くと組み込みルール全体が差し替わります。claude auto-mode defaults で既定を出力してから編集するか、"$defaults" を含めて追加だけにとどめる書き方があります
  • 設定を戻したい:v2.1.212で claude auto-mode reset が加わりました。確認プロンプトが出て、--yes で省略できます
  • トークン失効で止まっていた:セッション途中でOAuthトークンが失効・ローテーションすると、auto modeが「HTTP 401」の分類器エラーでコマンドを拒む問題がありました。v2.1.216で修正済みです
  • プランモードでの扱い:プランモードでauto modeの判定を使うかは useAutoModeDuringPlan で切り替えます

よくある質問

CLAUDE_CODE_ENABLE_AUTO_MODEの値は何を指定しますか

1 を指定します。v2.1.158で導入されたときから、CLAUDE_CODE_ENABLE_AUTO_MODE=1 を立てる形でオプトインする仕様です。

Anthropic APIで直接使っている場合も必要ですか

不要です。この環境変数は、Bedrock・Vertex AI・Foundry経由でauto modeが使えなかった時期の入口として追加されたものです。Anthropic APIで直接認証している環境では、もともとauto modeが対象でした。

組織としてauto modeを使わせたくない場合はどうしますか

管理設定の permissions.disableAutoMode"disable" にすると、auto modeが無効になりShift+Tabの切り替えサイクルからも外れます。disableBypassPermissionsMode と併せて固定する構成が、管理設定のプリセットとしてよく使われます。

Shift+Tabの切り替えにauto modeが出てきません

auto modeは現在、Shift+Tabの切り替えサイクルに既定で含まれています(かつて存在した --enable-auto-mode フラグはv2.1.111で削除済みで、有効化の操作は不要です)。サイクルに出てこない場合は、管理設定で permissions.disableAutoMode が指定されていてサイクルから外されているケースがほとんどです。組織の管理者に設定を確認してください。

まとめ

CLAUDE_CODE_ENABLE_AUTO_MODE は、Bedrock・Vertex AI・Foundry経由でauto modeを使うためのオプトイン用の環境変数で、値は 1 です。v2.1.158で追加され、v2.1.207でこの3プロバイダーでは不要になりました。案内が出て止まっているなら、更新で解決するかをまず確認し、バージョンを固定している環境では環境変数を立てる、という順序になります。

有効化のあとに効いてくるのは autoMode の書き方です。environment に社内の正規の宛先を並べておくと良性のブロックが減り、allowsoft_deny は既定リストを置き換える点を踏まえて編集すると事故が起きにくくなります。Claude Code全体の設定と権限の地図はClaude Code完全ガイド2026にまとめています。

この記事を共有:XはてブLinkedIn