Claude Code: 環境変数と開発設定
最終更新:2026-08-31
環境変数は Claude Code の「コントロールパネル」です — API キー、モデル選択、出力設定、すべて環境変数で制御します。
💡 ヒント: 環境変数の優先度が最も高く、CLAUDE.md や settings.json を上書きします。動的設定(API Key、モデル選択)に最適です。
📋 前提条件: 第21章 - 実践:Chrome 拡張機能と並列タスク
1. 学ぶ内容
- すべての環境変数の解説
- 開発設定のベストプラクティス
- マルチ環境切り替え
- デバッグと診断設定
- チーム設定管理
2. 環境変数の解説
(1) コア変数
| 変数 | 必須 | 説明 | 例 |
|---|---|---|---|
ANTHROPIC_API_KEY |
✅ | API キー | sk-ant-api03-xxx |
ANTHROPIC_BASE_URL |
❌ | API URL | https://api.deepseek.com |
CLAUDE_MODEL |
❌ | デフォルトモデル | claude-sonnet-4-20250514 |
(2) 動作制御変数
| 変数 | 説明 | デフォルト |
|---|---|---|
CLAUDE_STYLE |
出力スタイル | default |
CLAUDE_LANGUAGE |
出力言語 | en |
CLAUDE_AUTO_TEST |
修正後の自動テスト | false |
CLAUDE_AUTO_COMMIT |
変更の自動コミット | false |
CLAUDE_MAX_TURNS |
最大反復ターン数 | 50 |
CLAUDE_TIMEOUT |
操作タイムアウト(秒) | 300 |
(3) デバッグ変数
| 変数 | 説明 | デフォルト |
|---|---|---|
CLAUDE_DEBUG |
デバッグログを有効化 | false |
CLAUDE_HOOK_DEBUG |
フックデバッグログ | false |
CLAUDE_LOG_LEVEL |
ログレベル | info |
CLAUDE_LOG_FILE |
ログファイルパス | - |
3. 開発設定のベストプラクティス
(1) 設定の優先度
TEXT
📖 参照専用
1. コマンドラインパラメータ --model claude-opus-4-20250514
2. 環境変数 CLAUDE_MODEL=claude-opus-4-20250514
3. プロジェクト .env .env ファイル内の変数
4. プロジェクト CLAUDE.md プロジェクトレベルの設定
5. グローバル settings ~/.claude/settings.json
6. グローバル CLAUDE.md ~/.claude/CLAUDE.md
7. デフォルト値 内蔵デフォルト
(2) .env ファイル管理
BASH
# .env
ANTHROPIC_API_KEY=sk-ant-api03-xxxxx
CLAUDE_MODEL=claude-sonnet-4-20250514
CLAUDE_STYLE=concise
# .env を .gitignore に追加
echo ".env*" >> .gitignore
▶ 例1:direnv による自動切り替え
BASH
# project-a/.envrc
export ANTHROPIC_API_KEY="sk-ant-api03-project-a"
export CLAUDE_MODEL="claude-sonnet-4-20250514"
# project-b/.envrc
export ANTHROPIC_API_KEY="sk-deepseek-xxxxx"
export ANTHROPIC_BASE_URL="https://api.deepseek.com"
export CLAUDE_MODEL="deepseek-chat"
# ディレクトリに入る → 対応する設定を自動読み込み
4. マルチ環境管理
(1) 環境マトリクス
| 環境 | API Key | モデル | スタイル | デバッグ |
|---|---|---|---|---|
| Dev | 開発用 Key | Sonnet | verbose | on |
| Test | テスト用 Key | Sonnet | default | off |
| CI | CI 用 Key | Sonnet | JSON | off |
| Personal | 個人用 | Opus | concise | off |
(2) 切り替えソリューション
BASH
# シェルエイリアス
alias claude-dev='ANTHROPIC_API_KEY=$DEV_KEY CLAUDE_DEBUG=true claude'
alias claude-ci='ANTHROPIC_API_KEY=$CI_KEY claude --headless --output json'
# direnv(推奨)
# 各プロジェクトディレクトリが対応する .envrc を自動読み込み
# 設定ファイル
claude --env-file ./configs/production.env
▶ 例2:チーム共有設定
BASH
# .env.example(git にコミット、シークレットなし)
ANTHROPIC_API_KEY=your-api-key-here
CLAUDE_MODEL=claude-sonnet-4-20250514
CLAUDE_STYLE=concise
CLAUDE_AUTO_TEST=true
# 各開発者がコピーして記入
cp .env.example .env
# .env を個人の API Key で編集
5. デバッグと診断
BASH
# フルデバッグを有効化
export CLAUDE_DEBUG=true
export CLAUDE_LOG_LEVEL=debug
export CLAUDE_HOOK_DEBUG=1
export CLAUDE_LOG_FILE=/tmp/claude-debug.log
# Claude Code を実行
claude "test task"
# ログを確認
tail -f /tmp/claude-debug.log
6. 総合例:完全な開発設定
BASH
# ~/.zshrc(グローバル設定)
export ANTHROPIC_API_KEY="sk-ant-api03-xxxxx"
export CLAUDE_MODEL="claude-sonnet-4-20250514"
export CLAUDE_STYLE="concise"
export CLAUDE_AUTO_TEST="true"
# プロジェクト .envrc
export CLAUDE_MODEL="claude-opus-4-20250514" # このプロジェクトは Opus を使用
export CLAUDE_MAX_TURNS="30"
# ~/.claude/settings.json
{
"output": { "showDiff": true, "autoTest": true },
"permissions": { "autoApprove": ["Read", "Write"] }
}
❓ よくある質問
Q 環境変数と CLAUDE.md の優先度は?
A 環境変数が優先します。CLAUDE.md は好み/規約用。環境変数はランタイム設定(API Key 等)用。
Q .env の API Key は安全ですか?
A ローカル開発では安全ですが、
.env を .gitignore に追加してください。CI では Secrets を使用してください。Q
CLAUDE_MAX_TURNS はいくつにすべきですか?A 日常使用では20-30。複雑なタスクでは50。小さすぎるとタスクが途中で停止する可能性があります。
Q 環境変数が動作していることを確認するには?
A Claude Code で
/config を実行するか、echo $ANTHROPIC_API_KEY を確認してください。📖 まとめ
- コア環境変数:
ANTHROPIC_API_KEY、CLAUDE_MODEL、CLAUDE_STYLE - 優先度:CLI > 環境変数 > .env > CLAUDE.md > settings
- direnv でディレクトリレベルの自動設定切り替え
.env.exampleは git にコミット、.envは .gitignore に追加- デバッグ変数はトラブルシューティング時のみ有効化
📝 練習問題
- 基本 (⭐):
CLAUDE_STYLEとCLAUDE_LANGUAGEを設定し、出力の変化を確認してください。 - 応用 (⭐⭐): direnv で2つのプロジェクトに異なる API Key とモデルを設定し、自動切り替えを確認してください。
- 高度 (⭐⭐⭐): dev/test/CI をカバーするチームレベルの環境設定を設計し、シークレットのセキュリティを確保してください。