DISABLE_TELEMETRYとは — メトリクス送信だけを止める環境変数
DISABLE_TELEMETRYはClaude Codeの利用状況メトリクス送信をオプトアウトする環境変数です。対象範囲、プロバイダー別の既定値、組織一括設定の方法をまとめます。
DISABLE_TELEMETRYは、Claude Codeが送る運用テレメトリのうち利用状況メトリクスをオプトアウトする環境変数です。任意の値を設定するだけで有効になり、既定でオンになる条件はAPIプロバイダーによって異なります。対象範囲、0を入れても止まらない挙動、組織全体へ一括配布する方法をまとめます。
DISABLE_TELEMETRYが止めるのは利用状況メトリクスだけ
Claude Codeが送る運用テレメトリは大きく2種類に分かれます。ひとつはレイテンシーや成功率といった利用状況メトリクス、もうひとつはCLI自身のクラッシュを伝えるエラー報告です。DISABLE_TELEMETRYが対象にするのは前者だけです。
DISABLE_TELEMETRY: Set to any non-empty value, such as 1, to opt out of telemetry.メトリクスにはコード・プロンプト・ファイルパスといった利用者のデータは含まれません。含まれるのはレイテンシーや信頼性、利用パターンのような運用指標です。エラー報告を止めたい場合はDISABLE_ERROR_REPORTING、/feedbackコマンドでの手動送信を止めたい場合はDISABLE_FEEDBACK_COMMANDと、目的ごとに別の変数が用意されています。
| 変数 | 止める対象 |
|---|---|
DISABLE_TELEMETRY | 止める対象利用状況メトリクス(レイテンシー・成功率・利用パターン) |
DISABLE_ERROR_REPORTING | 止める対象Claude Code自身のクラッシュ・スタックトレース |
DISABLE_FEEDBACK_COMMAND | 止める対象/feedback・/bug・/shareでの手動送信 |
3つはそれぞれ独立したオプトアウトです。テレメトリだけを個別に止めたいのか、それとも複数をまとめて止めたいのかで、設定する変数が変わります。自動更新の確認やリリースノート取得まで含めてまとめて止めたい場合は、CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICのような広域の変数を使います。
プロバイダーによって既定値が違う
DISABLE_TELEMETRYが意味を持つかどうかは、接続しているAPIプロバイダーによって変わります。
| プロバイダー | メトリクスの既定 |
|---|---|
| Claude API(直接接続) | メトリクスの既定オン。DISABLE_TELEMETRY=1で無効化 |
| Google CloudのAgent Platform | メトリクスの既定オフ。CLAUDE_CODE_USE_VERTEXが1である必要がある |
| Amazon Bedrock | メトリクスの既定オフ。CLAUDE_CODE_USE_BEDROCKが1である必要がある |
| Microsoft Foundry | メトリクスの既定オフ。CLAUDE_CODE_USE_FOUNDRYが1である必要がある |
| Claude Platform on AWS | メトリクスの既定オフ。CLAUDE_CODE_USE_ANTHROPIC_AWSが1である必要がある |
Claude APIへ直接接続している場合だけ既定でオンになり、DISABLE_TELEMETRYを設定する意味があります。Bedrock・Google CloudのAgent Platform・Microsoft Foundry・Claude Platform on AWS経由では、もともとメトリクスが既定オフなので、変数を設定しなくても同じ状態です。
Claude Codeを組み込んだホストプラットフォームがCLAUDE_CODE_PROVIDER_MANAGED_BY_HOSTを設定している場合は例外です。この場合はサードパーティープロバイダーでもメトリクスの既定がオンに変わり、DISABLE_TELEMETRYによる標準のオプトアウトに従うようになります。
サインイン済みのClaude apps gatewayセッションはさらに別扱いです。利用状況の分析・エラー報告・調査結果の送信は、ゲートウェイの認証情報そのものによって無効化されており、再度有効にする設定項目自体がありません。この形態ではDISABLE_TELEMETRYを設定してもしなくても結果は変わりません。
設定方法
シェルの環境変数として渡すか、設定ファイルのenvキーに書きます。
export DISABLE_TELEMETRY=1
claude個人の全プロジェクトに反映させたいだけなら~/.claude/settings.json、プロジェクト単位で固定したいなら.claude/settings.jsonのenvキーに書きます。
{
"env": {
"DISABLE_TELEMETRY": "1"
}
}CLAUDE_CODE_ENABLE_TELEMETRYとは別物
似た名前で紛らわしいのがCLAUDE_CODE_ENABLE_TELEMETRYです。こちらは自分のOpenTelemetry基盤へ利用量やコストの指標をエクスポートするための、まったく別のオプトイン機能を有効化する変数です。DISABLE_TELEMETRYがAnthropicへ向かう運用テレメトリを止めるオプトアウトなのに対し、CLAUDE_CODE_ENABLE_TELEMETRYは自分のバックエンドへ計測を送るための起動スイッチで、向きも送信先も逆です。
両者は同時に使えます。DISABLE_TELEMETRY=1でAnthropicへの送信だけを止め、CLAUDE_CODE_ENABLE_TELEMETRY=1で自前のPrometheusやDatadogへは引き続き計測を送る、という構成が可能です。環境変数全体の一覧はClaude Code環境変数リファレンスにまとめています。
DISABLE_GROWTHBOOKとの違い
DISABLE_TELEMETRYを設定すると、メトリクス送信に加えて機能フラグの取得も止まります。Anthropicから配信される機能フラグの取得が止まると、Pro・Max・Teamプランでのauto modeの自動開始や、Remote Controlのように機能フラグの取得に依存する機能が使えなくなります。
似た効果を持つ変数にDISABLE_GROWTHBOOKがあります。ただし対象範囲は非対称です。DISABLE_GROWTHBOOKは機能フラグの取得だけを止め、テレメトリのイベントログ送信自体はDISABLE_TELEMETRYを別途設定しない限り動き続けます。逆にDISABLE_TELEMETRYを設定すると、メトリクス送信と機能フラグ取得の両方が止まります。「機能フラグだけ止めてテレメトリは残したい」という場面で意味を持つのはDISABLE_GROWTHBOOKのほうで、DISABLE_TELEMETRYではこの組み合わせを作れません。
ついでに止まるもの・止まらないもの
DISABLE_TELEMETRYを設定しても、モデルへのリクエストそのものは止まりません。影響が及ぶのはあくまで運用テレメトリと機能フラグの取得までで、セッション本体のやり取りには関与しません。
一方で、意外なところに波及するのがセッション品質調査です。「Claudeの調子はどうですか」というセッション終了後のアンケートは、DISABLE_TELEMETRY・DO_NOT_TRACK・CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICのいずれを設定しても連動して止まります。調査結果だけは自分のOpenTelemetry基盤で受け取りたい場合、CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1を追加すると、評価をAnthropicへは送らずOTELイベントとしてのみ自分の環境に残せます。テレメトリを一律に止めたい組織と、品質調査のデータだけは自前で集めたい組織が両方存在する場合、この組み合わせが選択肢になります。
使い分けの目安
| 状況 | 選ぶ変数 |
|---|---|
| メトリクス送信だけを個別に止めたい | 選ぶ変数DISABLE_TELEMETRY |
| エラー報告だけを個別に止めたい | 選ぶ変数DISABLE_ERROR_REPORTING |
| 機能フラグの取得だけ止めてテレメトリは残したい | 選ぶ変数DISABLE_GROWTHBOOK |
| 自動更新・フィードバック送信まで含めて非必須通信を一括で止めたい | 選ぶ変数CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC |
| 品質調査だけは自前のOTel基盤に残したい | 選ぶ変数DISABLE_TELEMETRY + CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1 |
エアギャップ環境や高セキュリティ環境で通信を最小限にしたいだけなら、個別に組み合わせるよりCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを使うほうが取りこぼしが少なく済みます。DISABLE_TELEMETRYが向くのは、モデルへのリクエストや自動更新の確認は残したまま、計測データの送信だけをピンポイントで止めたい場面です。
組織全体に一括配布する
個々の開発者のシェル設定に頼らず、組織全体でメトリクス送信を止めたい場合は、管理者が配布する管理設定(managed settings)のenvブロックに書きます。
{
"env": {
"DISABLE_TELEMETRY": "1"
}
}管理設定経由で配布された環境変数の一部は、ユーザーに承認ダイアログを表示してから適用されます。プロキシやベースURLを変更する変数はこの対象ですが、DISABLE_TELEMETRYはプライバシー系のトグルとして扱われ、1のような有効化の値であれば承認ダイアログを表示せずに適用されます。組織として一律にテレメトリを止めたい場合、ユーザー側の操作を挟まずに配布できるということです。
この判定は変数名ではなく、配布される値で決まります。DISABLE_TELEMETRY・DISABLE_ERROR_REPORTING・CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC・DO_NOT_TRACKの4つは、追跡や報告を「オフにする」truthyな値であれば無条件で承認ダイアログを省略します。逆に、これら4変数へ1やtrue以外の値を配布した場合は、通常の管理設定と同じくダイアログが表示されます。テレメトリを止める方向であれば管理者の意図どおり静かに適用され、それ以外の値を配布したときだけユーザーの目に触れる、という設計です。
分析ダッシュボードへの影響
この設定を組織全体で有効にすると、利用状況ダッシュボードが参照するデータも届かなくなります。分析ダッシュボードを使い続けたいチームと、テレメトリを止めたいチームが混在する組織では、全社一律の管理設定ではなく、対象を絞ったプロジェクト単位の設定に留める判断も必要になります。
よくある質問
元に戻すにはどうすればいいですか
値を0やfalseに書き換えても止まったままです。シェルならunset DISABLE_TELEMETRY、設定ファイルならその行を削除して、変数そのものを未設定に戻します。設定ファイルから削除した場合、反映されるのは次回のClaude Code起動時です。
Amazon Bedrock経由で使っていますが設定する意味はありますか
CLAUDE_CODE_PROVIDER_MANAGED_BY_HOSTが設定されたホストプラットフォーム経由でない限り、基本的にありません。Bedrock・Google CloudのAgent Platform・Microsoft Foundry・Claude Platform on AWSでは、メトリクス送信はもともと既定でオフになっています。
DO_NOT_TRACKと何が違いますか
効果は同じです。DO_NOT_TRACKは多くの開発者向けCLIが共通で対応している業界慣習のオプトアウト変数で、1を設定するとDISABLE_TELEMETRYと同じくメトリクス送信と機能フラグ取得の両方が止まります。すでに他のツールでDO_NOT_TRACKを組織標準にしている場合、Claude Code向けにDISABLE_TELEMETRYを別途増やさなくても同じ効果を得られます。
まとめ
DISABLE_TELEMETRYは、Claude Codeの利用状況メトリクス送信だけをオプトアウトする環境変数です。エラー報告や/feedbackの送信は対象外で、それぞれDISABLE_ERROR_REPORTING・DISABLE_FEEDBACK_COMMANDという別の変数が担います。Claude APIへ直接接続している場合だけ既定でオンになり、Bedrock・Google CloudのAgent Platform・Microsoft Foundry・Claude Platform on AWS経由ではもとから既定オフです。0やfalseを入れても無効化されたままになる点、機能フラグの取得も一緒に止まる点は他の類似変数と共通の挙動です。組織全体に一括配布したい場合は管理設定のenvブロックに書けば、承認ダイアログを挟まず適用できます。環境変数全体の一覧はClaude Code環境変数リファレンス、組織単位の設定配布の全体像はClaude Code組織導入の意思決定マップにまとめています。