原典: Environment variables / 日本語版
一行要約
Claude Code が読む環境変数の一覧と、設定ファイルとの優先順位。変数名を引くための表。
要点
この原典は要約しない。 リファレンス表を日本語に写すと、情報が落ちたうえに原典より先に古くなる。ここに置くのは何が載っているかといつ見に行くかだけ。
何が載っているか
| 節 | 中身 |
|---|---|
| Set environment variables | どこに書くか(シェル / .env / settings の env) |
| Precedence | 同じ値が複数の場所にあるときどれが勝つか |
| Variables | 変数の一覧。MAX_THINKING_TOKENS BASH_MAX_OUTPUT_LENGTH ENABLE_PROMPT_CACHING_1H などはここ |
| What the subprocess environment scrub removes | CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 で子プロセス(Bash・hooks・stdio MCP サーバ)から何が消え、何が残るかの表。変数名か値の形で資格情報と判定するので、名前も値も資格情報に見えない秘密は残る。GITHUB_TOKEN / GH_TOKEN などと HTTP(S)_PROXY は意図して残す(gh を動かすため)。原典は唯一の防御にせず、狭い permission rules と併用するよう書いている |
| Features that need feature-flag fetching | feature flag を取りに行かないセッションで使えない機能。取りに行かないのは、DISABLE_TELEMETRY などを設定したとき、third-party provider(Bedrock / Claude Platform on AWS / Agent Platform / Foundry。ホストが CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST を設定した場合を除く)、Claude apps gateway のセッション —— ネットワークが開いていても当てはまる。インストール/アップグレード直後の初回セッションでも同じことが起きる(取得した flag はそのマシンに保存され、同じマシンの次のセッションでは揃う)。次のセッションでも揃わない構成がある —— 毎回まっさらな環境で走る CI(毎回が初回)と、API キー無しで ANTHROPIC_AUTH_TOKEN を使い ANTHROPIC_BASE_URL が Anthropic 以外を指す構成(LLM gateway など。flag を取りに行く資格情報が無い) |
いつ見に行くか
- 変数名を正確に知りたいとき。 他の原典が挙げる変数(costs の
MAX_THINKING_TOKENS、maximizing-session-value のBASH_MAX_OUTPUT_LENGTH)の正典 - 設定が効かないとき。 優先順位の節を見る。シェルと settings の
envの両方にあれば、たいていのセッションでは settings が勝つ(シェルの値が残るセッションもあり、原典は settings-reference にリンクしている)。軸が2つあり、どちらも変数ごとに違う —— ①設定キーとの勝敗(ANTHROPIC_MODELはmodelキーより先に読まれる)、②CLI フラグやコマンドとの勝敗(--modelと/modelはANTHROPIC_MODELを上書きするが、CLAUDE_CODE_EFFORT_LEVELは--effortと/effortを上書きする)。さらに、project / local 設定のenvからは設定できない変数がある(CLAUDE_CONFIG_DIR、OpenTelemetry のエクスポートを有効にする・送り先を選ぶ・内容を記録する変数など。シェル・user・managed に書く)。critical path 削除の検査を切る変数のように、settings のenvブロック経由では一切読まれず、起動する環境に置くしかないものもある - シェルが勝手に export している変数を消したいとき。 設定ファイルで変数を「消す」ことはできない。
envに空文字を入れると provider の選択については unset として扱われる(CLAUDE_CODE_USE_VERTEXを潰す用。子プロセスは空文字を継承する) - 数値を設定したのに効かないとき。
2e3や64_000の綴りも読む(v2.1.211 より前は、これらが静かにずっと小さい値になっていた)。ただし「plain digits のみ」と断ってある変数がある —— そこに2e3を入れると黙って既定値のままになるので、変数の行を読む
原典で言及されている関連文書
- settings — 設定ファイル側。スコープの優先順位はあちら
- costs —
MAX_THINKING_TOKENSを下げる判断 - maximizing-session-value —
BASH_MAX_OUTPUT_LENGTHの既定 30,000 文字 - secure-deployment — ネットワークを絞るときの注意