Claude Code 環境変数の設定方法と目的別早見表

この記事の要点
- 環境変数は、シェルで設定するとそのターミナルの間だけ、settings.json の env に書くと毎回効く
- 同じ変数がシェルと設定ファイルの両方にあると、多くの場合は設定ファイルの値が使われる
- よく使うのは時間切れ・モデル・通信の制限・ネットワーク・安全の5種類。目的別の早見表で探す
Claude Code の動きは、環境変数 でも細かく変えられます。公式ドキュメントの一覧には400を超える変数が載っていますが、ふだん使うものはそれほど多くありません。
この記事では、公式ドキュメント「Environment variables」(2026年11月2日確認)にもとづいて、設定の仕方と優先順位を押さえたうえで、目的から引ける早見表 にまとめます。
結論:毎回効かせたいなら settings.json の env に書く
シェルで設定した変数はそのターミナルを閉じるまで、settings.json の env に書いた変数は claude を起動するたびに効きます。
| 置き場所 | 効く範囲 |
|---|---|
シェルで export | そのターミナルの間だけ |
~/.claude/settings.json の env | 自分の、すべてのプロジェクト |
.claude/settings.json の env | そのプロジェクトで作業する全員(共有される) |
.claude/settings.local.json の env | 自分の、そのプロジェクトだけ |
| 管理者が配る設定 | 組織の全員 |
設定ファイルの置き場所と、複数あるときの効く順番は Claude Codeのsettings.json入門 でくわしく説明しています。
設定の仕方
シェルで設定する
起動の前に設定します。Mac や Linux なら次のとおりです。
export API_TIMEOUT_MS="1200000"
claude
毎回設定したいなら、この export の行を ~/.zshrc などのシェルの設定ファイルに書きます。Windows の PowerShell なら $env:API_TIMEOUT_MS = "1200000" の形です。設定できたかは echo $API_TIMEOUT_MS で確かめます(設定の行そのものは何も表示しません)。
settings.json に書く
{
"env": {
"API_TIMEOUT_MS": "1200000",
"BASH_DEFAULT_TIMEOUT_MS": "300000"
}
}
ここに書いた値はシェルを通らないので、~ や $HOME はそのままの文字として扱われます。 場所を指す変数は、フルパスで書きます。
動いている会話でも、ファイルを保存すると新しい値が反映されます。ただし利用状況の送信(OpenTelemetry)のように起動時に1回だけ読む機能は、起動し直すまで前の値のままです。
どちらが優先される?
同じ変数がシェルと設定ファイルの両方にあると、多くの場合は設定ファイルの値が使われます。 Claude Code が env の値を、シェルから受け継いだ値に上書きするためです。
ほかにも、次のような決まりがあります。
- 設定ファイルでは変数を消せない。どうしても無効にしたいときは、
"CLAUDE_CODE_USE_VERTEX": ""のように 空の文字 を入れる --modelや/modelはANTHROPIC_MODELより優先される。逆にCLAUDE_CODE_EFFORT_LEVELは--effortや/effortより優先される- プロジェクトの設定ファイルには書けない変数がある(
CLAUDE_CONFIG_DIRや、利用状況の送信先の変数など)
目的別の早見表
時間切れを延ばしたい
| 変数 | 役割 |
|---|---|
API_TIMEOUT_MS | 1回の問い合わせが返事の始まりを待つ時間。既定は10分(600000) |
BASH_DEFAULT_TIMEOUT_MS | コマンドの既定の待ち時間。既定は2分(120000) |
モデルと出力の量を変えたい
| 変数 | 役割 |
|---|---|
ANTHROPIC_MODEL | 使うモデル |
CLAUDE_CODE_MAX_OUTPUT_TOKENS | 1回の返事の最大の長さ。モデルの上限を超える値は上限に下げられる |
MAX_THINKING_TOKENS | 考える量(拡張思考)の上限を固定する |
モデルの選び方は Claude Codeのモデル選び を参考にしてください。
外への通信を減らしたい
| 変数 | 役割 |
|---|---|
DISABLE_TELEMETRY | 利用の統計の送信を止める。0 や false でも止まる ので、戻すときは変数そのものを消す |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 自動更新・統計・エラー報告など、必須でない通信をまとめて止める |
DISABLE_AUTOUPDATER | 自動更新だけを止める(手動の claude update は使える) |
これらで通信を止めると、裏で取得している機能の切り替え情報も取りに行かなくなります。その結果、リモートからの操作や一部の新しい機能が使えなくなる点に注意します。
会社のネットワークで使いたい
| 変数 | 役割 |
|---|---|
HTTPS_PROXY | 通信を通すプロキシを指定する |
NODE_EXTRA_CA_CERTS | 会社の証明書を追加で信頼させる |
鍵とアカウントを分けたい
| 変数 | 役割 |
|---|---|
ANTHROPIC_API_KEY | APIキー。設定すると、ログインしていても契約プランより優先される |
CLAUDE_CONFIG_DIR | 設定の置き場所を変える。仕事用と個人用を分けて動かすときに使う |
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB | 1 にすると、Claude Code が動かすコマンドやフックから鍵らしい変数を外す |
ANTHROPIC_API_KEY を設定したままだと、契約プランではなく API の料金で動きます。対話で使うときは最初に1回確認が出ますが、-p を付けた実行では確認なしでキーが使われます。契約プランで動かしたいなら unset ANTHROPIC_API_KEY で外します。
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB は、変数の名前や値の形から鍵を見分けます。GitHub のトークンやプロキシの設定は残るので、これだけに頼らず、権限の設定 と組み合わせて使います。
まとめ
- 毎回効かせたいなら settings.json の
env、その場だけならシェルで設定する - 両方にあると、多くの場合 設定ファイルの値が使われる。消したいときは空の文字を入れる
DISABLE_TELEMETRYは0でも止まる、ANTHROPIC_API_KEYは契約プランより優先される、の2つは特に間違えやすい
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


