Providers
Last updated
Provider implementations live in
go-llm-router (v0.10.1), an external module extracted from Agenvoy. Agenvoy builds every agent through router.New(cfg) and calls one Agent.Send() surface — no per-vendor code remains in this repository.Supported list
Eleven model vendors, plus TypeSafe, which since v1.3.1 serves only the decision model. Since v1.0.22 the TUI
/model add picker has three tabs (←/→ switches), and each auth route is its own row: OAuth — Claude Code (claude-code, since v1.1.0), OpenAI Codex (codex), Grok (xAI) (grok-oauth), GitHub Copilot (copilot); API Key — OpenAI, Claude, Grok, Gemini, DeepSeek, Mistral, OpenRouter, Ollama Cloud, NVIDIA NIM, TypeSafe (key only: saving it skips the model list, and its model is picked in /model decision); Custom — Cloudflare, Local/Custom (compat), plus any local Ollama / llama.cpp endpoint detected on its usual port. That is sixteen fixed rows (fifteen before v1.3.1, fourteen in v1.0.22). Before v1.0.22 it was one twelve-row list, where picking OpenAI or Grok opened a second method picker for API key vs. subscription. o on a row opens that provider's console (API-key page, or the plan page for subscriptions). GET /v1/providers flattens the same set into fifteen entries, giving claude-code, codex and grok-oauth their own IDs so an API client can address one auth route directly; compat is returned alongside them as a sixteenth row. Each row carries logged_in, which is meaningful only for the four subscription routes (claude-code, codex, grok-oauth, copilot), console, the console pages GET /v1/provider/:provider/console can redirect to, hidden, set on claude-code while it is not enabled, and (since v1.3.1) decision, true only for typesafe.| Provider | ID | Auth | Notes |
|---|---|---|---|
| OpenAI | openai · codex | API key or OAuth | API key uses Chat Completions / Responses. The OAuth route runs on your ChatGPT / Codex subscription with no API key, over SSE |
| Anthropic Claude | claude · claude-code | API key or OAuth (Claude Code) | API key uses the Messages API, parallel tool use on by default. claude-code runs on your Claude subscription through the local claude CLI — see Claude Code |
| Google Gemini | gemini | API key | gemini-2.x / 3.x families |
| xAI Grok | grok · grok-oauth | API key or OAuth | API key is pay-per-token; the OAuth route runs on your xAI subscription |
| GitHub Copilot | copilot | OAuth | Device-code login flow, on your GitHub subscription. Since v1.0.25 its context window comes from the Copilot models API (max_context_window_tokens, cached 24 hours), not the general 128K default |
| DeepSeek | deepseek | API key | Flash and Pro models (e.g. deepseek-v4-pro), listed live from api.deepseek.com/v1/models; deepseek-chat / deepseek-reasoner are gone |
| Mistral | mistral | API key | Mistral's own hosted models |
| NVIDIA NIM | nvidia | API key | Nemotron, Llama, Mistral, and other hosted open-weight models; free tier needs no billing setup |
| Ollama Cloud | ollama-cloud | API key | Ollama's hosted models; since 2026-11-09 the Free plan is pay-as-you-go and hosted models need credits. Quota display was removed; check usage on ollama.com (Removed in v1.2.0) |
| OpenRouter | openrouter | API key | Aggregator — routes to models from many vendors through one key |
| Cloudflare | cloudflare | API token + account ID | Workers AI; optional gateway ID |
| TypeSafe | typesafe | API key | Since v1.3.1. Decision model only — no chat models; stored as TYPESAFE_API_KEY |