原典: 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 removesCLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 で子プロセス(Bash・hooks・stdio MCP サーバ)から何が消え、何が残るかの表。変数名か値の形で資格情報と判定するので、名前も値も資格情報に見えない秘密は残る。GITHUB_TOKEN / GH_TOKEN などと HTTP(S)_PROXY は意図して残す(gh を動かすため)。原典は唯一の防御にせず、狭い permission rules と併用するよう書いている
Features that need feature-flag fetchingfeature 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 を入れると黙って既定値のままになるので、変数の行を読む

原典で言及されている関連文書