Esprit CLI supports multiple LLM providers through both OAuth and API key authentication. Each provider offers different models and features.
Supported Providers
Esprit integrates with the following LLM providers:
Esprit Cloud
Use your Esprit subscription (Pro/Team/Enterprise)
OpenCode Zen
Access to 40+ models including GPT-5, Claude 4, Gemini 3
Anthropic
Claude Pro/Max subscription with OAuth or API key
OpenAI
ChatGPT Plus/Pro subscription or API key
GitHub Copilot
Use your GitHub Copilot subscription
Google
Google Gemini via OAuth or API key
Antigravity
Free access to Claude and Gemini models
Provider Registry
The following providers are registered in Esprit CLI:
esprit/providers/__init__.py
PROVIDERS: dict[str, type[ProviderAuth]] = {
"esprit": EspritSubsProvider,
"anthropic": AnthropicOAuthProvider,
"openai": OpenAICodexProvider,
"github-copilot": CopilotProvider,
"google": GoogleGeminiProvider,
"antigravity": AntigravityProvider,
"opencode": OpenCodeZenProvider,
}
Available Models by Provider
Esprit Cloud
MODELS = [
("default", "Esprit Default"),
("kimi-k2.5", "Esprit Pro"),
("haiku", "Esprit Fast"),
]
Use with: esprit/default, esprit/kimi-k2.5, esprit/haiku
OpenAI
MODELS = [
("gpt-5.3-codex", "GPT-5.3 Codex (recommended)"),
("gpt-5.1-codex", "GPT-5.1 Codex"),
("gpt-5.1-codex-max", "GPT-5.1 Codex Max (maximum context)"),
("gpt-5.1-codex-mini", "GPT-5.1 Codex Mini (faster)"),
("codex-mini-latest", "Codex Mini (faster, lightweight)"),
("gpt-5.2", "GPT-5.2"),
("gpt-5.2-codex", "GPT-5.2 Codex"),
]
Use with: openai/gpt-5.3-codex, openai/gpt-5.2, etc.
Anthropic
MODELS = [
("claude-sonnet-4-5-20250514", "Claude Sonnet 4.5 (recommended)"),
("claude-opus-4-5-20251101", "Claude Opus 4.5 (advanced reasoning)"),
("claude-haiku-4-5-20251001", "Claude Haiku 4.5 (faster)"),
]
Use with: anthropic/claude-sonnet-4-5-20250514, etc.
GitHub Copilot
MODELS = [
("gpt-5", "GPT-5 (via Copilot)"),
("claude-sonnet-4-5", "Claude Sonnet 4.5 (via Copilot)"),
]
Use with: github-copilot/gpt-5, github-copilot/claude-sonnet-4-5
Google
MODELS = [
("gemini-3-pro", "Gemini 3 Pro (recommended)"),
("gemini-3-flash", "Gemini 3 Flash (faster)"),
("gemini-2.5-flash", "Gemini 2.5 Flash"),
]
Use with: google/gemini-3-pro, google/gemini-3-flash, etc.
OpenCode Zen
OpenCode provides access to 40+ models including:
MODELS = [
# OpenAI Models
("gpt-5.2-codex", "GPT-5.2 Codex (recommended)"),
("gpt-5.1-codex", "GPT-5.1 Codex"),
("gpt-5-nano", "GPT-5 Nano"),
# Claude Models
("claude-opus-4-6", "Claude Opus 4.6"),
("claude-sonnet-4-6", "Claude Sonnet 4.6"),
("claude-opus-4-5", "Claude Opus 4.5"),
# Gemini Models
("gemini-3.1-pro", "Gemini 3.1 Pro"),
("gemini-3-pro", "Gemini 3 Pro"),
# Chinese Models
("kimi-k2.5", "Kimi K2.5"),
("glm-5", "GLM-5"),
("minimax-m2.5", "MiniMax M2.5"),
("qwen3-coder", "Qwen3 Coder"),
# Free Models (no auth required)
("gpt-5-nano", "GPT-5 Nano"),
("kimi-k2.5-free", "Kimi K2.5 Free"),
("minimax-m2.5-free", "MiniMax M2.5 Free"),
("glm-5-free", "GLM-5 Free"),
]
OpenCode Zen automatically detects available models from ~/.config/opencode/opencode.json and the OpenCode API endpoint.
Use with: opencode/gpt-5.2-codex, opencode/claude-opus-4-6, etc.
Antigravity (Free)
Antigravity provides free access to premium models:
MODELS = [
("claude-opus-4-6-thinking", "Claude Opus 4.6 Thinking (free)"),
("claude-opus-4-5-thinking", "Claude Opus 4.5 Thinking (free)"),
("claude-sonnet-4-5-thinking", "Claude Sonnet 4.5 Thinking (free)"),
("claude-sonnet-4-5", "Claude Sonnet 4.5 (free)"),
("gemini-2.5-flash", "Gemini 2.5 Flash (free)"),
("gemini-2.5-pro", "Gemini 2.5 Pro (free)"),
("gemini-3-flash", "Gemini 3 Flash (free)"),
("gemini-3-pro-high", "Gemini 3 Pro High (free)"),
]
Antigravity is a free service with no guaranteed uptime or rate limits. Use for testing and development.
Use with: antigravity/claude-opus-4-6-thinking, etc.
Multi-Account Support
Some providers support multiple accounts:
esprit/providers/constants.py
MULTI_ACCOUNT_PROVIDERS: frozenset[str] = frozenset({"openai", "antigravity"})
These providers allow you to:
- Add multiple accounts with
esprit provider login
- Rotate between accounts automatically
- Manage accounts independently
Selecting a Provider
This shows an interactive menu of all available providers:Select a provider to login:
[ ] 1. Esprit (Use Your Subscription)
[✓] 2. OpenCode Zen
[ ] 3. Anthropic (Claude Pro/Max)
[✓] 4. OpenAI (ChatGPT Plus/Pro)
[ ] 5. GitHub Copilot
[ ] 6. Google (Gemini)
[✓] 7. Antigravity (Free Claude/Gemini)
Enter number:
# Esprit subscription
esprit provider login esprit
# OpenCode Zen
esprit provider login opencode
# Anthropic
esprit provider login anthropic
# OpenAI
esprit provider login openai
# GitHub Copilot
esprit provider login github-copilot
# Google
esprit provider login google
# Antigravity
esprit provider login antigravity
Checking Provider Status
Example output:
Provider Authentication Status
┌─────────────────────────┬────────────────────┬──────────┐
│ Provider │ Status │ Type │
├─────────────────────────┼────────────────────┼──────────┤
│ Esprit │ ✓ Logged in (PRO) │ PLATFORM │
│ Anthropic │ ✓ Logged in │ OAUTH │
│ OpenAI │ ✓ 2 accounts │ OAUTH │
│ GitHub Copilot │ Not configured │ - │
│ Google │ ✓ Logged in │ OAUTH │
│ Antigravity │ ✓ 1 account │ OAUTH │
│ OpenCode Zen │ ✓ Logged in │ API KEY │
└─────────────────────────┴────────────────────┴──────────┘
Provider Configuration Path
esprit/providers/config.py
def get_opencode_config_path() -> Path:
"""Resolve opencode.json path following XDG_CONFIG_HOME."""
xdg_config = os.environ.get("XDG_CONFIG_HOME")
if xdg_config:
return Path(xdg_config) / "opencode" / "opencode.json"
return Path.home() / "..config" / "opencode" / "opencode.json"
OpenCode Zen configuration is shared with the OpenCode CLI at ~/.config/opencode/opencode.json.
Next Steps
Authentication
Set up OAuth and API key authentication
Environment Variables
Configure provider settings via environment variables