DISABLE_COST_WARNINGSでコスト警告を消す設定
Claude Codeの環境変数DISABLE_COST_WARNINGSはコスト警告メッセージを非表示にします。設定のしかたと、実際のコスト・請求には影響しない範囲、似た変数との使い分けをまとめます。
DISABLE_COST_WARNINGS は、Claude Codeが表示するコスト警告メッセージを非表示にする環境変数です。公式リファレンスでの定義は「1 を設定するとコスト警告メッセージを無効化する」の1行のみで、対象はあくまで画面上の表示です。実際のトークン消費や請求には触れません。設定のしかたと、隣接する非表示系の変数との違い、そしてオフにする判断をどう考えるかをまとめます。
DISABLE_COST_WARNINGSが変えるのは表示だけ
Claude Codeのコストは /usage コマンドのSession欄で確認でき、APIキー課金のユーザー向けにトークン数から算出したドル額が表示されます。Claude Max・Proのサブスクリプション契約者は利用量がプランに含まれるため、この金額自体が請求に直結するものではありません。DISABLE_COST_WARNINGS はこの数値の算出や /usage の表示内容そのものには関与せず、コストに関して自動的に出る警告メッセージだけを消します。
つまりこの変数を設定しても、消費されるトークン数・実際の課金額・/usage で確認できる利用状況は、設定前とすべて普段どおりのまま変わりません。変わるのは「警告を見せられるか、見せられないか」だけという理解で扱えます。
設定のしかた
シェルの環境変数として渡すか、設定ファイルの env キーに書きます。
export DISABLE_COST_WARNINGS=1
claudeチームや端末をまたいで固定したいときは、~/.claude/settings.json(自分だけ)や .claude/settings.json(プロジェクト全員、リポジトリにコミット)の env キーに書きます。
{
"env": {
"DISABLE_COST_WARNINGS": "1"
}
}値の指定は1と0で明示的に切り替えられる
Claude Codeの環境変数には、値を入れた時点でオンになり 0 を入れてもオンのままという特殊な一群があります(DISABLE_TELEMETRY / DISABLE_ERROR_REPORTING / CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC など)。DISABLE_COST_WARNINGS はこの一群には入っていません。標準どおり 1 または true でオン、0 または false でオフと、値で明示的に切り替えられます。無効化したい期間だけ 1 にして、戻したいときは 0 にするか行ごと削除する、という運用がそのまま成立します。
値の大文字・小文字も結果に影響しません。1 / true / TRUE / True のどの書き方でもオン、0 / false / FALSE のどれでもオフとして扱われます。設定ファイルの env キーに書く場合も同じ規則が適用されるため、シェルの export と設定ファイルとで表記を揃えておけば、どちらを見ても同じ動作かを迷わず判断でき、後から見直すときの手間も減らせます。
似た系統の表示抑制変数との違い
Claude Codeには、UI上の警告やコマンドを個別に隠す変数が複数あります。対象がそれぞれ違うので、一覧で見比べます。
| 変数 | 消す対象 |
|---|---|
DISABLE_COST_WARNINGS | 消す対象コスト警告メッセージ |
DISABLE_INSTALLATION_CHECKS | 消す対象インストール構成に関する警告 |
DISABLE_DOCTOR_COMMAND | 消す対象/doctor スキル(セットアップ点検)の表示 |
DISABLE_EXTRA_USAGE_COMMAND | 消す対象利用上限超過時に追加利用を購入する /usage-credits コマンド |
DISABLE_INSTALLATION_CHECKS は公式ドキュメントで「インストール方法を手動管理している場合にのみ使う」と明記されており、通常のインストールで使うと構成の問題を隠してしまう可能性があります。同じように、コスト警告を隠す場面も「警告の意味をすでに把握していて、表示自体が不要になっている」状況に向きます。自動化パイプラインでプロンプトが出るたびに止まってしまう、CIログにメッセージが混ざって見づらい、といった運用上の理由です。
これらの変数はいずれも対象が独立しており、まとめて1つの変数で切り替えられる仕組みはありません。コスト警告だけを消してインストール警告や/doctorは残したい、という組み合わせも問題なく成立します。逆に、複数の表示抑制変数を同時に設定ファイルへ書いておけば、新しい端末をセットアップするたびに同じ静けさを再現できます。どの変数がどの表示を対象にしているかを把握しておかないと、意図せず必要な警告まで一緒に消してしまう組み合わせを選びかねないので、表を手元に置いて対象を確認しながら、必要な変数だけを選んで、慎重に設定するのが安全です。
設定ファイルとシェルが競合したときの優先順位
同じ変数をシェルと設定ファイルの両方で指定していると、設定ファイル側の値が勝ちます。Claude Codeは起動時と設定ファイル変更時に env キーの内容をプロセスの環境変数へ書き込み直すため、シェルから引き継いだ値は上書きされます。設定ファイル側からその行を削除しても、シェルの値が自動で復活するわけではなく、次回のClaude Code起動まで前の値が残ります。
設定ファイル同士では、組織の管理者が配布する管理設定がユーザー設定・プロジェクト設定より優先されます。チーム全体で一律にコスト警告を消したい場合は .claude/settings.json に書いてリポジトリへコミットすれば、プロジェクトで作業する全員に適用されます。個人の端末だけで消したいなら ~/.claude/settings.json に書きます。
設定が効いているかを確認する
値が正しく渡っているかは、まずシェルで確認します。
echo $DISABLE_COST_WARNINGS
claude --version空なら、export した端末とClaude Codeを起動した端末が別だった、あるいは設定ファイルを編集したつもりで違う階層のファイルを触っていた可能性があります。設定ファイルに書いた場合は、Claude Codeのセッション内で /status を実行すると、どの設定ファイルの値が効いているかを確認できます。env ブロックの記述ミス(キー名の誤字やJSON構文エラー)は /doctor が検出します。
/status
/doctorClaude Codeのコスト管理全体との関係
コストに関わる情報の見せ方には、DISABLE_COST_WARNINGS とは逆方向の取り組みもあります。/usage によるセッション単位の確認、OpenTelemetry連携によるチーム全体の可視化、組織側での支出上限設定などは、コストを「見えるようにする」側の仕組みです。DISABLE_COST_WARNINGS は個別セッションの警告表示を「見せない」側の設定なので、チームでコストを追跡する体制がある場合は、警告を消しても他の経路で状況を把握できます。逆に、コストの実態を追う仕組みが無いままこの変数だけを設定すると、想定より消費が増えていることに気づく機会が1つ減ります。
チーム単位でのコスト可視化・上限設定・トークン削減の手順はClaude Codeのコスト管理に、OpenTelemetryでの利用量とコストの可視化はClaude CodeのOpenTelemetryで利用量とコストを可視化にまとめています。
公式ドキュメントが示す実際の消費幅を見ると、エンタープライズ導入全体の平均は開発者1人あたり1日約13ドル、月150〜250ドル程度で、利用者の90%は1日あたりのコストが30ドル未満に収まっています。裏を返すと、残り10%の利用者やパイプラインでは1日あたりの消費が跳ねる場面があるということでもあります。コスト警告はそうした跳ね幅に気づく入り口のひとつなので、消す判断は「他の経路で状況を把握できているか」とセットで考える価値があります。
よくある質問
DISABLE_COST_WARNINGSを設定すると実際のコストが下がりますか
下がりません。この変数は警告メッセージの表示・非表示を切り替えるだけで、トークン消費量やモデル選択には影響しません。コストを実際に抑えたい場合は、モデル選択やコンテキスト管理といった別の対策が必要です。
Claude Max・Proのサブスクリプションでも意味がありますか
警告自体は表示され得るため設定する意味はありますが、サブスクリプション契約者にとってセッションのコスト表示は請求に直結する数値ではありません。API課金で従量制のユーザーほど、警告が実際の支出見通しと結びついています。
設定ファイルに書いた変更はいつ反映されますか
env キーに書いた値は、保存した時点で実行中のセッションにも反映されます。ただし起動時に一度だけ値を読む一部の機能は、次回Claude Code起動まで古い値のままです。
チームの設定ファイルに書いても大丈夫ですか
.claude/settings.json に書けばプロジェクトの全員に適用され、リポジトリにコミットできます。表示を消す設定なので、チーム全員がコストの状況を他の手段(/usage や管理者向けダッシュボード)で把握できる体制とセットで運用するのが安全です。
支出上限のエラーとは別物ですか
別物です。組織の支出上限に関するエラーは、管理者が設定した上限に達したときに発生する別の仕組みで、この変数では抑制できません。上限まわりのエラーへの対処は「Could not update spend limit」の対処にまとめています。DISABLE_COST_WARNINGS が対象にするのは、あくまでコストに関する情報提供的な警告メッセージのほうです。
警告を消しても/usageの表示内容は変わりますか
変わりません。/usage のSession欄が表示するトークン数やドル換算額は、DISABLE_COST_WARNINGS の設定に関係なく同じ内容が出ます。この変数が対象にしているのは自動的に出る警告メッセージだけで、コマンドを打って自分から確認する画面には影響しません。
まとめ
DISABLE_COST_WARNINGS は、Claude Codeが出すコスト警告メッセージだけを非表示にする環境変数です。実際のトークン消費や請求額、/usage の集計内容には影響しません。DISABLE_ERROR_REPORTING のような「0 を入れてもオン」の特殊な変数群には含まれず、標準の 1/0 で明示的に切り替えられます。自動化パイプラインなど警告が邪魔になる場面で有効ですが、コストを追う仕組みが他に無いまま設定すると、消費増加に気づく機会が1つ減る点は踏まえておく価値があります。環境変数全体の一覧はClaude Code環境変数リファレンスにまとめています。