Claude Code 環境変数
環境変数は Claude Code の動作を制御する重要な方法であり、設定ファイルを編集することなく、各設定を柔軟に調整できます。この章では、Claude Code がサポートするすべての環境変数、その用途、設定方法、および一般的な使用シナリオについて詳しく説明します。
環境変数の概要
Claude Code は環境変数を使用して動作を制御します。これらの変数は以下の方法で設定できます:
- シェルで直接
export - に
~/.claude/settings.jsonのenvフィールドで設定 - プロジェクトレベルで
.claude/settings.jsonで設定 - IDE プラグインの設定画面から設定
環境変数の優先順位は高い順に、コマンドライン > プロジェクトレベルの settings.json > ユーザーレベルの settings.json > シェル環境変数 です。settings.json で設定された変数は自動的に Claude プロセスに渡されます。
認証関連変数
| 変数名 | 説明 | 值 |
|---|---|---|
ANTHROPIC_API_KEY |
Claude API キー(claude.ai から取得) | API キーの文字列 |
ANTHROPIC_BASE_URL |
API リクエストの送信先アドレス(プロキシまたはカスタムエンドポイント用) | URL アドレス |
ANTHROPIC_AUTH_TOKEN |
認証トークン(VS Code プラグインなどのシナリオで使用) | トークンの文字列 |
設定例
例
export ANTHROPIC_API_KEY="sk-ant-xxxxx"
export ANTHROPIC_BASE_URL="https://api.anthropic.com"
例
{
"env": {
"ANTHROPIC_API_KEY": "sk-ant-xxxxx",
"ANTHROPIC_BASE_URL": "https://custom-proxy.com/v1"
}
}
モデル設定変数
| 変数名 | 説明 | 值 |
|---|---|---|
ANTHROPIC_MODEL |
デフォルトで使用されるモデル | claude-opus-4-5、claude-sonnet-4-5、claude-haiku-3-5 等 |
ANTHROPIC_SMALL_FAST_MODEL |
クイックレスポンスモードで使用されるモデル(単純なタスク用) | モデル名 |
CLAUDE_CODE_SUBAGENT_MODEL |
すべてのサブエージェントが使用するモデルを一括設定 | モデル名 |
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
Bedrock または Vertex の Anthropic Messages 形式を使用する場合、実験的機能を無効化 | 1 |
使用シナリオ
サブエージェントはデフォルトでメインの会話のモデルを継承します。次を使用してCLAUDE_CODE_SUBAGENT_MODEL一括設定することで、単純なタスクは Haiku に、複雑な分析は Sonnet に任せ、コストを最適化できます:
例
export ANTHROPIC_MODEL="claude-opus-4-5"
export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-5"
ツールとコマンド変数
| 変数名 | 説明 | 值 |
|---|---|---|
CLAUDE_CODE_DISABLE_SLASH_COMMANDS |
すべてのスラッシュコマンドを無効化 | 1 |
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS |
組み込みの Git 関連システムプロンプトを無効化(settings.json の ... より優先includeGitInstructions) |
1 |
CLAUDE_CODE_USE_POWERSHELL_TOOL |
Windows で PowerShell ツールを有効化(と併用が必要defaultShell: "powershell"設定) |
1 |
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL |
IDE 拡張機能の自動インストールをスキップ(代替autoInstallIdeExtension設定) |
1 |
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS |
バックグラウンドタスク機能を無効化 | 1 |
権限とセキュリティ変数
| 変数名 | 説明 | 值 |
|---|---|---|
CLAUDE_CODE_PERMISSION_MODE |
デフォルトの権限モードを設定(サブエージェントの章を参照) | default、acceptEdits、dontAsk、bypassPermissions、plan |
CLAUDE_CODE_ALLOWED_TOOLS |
Claude が使用を許可されたツールのホワイトリスト(カンマ区切り) | ツールリスト |
CLAUDE_CODE_DISALLOWED_TOOLS |
Claude が使用を禁止されたツールのブラックリスト | ツールリスト |
権限モードの詳細
default:通常の権限プロンプト。操作のたびに確認acceptEdits:ファイル編集を自動的に受け入れ、確認は不要dontAsk:未承認の操作を自動的に拒否し、実行を中断しないbypassPermissions:すべての権限チェックをスキップ(完全に信頼できる環境のみ)plan:読み取り専用のプランニングモード。書き込み操作は実行しない
例
export CLAUDE_CODE_PERMISSION_MODE="plan"
export CLAUDE_CODE_ALLOWED_TOOLS="Read,Grep,Glob,Bash(gh *)"
ログとデバッグ変数
| 変数名 | 説明 | 值 |
|---|---|---|
CLAUDE_CODE_DEBUG |
デバッグ出力を有効化 | 1 |
CLAUDE_CODE_ENABLE_TELEMETRY |
テレメトリデータの収集を有効化 | 1 |
OTEL_METRICS_EXPORTER |
OpenTelemetry メトリクスエクスポーター | otlp 等 |
セッションと履歴変数
| 変数名 | 説明 | 值 |
|---|---|---|
CLAUDE_CODE_DISABLE_HISTORY |
会話履歴の保存を無効化 | 1 |
CLAUDE_CODE_SESSION_TIMEOUT |
セッションタイムアウト時間(秒) | 数字 |
CLAUDE_CODE_MAX_SESSIONS |
保存されるセッションの最大数 | 数字 |
MCP 関連変数
Claude Code が MCP ツールを実行すると、以下の環境変数が設定されます:
| 変数名 | 説明 | 值 |
|---|---|---|
CLAUDE_CODE_MCP_SERVER_NAME |
MCP サーバー名 | 文字列 |
CLAUDE_CODE_MCP_TOOL_NAME |
呼び出し中の MCP ツール名 | 文字列 |
CLAUDE_CODE_MCP_TOOL_ARGS |
MCP ツールに渡されるパラメータ | JSON 文字列 |
ワークフロー関連変数
| 変数名 | 説明 | 值 |
|---|---|---|
CLAUDE_CODE_WORKTREE_CLEANUP_PERIOD_DAYS |
孤立した worktree の自動クリーンアップ周期 | 日数 |
CLAUDE_CODE_DISABLE_WORKTREE_AUTO_CLEANUP |
worktree の自動クリーンアップを無効化 | 1 |
GitHub Actions 専用変数
| 変数名 | 説明 | 值 |
|---|---|---|
ANTHROPIC_VERTEX_PROJECT_ID |
Vertex AI プロジェクト ID(Vertex 使用時に認証手順で設定) | GCP プロジェクト ID |
CLOUD_ML_REGION |
Vertex AI リージョン | リージョンコード(例:us-east5) |
settings.json の設定方法
で設定します。この方法はより宣言的で移植性があります:settings.json例
例
"env": {
"ANTHROPIC_MODEL": "claude-sonnet-4-5",
"CLAUDE_CODE_SUBAGENT_MODEL": "claude-haiku-3-5",
"CLAUDE_CODE_PERMISSION_MODE": "plan",
"CLAUDE_CODE_ALLOWED_TOOLS": "Read,Grep,Glob,Bash",
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp"
}
}
VS Code プラグイン設定
VS Code で Claude Code プラグインを使用する場合、次を使用してenvironmentVariables設定:
例
"claudeCode.environmentVariables": [
{
"name": "ANTHROPIC_BASE_URL",
"value": "https://custom-proxy.com/api"
},
{
"name": "ANTHROPIC_AUTH_TOKEN",
"value": "your-token-here"
},
{
"name": "ANTHROPIC_MODEL",
"value": "claude-sonnet-4-5"
}
]
}
一般的な使用シナリオ
シナリオ1:プロキシまたはカスタム API エンドポイントを使用
例
export ANTHROPIC_BASE_URL="https://proxy.company.com/anthropic/v1"
export ANTHROPIC_API_KEY="your-api-key"
シナリオ2:コスト設定の最適化
例
export ANTHROPIC_MODEL="claude-sonnet-4-5"
export CLAUDE_CODE_SUBAGENT_MODEL="claude-haiku-3-5"
シナリオ3:CI/CD 環境のセキュリティ設定
例
export CLAUDE_CODE_PERMISSION_MODE="plan"
export CLAUDE_CODE_DISABLE_HISTORY="1"
export CLAUDE_CODE_ALLOWED_TOOLS="Read,Grep,Glob,Bash(gh *)"
シナリオ4:Windows PowerShell 環境
例
$env:CLAUDE_CODE_USE_POWERSHELL_TOOL = "1"
# settings.json で defaultShell を設定
優先順位と上書き
環境変数の優先順位(高い順):
- コマンドライン
export設定 - プロジェクトレベル
.claude/settings.json - ユーザーレベル
~/.claude/settings.json - Claude Code デフォルト値
に
settings.jsonで設定された変数は、同じ名前のシェル環境変数を上書きします。これは、settings.json が Claude Code プロセスの起動時に明示的に読み込まれ、優先順位が高いためです。
現在の設定を確認
使用して/configコマンドで現在の完全な設定を確認できます:
/config
これにより、環境変数や settings.json で設定された内容を含む、現在有効なすべての設定が表示されます。
ベストプラクティス
1. 機密情報の取り扱い
- API キーなどの機密情報は settings.json にハードコードしないでください
- 環境変数またはシェル設定ファイルを使用してください(
~/.bashrc、~/.zshrc) - 機密情報を含むファイルが git バージョン管理に入っていないことを確認してください
2. 環境に応じた設定
- ローカル開発: より緩い権限モードを使用
- CI/CD: 読み取り専用モードを使用
plan - 本番デバッグ: 有効にする
CLAUDE_CODE_DEBUG
3. 集中管理
- 共通設定は
~/.claude/settings.json - プロジェクト固有の設定はプロジェクトディレクトリの
.claude/settings.json - 機密設定はシェル環境変数または CI Secrets から提供
よくある質問
Q: 環境変数と settings.json ではどちらが優先されますか?
settings.json で設定された変数の優先度が高く、同名のシェル環境変数を上書きします。
Q: Claude Code に異なる API エンドポイントを使用させるにはどうすればよいですか?
設定ANTHROPIC_BASE_URL環境変数でプロキシまたはカスタムエンドポイントを指定します。
Q: サブエージェントが使用するモデルを制御するにはどうすればよいですか?
を使用してCLAUDE_CODE_SUBAGENT_MODELすべてのサブエージェントのモデルを一括で設定することも、各サブエージェントの frontmatter で個別に指定することもできます。
Q: Windows で PowerShell を有効にするにはどうすればよいですか?
環境変数を設定しCLAUDE_CODE_USE_POWERSHELL_TOOL=1、settings.json でも設定しますdefaultShell: "powershell"。
Q: すべてのスラッシュコマンドを無効にするにはどうすればよいですか?
設定CLAUDE_CODE_DISABLE_SLASH_COMMANDS=1環境変数。