DISABLE_NONESSENTIAL_TRAFFICとは — Claude Codeの非必須通信を止める
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICは自動更新・テレメトリ・エラー報告などをまとめて止める環境変数です。副作用で使えなくなる機能もあわせて解説します。
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC は、Claude Codeがモデルとの通信以外に送っている非必須のネットワーク通信をまとめて止める環境変数です。自動更新の確認、テレメトリ、エラー報告、/feedbackコマンド、リリースノートの取得、ゲートウェイのモデル検出、fast modeのようなavailability checkが対象になります。エアギャップ環境や、外部への通信を最小限にしたい高セキュリティ環境で使われます。
何が止まり、何が止まらないか
この変数が止める通信は多岐にわたりますが、公式ドキュメントが明示する範囲は次のとおりです。
| 止まるもの | 止まらないもの |
|---|---|
| 自動更新の確認 | 止まらないものモデルへのリクエストそのもの |
| テレメトリ(利用状況の指標) | 止まらないものWebFetchのドメイン安全確認 |
| エラー報告 | 止まらないもの公式プラグインマーケットプレイスの自動インストール |
/feedbackコマンド | 止まらないものセッション本体のAPI通信 |
| リリースノートの取得 | 止まらないもの— |
| ゲートウェイのモデル検出の更新 | 止まらないもの— |
| fast modeなどのavailability check | 止まらないもの— |
プラグインのcommandソースのバックグラウンド実行 | 止まらないもの— |
| 機能フラグの取得 | 止まらないもの— |
最後の「プラグインのcommandソースのバックグラウンド実行」だけは、厳密にはネットワーク通信ではありません。ローカルコマンドですが、依存パッケージのインストールを引き起こしうるため、この変数の対象に含まれています。
一方、WebFetchツールがURLを取得する前に行うドメイン安全確認は、この変数の影響を受けません。どのモデルプロバイダーを使っていても実行され、api.anthropic.com への到達性が前提になっています。ネットワークがこのホストを塞いでいる場合は、ドメインを許可リストに入れるか、設定のskipWebFetchPreflight: trueで個別に無効化します。公式プラグインマーケットプレイスの自動インストールも対象外で、止めたい場合は別の変数CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALLを使います。
設定のしかた
任意の値(1など)を設定するだけで有効になります。
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
claudeチームや組織全体で固定するなら、設定ファイルのenvキーに書きます。管理設定(managed settings)に書けば組織全体に一律で強制できます。
{
"env": {
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}機能フラグの取得も止まる — ここが最大の副作用
この変数を設定すると、テレメトリや自動更新の確認だけでなく、Anthropicから機能フラグを取得する処理そのものが止まります。同じ効果を持つ変数は他に3つあり、DISABLE_GROWTHBOOK・DISABLE_TELEMETRY・DO_NOT_TRACKのいずれを設定しても機能フラグの取得は止まります。
機能フラグの取得が止まると、次の機能が使えなくなります。
- Pro / Max / Teamプランでセッションをauto modeで自動的に開始する機能(代わりにManualモードで始まる)
- VS Code拡張機能が起動時の権限モードを設定ファイルから読み込む機能
- Remote Control
- クロスセッションメッセージングの送受信
claude importコマンドと/importコマンド- CLIからの
/scheduleによるroutine作成 - advisorツール
/loopの実行間隔をClaudeが自動で選ぶ機能(代わりに固定10分間隔で動く)/loopの組み込みメンテナンスプロンプト(代わりに使い方メッセージが表示される)- アイドル中のPRレビューステータスバッジの高頻度更新(代わりに60秒ごとの更新になる)
/code-review自体は手で入力すれば動きますが、機能フラグが取得できない状態ではClaudeが自律的にレビューを開始できず、スケジュールされた/code-reviewはレビューを実行する代わりにプレーンテキストとしてClaudeに届きます。
初回セッションだけ例外がある
インストール直後や、その機能を追加したバージョンへのアップグレード直後の最初のセッションでは、これらの環境変数を何も設定していなくても、上記の機能を一時的に欠くことがあります。Claude Codeがそのセッション中に機能フラグを取得するため、次回のセッションからは通常どおり機能が有効になります。
この初回セッション中でも挙動が異なる機能が2つあります。クロスセッションメッセージング用のセッション受信ソケットの割り当てとメッセージング変数のエクスポートは、フラグ取得が完了した時点でセッションの途中からでも有効になり、再起動しなくても他のセッションからメッセージを送れるようになります。
テレメトリ・調査への影響
Claude Codeが送る運用テレメトリは、利用状況の指標とエラー報告の2種類です。それぞれDISABLE_TELEMETRYとDISABLE_ERROR_REPORTINGで個別に止められますが、この変数を設定すればまとめて止まります。Datadogへの2つのテレメトリ送信先ホストも、この変数で両方無効になります。
セッション品質調査(「Claudeの調子はどうですか」というフォローアップ)も対象です。ゼロデータ保持契約の組織や、組織ポリシーで製品フィードバックが無効化されている場合と同じく、この変数が設定されている組織はこの調査を一切見ません。調査だけを個別に止めたい場合はCLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1を使います。非必須通信を止めつつ、調査結果だけは自前のOpenTelemetryコレクターで受け取りたい場合はCLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1で個別に復元できます。この場合、評価はOTELイベントとしてのみ自分の環境に送られ、Anthropicには送信されません。
Amazon Bedrock・Google Cloud's Agent Platform・Microsoft Foundry・Claude Platform on AWS経由の利用では、エラー報告・テレメトリ・バグ報告はもともと既定で無効です。この変数は、これらのプロバイダーでも既定で有効なままのセッション品質調査を含めて、非必須通信をまとめて止めたいときに使います。
対象範囲が広がってきた経緯
この変数が止める通信の範囲は、バージョンを追うごとに広がってきました。当初はテレメトリの抑制が主な目的でしたが、次第に周辺のトラブルも修正され、対象も広がっています。
| バージョン | 内容 |
|---|---|
| v2.0.17 | 内容リリースノートの取得も止める対象に追加 |
| v2.1.105 | 内容1プロジェクトの設定で利用状況メトリクスのテレメトリが全プロジェクトで恒久的に無効化される不具合を修正 |
| v2.1.110 | 内容headless/SDKセッションの自動タイトル付けが、この変数やCLAUDE_CODE_DISABLE_TERMINAL_TITLE設定時に余分なHaikuリクエストを発生させていた不具合を修正 |
| v2.1.120 | 内容APIおよびエンタープライズ利用者向けの利用状況メトリクステレメトリを、この変数(およびDISABLE_TELEMETRY)が抑制しきれていなかった不具合を修正 |
過去に「設定したのに一部の通信だけ止まらない」という形の不具合が複数回修正されてきた経緯を踏まえると、古いバージョンのClaude Codeでこの変数を使っている場合は、最新版へのアップグレードで抑制の抜けが直る可能性があります。
よくある質問
この変数を設定するとモデルへのリクエストも止まりますか
止まりません。対象になるのは自動更新の確認・テレメトリ・エラー報告・フィードバック送信・機能フラグ取得のような周辺の通信で、セッション本体がモデルにリクエストを送る経路には影響しません。
一時的に通信を戻したいときはどうすればいいですか
値を0やfalseに書き換えるのではなく、環境変数そのものをunsetするか、設定ファイルからそのキーを削除します。値を書き換えるだけでは無効化されたままになる、他の多くのオン/オフ変数とは逆の挙動です。
DISABLE_TELEMETRYと何が違いますか
DISABLE_TELEMETRYは利用状況の指標だけを止める変数で、エラー報告や/feedback、自動更新の確認までは止めません。ただし機能フラグの取得を止める点は共通していて、DISABLE_TELEMETRYを設定した場合もRemote Controlなど機能フラグに依存する機能は使えなくなります。非必須通信をまとめて止めたいならCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC、テレメトリだけ止めたいならDISABLE_TELEMETRYを選びます。
エアギャップ環境で使う場合、他に確認すべき設定はありますか
WebFetchのドメイン安全確認はこの変数の対象外で、api.anthropic.comへの到達を前提にしています。到達できない環境では、この確認が原因でWebFetchのリクエストが失敗するため、ドメインを許可するかskipWebFetchPreflight: trueを設定します。公式プラグインマーケットプレイスの自動インストールも別扱いで、止めたい場合はCLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALLを追加で設定します。
まとめ
企業導入では、まずこの変数で非必須通信を一括して止め、そのうえでRemote Controlやauto modeの自動開始のように機能フラグに依存する機能をチームが本当に使わないか個別に確認する、という順番で導入判断をするとトラブルが少なくなります。
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC は、自動更新・テレメトリ・エラー報告・フィードバック・リリースノート取得・機能フラグ取得といった非必須通信をまとめて止める環境変数です。設定すると、Remote Controlやauto modeの自動開始のように機能フラグの取得に依存する機能が使えなくなる副作用があり、この副作用はDISABLE_TELEMETRYやDO_NOT_TRACKでも同じく発生します。値を0にしても無効化できず、解除には変数そのものの削除が必要な点も、他の環境変数と挙動が異なる部分です。エアギャップ環境でこの変数を使う場合は、対象外のWebFetchドメイン確認とマーケットプレイス自動インストールを別途確認してください。用途別の環境変数の全体像はClaude Code環境変数リファレンス、企業導入時のセキュリティ設計はClaude Codeセキュリティ・権限ガイドにまとめています。