LLM Providers
Git-Iris supports three LLM providers: OpenAI, Anthropic, and Google.
Provider Overview
| Provider | Default Model | Fast Model | Context Window | API Key Env |
|---|---|---|---|---|
| OpenAI | gpt-5.4 | gpt-5.4-mini | 128K | OPENAI_API_KEY |
| Anthropic | claude-opus-4-6 | claude-haiku-4-5-20251001 | 200K | ANTHROPIC_API_KEY |
gemini-3-pro-preview | gemini-2.5-flash | 1M | GOOGLE_API_KEY |
Configuration Format
Each provider has its own section under [providers]:
[providers.PROVIDER_NAME]
api_key = "YOUR_API_KEY"
model = "model-name" # Optional: primary model
fast_model = "fast-model-name" # Optional: for status updates
token_limit = 8000 # Optional: custom limitOpenAI Configuration
[providers.openai]
api_key = "sk-..."
model = "gpt-5.4"
fast_model = "gpt-5.4-mini"
token_limit = 128000CLI Setup
git-iris config --provider openai --api-key YOUR_API_KEY
git-iris config --provider openai --model gpt-5.4Environment Variable
export OPENAI_API_KEY="sk-..."Anthropic Configuration
[providers.anthropic]
api_key = "sk-ant-..."
model = "claude-opus-4-6"
fast_model = "claude-haiku-4-5-20251001"
token_limit = 200000CLI Setup
git-iris config --provider anthropic --api-key YOUR_API_KEY
git-iris config --provider anthropic --model claude-opus-4-6Environment Variable
export ANTHROPIC_API_KEY="sk-ant-..."Legacy Aliases
The provider names claude and gemini are still supported as aliases for anthropic and google.
Google Configuration
[providers.google]
api_key = "your-google-api-key"
model = "gemini-3-pro-preview"
fast_model = "gemini-2.5-flash"
token_limit = 1000000CLI Setup
git-iris config --provider google --api-key YOUR_API_KEY
git-iris config --provider google --model gemini-3-pro-previewEnvironment Variable
export GOOGLE_API_KEY="..."Switching Providers
Set Default Provider
git-iris config --provider anthropicOverride Per-Command
git-iris gen --provider openai
git-iris review --provider googleAdditional Parameters
Provider-specific parameters can be set using --param:
git-iris config --provider openai --param reasoning='{"effort":"medium"}'
git-iris config --provider openai --param text='{"verbosity":"low"}'Git-Iris parses valid JSON values here, so nested provider options work without extra config files. For OpenAI reasoning models, use --token-limit to control output-token budgets; Git-Iris maps that to the provider's current completion-token setting automatically.
OpenAI GPT-5 defaults are already tuned by workflow:
- Main agent generations use
reasoning = {"effort":"medium"} - Subagents and
parallel_analyzeusereasoning = {"effort":"low"} - Fast status messages use
reasoning = {"effort":"none"}
Set reasoning yourself only when you want to override those defaults for every OpenAI request using that provider config.
In TOML:
[providers.openai]
api_key = "sk-..."
[providers.openai.additional_params]
reasoning = '{"effort":"medium"}'
text = '{"verbosity":"low"}'Token Limits
Each provider has a default context window. You can override this:
git-iris config --provider anthropic --token-limit 100000This is useful for:
- Cost control (smaller limit = fewer tokens)
- Faster responses
- Testing with limited context
API Key Priority
API keys are loaded in this order:
- Config file (
~/.config/git-iris/config.toml) - Environment variable (
OPENAI_API_KEY, etc.)
Project configs (.irisconfig) never contain API keys for security.
Verification
Check your provider configuration:
# View current configuration
cat ~/.config/git-iris/config.toml
# Test with a command
git-iris gen --printIf authentication fails, Git-Iris will tell you which environment variable to set.
Security Best Practices
- Never commit
config.tomlwith API keys - Use environment variables in CI/CD
- Restrict file permissions:bash
chmod 600 ~/.config/git-iris/config.toml - Rotate API keys periodically
- Use separate keys for different projects if needed
