API key and model configuration for the orchestrator. Key resolution order: environment variables first, then ~/.claude/llm-config.json as fallback.
Set in your shell profile (~/.zshrc, ~/.bashrc, etc.):
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export GOOGLE_AI_API_KEY="AIza..."The script maps these to the correct provider automatically. No config file needed for default models.
After adding keys, restart your terminal or source ~/.zshrc for changes to take effect.
For custom model names, non-default model IDs, or role assignments:
{
"models": {
"opus": {
"provider": "anthropic",
"model": "claude-opus-4-6"
},
"gpt5": {
"provider": "openai",
"model": "gpt-5.4"
},
"gemini": {
"provider": "google",
"model": "gemini-2.0-pro"
}
},
"defaults": {
"reasoning": "opus",
"creative": "gpt5",
"validation": "gemini"
}
}If both env var and config file exist for the same provider, the env var wins.
Add to models in the config file:
"gpt5-pro": {
"provider": "openai",
"model": "gpt-5.4-pro"
}Optionally assign a default role in defaults. Run python scripts/orchestrate.py check to verify.
See references/api-patterns.md for the implementation steps (adding to ENV_KEY_MAP, call_{provider}(), and PROVIDER_CALLERS). Then document the model in references/model-profiles.md.
python scripts/orchestrate.py checkShows each model's status, key source (env/config/none), and role assignments.