Providers
Ante is provider-agnostic. Each provider implements a common interface for sending prompts and receiving streaming responses, and providers and models are resolved from a catalog at session start.
This page covers the everyday tasks: picking a provider, authenticating, and customizing the catalog. For the complete list of built-in providers, every model they serve, and the full catalog.json schema, see the Catalog Reference.
Selecting a provider
You can set your provider three ways, in order of precedence:
- CLI flag —
ante --provider anthropic --model claude-sonnet-4-6 - Settings file — set
providerandmodelin~/.ante/settings.json - Auto-detect — if you specify neither, Ante uses the first provider you have credentials for (and
localif none).
Every provider id you can pass to --provider is listed in the Catalog Reference.
Mid-session, type /providers in the TUI: pick a connected provider, then confirm a model (and effort) from its scoped picker. Ante remembers the last model you used on each provider. See Models, Providers & Effort.
Authentication
Most providers read an API key from an environment variable:
export ANTHROPIC_API_KEY="sk-ant-..."
ante --provider anthropic --model claude-sonnet-4-6
Each provider's exact auth method (env var name or OAuth) is in the Catalog Reference.
Subscription login (OAuth)
Providers with subscription plans (Anthropic, OpenAI, Antix, etc.) can sign in via OAuth instead, so you use your existing subscription without managing API keys. Type /connect in the TUI to open the provider login flow. Ante launches your default browser for authentication, then links your session automatically.
Once connected, Ante remembers your credentials for future sessions, so there is no need to re-authenticate each time.
When using third-party providers, make sure the model supports tool use (function calling) — Ante relies on it for agent capabilities. If results are poor, try a larger or more capable model.
Custom catalog
Create ~/.ante/catalog.json to add a provider Ante doesn't ship, patch a built-in one, or tweak a model's defaults. It is merged on top of the built-in presets at startup, so you only specify what you want to add or change. The examples below are the common cases; see the Catalog Reference for the full schema, authentication forms, and resolution rules.
Add a hosted provider
Most hosted endpoints are OpenAI-compatible. Register one with wire_style: "OpenAiCompatible", point base_url at it, and list the models you want to appear in the picker:
{
"providers": {
"together": {
"display_name": "Together AI",
"base_url": "https://api.together.xyz/v1",
"wire_style": "OpenAiCompatible",
"auth": { "bearer": { "env_key": "TOGETHER_API_KEY" } },
"preferred_models": [
{
"id": "moonshotai/Kimi-K2-Instruct",
"description": "Kimi K2 on Together",
"max_tokens": 16384,
"context_limit": 128000,
"effort": "medium"
}
]
}
}
}
export TOGETHER_API_KEY="..."
ante --provider together --model moonshotai/Kimi-K2-Instruct
Add a local provider with no auth
Omit auth for a provider that needs no key, and leave preferred_models off when the provider has no stable picker/default model list — handy for a local server like Ollama where the available models change as you pull them. You can still pass any model id explicitly with --provider and --model:
{
"providers": {
"ollama": {
"display_name": "Ollama",
"base_url": "http://localhost:11434/v1",
"wire_style": "OpenAiCompatible"
}
}
}
ante --provider ollama --model qwen2.5-coder:7b
Patch a built-in provider
When the key matches a built-in provider, only the fields you set are changed.
Set optional fields such as auth or http_headers to null to clear the
preset value:
{
"providers": {
"openai": {
"base_url": "http://localhost:8080/v1",
"auth": null
}
}
}
Override model defaults
The models section patches a model by id without redefining it. Each field you set replaces the built-in default; everything else is left alone:
{
"models": {
"claude-opus-4-8": { "effort": "max" },
"claude-sonnet-4-6": { "effort": "high", "max_tokens": 64000 },
"gpt-5.5": { "temperature": 0.2 }
}
}
Third-party 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). For a one-off you can reuse the built-in openai-compatible provider via env vars (no catalog edit needed):
- 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
For something you'll use repeatedly, add a named provider to your custom catalog instead so it shows up in the picker.