Providers
Ante is provider-agnostic. Each provider implements a common interface for sending prompts and receiving streaming responses. Providers are resolved from a catalog at session init time.
Built-in providers
| Provider | Wire Format | Models |
|---|---|---|
| Anthropic | Messages API | Claude family (haiku-4-5, sonnet-4-5, sonnet-4-6, opus-4-6) |
| Anthropic Subscription | Messages API | Claude family (OAuth) |
| OpenAI | Responses API | GPT-5 family |
| OpenAI Compatible | Chat Completions | Custom models |
| OpenAI Subscription | Responses API | GPT-5 family (OAuth via Codex) |
| Gemini | Gemini API | Gemini 3.1 family |
| Vertex AI Gemini | Gemini API | Gemini 3.1 family |
| Grok (xAI) | Responses API | Grok 4 |
| Zai | OpenAI-compatible | GLM-5.1 |
| Open Router | OpenAI-compatible | Multiple providers |
| DeepSeek | OpenAI-compatible | DeepSeek V4 family |
| Ali Coding Plan | Messages API | Qwen, Kimi, GLM, MiniMax via DashScope |
| Antix | Anthropic Messages | Claude, GPT, Gemini, Qwen via Antigma |
| Local | OpenAI-compatible | GGUF models via llama.cpp |
Provider identifiers
| ID | Provider |
|---|---|
anthropic | Anthropic (Claude) |
anthropic-subscription | Anthropic Subscription (Pro/Max) |
openai | OpenAI (GPT) |
openai-compatible | OpenAI Compatible |
openai-subscription | OpenAI Subscription |
gemini | Google Gemini |
vertex-gemini | Vertex AI Gemini |
openrouter | Open Router |
xai | Grok (xAI) |
zai | Zai |
deepseek | DeepSeek |
ali-coding-plan | Ali Coding Plan |
antix | Antix (API key) |
antix-subscription | Antix (OAuth) |
local | Local models via llama.cpp |
Selecting a provider
You can set your provider in three ways (in order of precedence):
- CLI flag —
ante --provider anthropic --model claude-sonnet-4-5 - Settings file — Set
providerandmodelin~/.ante/settings.json - Built-in default — Anthropic with Claude Sonnet
Authentication
| Provider | Auth Method |
|---|---|
| Anthropic | ANTHROPIC_API_KEY env var or OAuth |
| Anthropic Subscription | OAuth |
| OpenAI | OPENAI_API_KEY env var or OAuth |
| OpenAI Compatible | OPENAI_COMPATIBLE_API_KEY env var |
| OpenAI Subscription | OAuth |
| Gemini | GEMINI_API_KEY env var |
| Vertex AI Gemini | VERTEX_GEMINI_API_KEY env var |
| Grok | XAI_API_KEY env var |
| Zai | Z_AI_API_KEY env var |
| Open Router | OPENROUTER_API_KEY env var |
| DeepSeek | DEEPSEEK_API_KEY env var |
| Ali Coding Plan | ALI_CODING_PLAN_API_KEY env var |
| Antix | ANTIX_API_KEY env var or OAuth |
| Local | No authentication needed |
Anthropic, OpenAI, and Antix also support interactive OAuth flows through the TUI.
Model details
Anthropic (Claude)
ante --provider anthropic --model claude-sonnet-4-5
Available models: claude-haiku-4-5, claude-sonnet-4-5, claude-sonnet-4-6, claude-opus-4-6
OpenAI
ante --provider openai --model gpt-5.4
Available models: gpt-5.4, gpt-5.4-pro, gpt-5.3-codex, gpt-5-mini, gpt-5-nano
OpenAI transports
The openai and openai-subscription providers can stream responses two ways:
| Transport | Endpoint | Default |
|---|---|---|
http_sse (HTTP + SSE) | https://api.openai.com/v1/responses (or the subscription equivalent) | ✅ |
websocket_auto (persistent WebSocket) | wss://.../v1/responses | opt-in |
WebSocket mode keeps one connection open per session and continues each turn with previous_response_id plus only the new input items. In long agentic tool loops this eliminates per-turn round-trip latency. See OpenAI's WebSocket mode guide for the underlying protocol.
Opt in via the process-scoped env var (default is http_sse):
ANTE_OPENAI_TRANSPORT=websocket_auto ante --provider openai --model gpt-5-mini
Accepted values: http_sse, websocket_auto. Unknown values warn and fall back to http_sse.
Notes:
-
WS only engages on streaming turns (TUI sessions). Headless
--promptmode uses non-streamingchat()and bypasses WS by design. -
Any transient WS failure (connect timeout, network blip) falls back to HTTP/SSE for that turn — users never see hard errors caused by the transport choice. Auth failures (
401/403) flip the entire session to HTTP/SSE for the rest of its lifetime. -
Works against both
api.openai.com(API-key) and the ChatGPT subscription backend atchatgpt.com/backend-api/codex. -
To verify which transport is active: in debug builds, toggle the debug panel (
Ctrl+L) and check the Info tab for theOpenAI Transport:line. Otherwise grep your session log fortransport selected:grep "transport selected" ~/.ante/logs/ante.*.log.*
Google Gemini
ante --provider gemini --model gemini-3.1-pro-preview
Available models: gemini-3.1-flash-lite-preview, gemini-3.1-pro-preview
Vertex AI Gemini
ante --provider vertex-gemini --model gemini-3.1-pro-preview
Grok (xAI)
ante --provider xai --model grok-4-latest
Zai
ante --provider zai --model glm-5.1
Open Router
ante --provider openrouter --model anthropic/claude-sonnet-4.6
Available models: anthropic/claude-opus-4.6, anthropic/claude-sonnet-4.6, google/gemini-3.1-pro-preview, openai/gpt-5.4-pro, deepseek/deepseek-v4-flash, deepseek/deepseek-v4-pro
DeepSeek
ante --provider deepseek --model deepseek-v4-flash
Available models: deepseek-v4-flash, deepseek-v4-pro. Set DEEPSEEK_API_KEY (and optionally DEEPSEEK_BASE_URL).
Ali Coding Plan
ante --provider ali-coding-plan --model qwen3.5-plus
Available models: qwen3.5-plus, qwen3.6-plus, kimi-k2.5, glm-5.1, MiniMax-M2.5, qwen3-max-2026-01-23, qwen3-coder-plus, qwen3-coder-next
Requires a Coding Plan subscription and API key (format: sk-sp-xxxxx). Not all models are available on the default Anthropic wire endpoint — to use the OpenAI-compatible endpoint, add a custom catalog entry:
{
"providers": {
"ali-coding-plan-oai": {
"name": "ali-coding-plan-oai",
"display_name": "Ali Coding Plan (OpenAI)",
"base_url": "https://coding.dashscope.aliyuncs.com/v1",
"auth": {
"bearer": {
"env_key": "ALI_CODING_PLAN_API_KEY"
}
},
"wire_style": "OpenAiCompatible",
"http_headers": {
"User-Agent": "ante-cli/1.0.0",
"X-DashScope-UserAgent": "coding-agent"
}
}
},
"models": {}
}
Antix
ante --provider antix --model claude-sonnet-4-6
Available models: gemini-3.1-flash-lite-preview, gemini-3.1-pro-preview, qwen3.6-plus, claude-haiku-4-5, claude-sonnet-4-6, gpt-5.4, gpt-5.3-codex. Use --provider antix-subscription for OAuth-backed access.
Local models
Run GGUF models locally via the built-in llama.cpp engine. No API keys or internet required. See Offline Mode for setup details.
ante --provider local
Standalone models
These specs are registered globally so you can pin them under any compatible provider (e.g. via --provider openai-compatible):
| Model | Description | Context |
|---|---|---|
qwen3.6-plus | Latest Qwen 3.6 Plus model | 1M |
qwen3.5-plus | Most powerful Qwen visual model | 1M |
qwen-plus | Fast and capable | 1M |
kimi-k2.5 | Kimi K2.5 reasoning model | 262K |
MiniMax-M2.5 | MiniMax M2.5 model | 200K |
Custom catalog
Create ~/.ante/catalog.json to add or override providers and models:
{
"providers": {
"my-provider": {
"name": "my-provider",
"display_name": "My Provider",
"base_url": "https://api.example.com/v1",
"auth": { "bearer": { "env_key": "MY_PROVIDER_API_KEY" } },
"wire_style": "OpenAiCompatible"
}
},
"models": {
"my-model": {
"name": "my-model",
"description": "Custom model",
"max_tokens": 32000,
"context_limit": 200000,
"thinking": "Enabled"
}
}
}
Supported wire styles: AnthropicMessage, OpenAiCompatible, OpenAiResponse, Gemini.
Supported thinking modes: Disabled, Enabled, Deep, Max.
Third-party & custom providers
Using Open Router
- Sign up at openrouter.ai and generate an API key.
- Set your API key:
export OPENROUTER_API_KEY="sk-or-..." - Use any model from Open Router's model list:
ante --provider openrouter --model deepseek/deepseek-reasoner
OpenAI-compatible providers
Many LLM providers expose an OpenAI-compatible API (e.g., Together AI, Fireworks, Groq Cloud, Perplexity):
- Set the base URL — the per-provider variable takes precedence over
MODEL_BASE_URL:export OPENAI_COMPATIBLE_BASE_URL="https://api.together.xyz/v1" - Set your API key:
export OPENAI_COMPATIBLE_API_KEY="your-provider-api-key" - Run with the OpenAI Compatible provider:
ante --provider openai-compatible --model meta-llama/Llama-3-70b-chat-hf
Each preset provider also honors a dedicated base-URL env var: ANTHROPIC_BASE_URL, OPENAI_BASE_URL, OPENAI_COMPATIBLE_BASE_URL, DEEPSEEK_BASE_URL. These take precedence over the global MODEL_BASE_URL.
When using third-party providers, make sure the model supports tool use (function calling). Ante relies on tool use for its agent capabilities.
Not all models work equally well as coding agents. If you experience issues, try a larger or more capable model.