Skip to main content

Model format

Models use the provider:model syntax:
anthropic:claude-sonnet-4-5
openai:gpt-4o
openrouter:google/gemini-2.5-flash

Built-in providers

ProviderSlugEnv variableModel example
AnthropicanthropicANTHROPIC_API_KEYanthropic:claude-sonnet-4-5
OpenAIopenaiOPENAI_API_KEYopenai:gpt-4o
GooglegoogleGEMINI_API_KEYgoogle:gemini-2.5-pro
xAIxaiXAI_API_KEYxai:grok-3-mini
OpenRouteropenrouterOPENROUTER_API_KEYopenrouter:anthropic/claude-sonnet-4-5
GroqgroqGROQ_API_KEYgroq:llama-3.3-70b
MistralmistralMISTRAL_API_KEYmistral:mistral-large
CerebrascerebrasCEREBRAS_API_KEYcerebras:llama3.1-70b
MiniMaxminimaxMINIMAX_API_KEYminimax:minimax-m2.5
MiniMax (China)minimax-cnMINIMAX_CN_API_KEYminimax-cn:minimax-m2.5
Amazon Bedrockamazon-bedrockAWS_ACCESS_KEY_IDamazon-bedrock:anthropic.claude-v2
Azure OpenAIazure-openai-responsesAZURE_OPENAI_API_KEYazure-openai-responses:gpt-4o
Google Vertexgoogle-vertexGOOGLE_CLOUD_PROJECTgoogle-vertex:gemini-pro
Hugging FacehuggingfaceHF_TOKENhuggingface:meta-llama/Llama-3-70b
Vercel AI Gatewayvercel-ai-gatewayAI_GATEWAY_API_KEYvercel-ai-gateway:anthropic/claude-sonnet-4-5
z.aizaiZAI_API_KEYzai:zai-default
Kimi (Moonshot)kimi-codingKIMI_API_KEYkimi-coding:kimi-k2.5
GitHub Copilotgithub-copilotCOPILOT_GITHUB_TOKENgithub-copilot:gpt-4o
OpenAI Codexopenai-codexOPENAI_API_KEYopenai-codex:codex-mini
Google Gemini CLIgoogle-gemini-cliGEMINI_API_KEYgoogle-gemini-cli:gemini-2.5-pro
Google Antigravitygoogle-antigravityGEMINI_API_KEYgoogle-antigravity:gemini-2.5-pro
OpenCodeopencodeOPENCODE_API_KEYopencode:opencode-default
OpenCode (Go)opencode-goOPENCODE_API_KEYopencode-go:opencode-default

Auto-inference

If you don’t specify a provider, Polpo infers it from the model name:
PrefixProvider
claude-anthropic
gpt-, chatgpt-, codex-openai
o1-, o3-, o4-openai
gemini-google
grok-xai
mistral-, codestral-, devstral-mistral
llama-, llama3groq
deepseek-openrouter
gpt-oss-cerebras
glm-zai
minimax-minimax
kimi-kimi-coding
amazon., us., eu.amazon-bedrock
hf:huggingface
big-pickleopencode
"model": "claude-sonnet-4-5"
is equivalent to:
"model": "anthropic:claude-sonnet-4-5"

Custom providers

Point to any OpenAI-compatible endpoint by adding a provider in .polpo/polpo.json:
{
  "providers": {
    "my-provider": {
      "baseUrl": "https://my-endpoint.com/v1",
      "api": "openai-completions"
    }
  }
}
Then use: "model": "my-provider:model-name"

API modes

ModeDescription
openai-completionsOpenAI Chat Completions API (default)
openai-responsesOpenAI Responses API
anthropic-messagesAnthropic Messages API

Custom model definitions

Define model metadata for accurate context window and cost tracking:
{
  "providers": {
    "my-provider": {
      "baseUrl": "https://my-endpoint.com/v1",
      "api": "openai-completions",
      "models": [
        {
          "id": "my-model",
          "name": "My Custom Model",
          "contextWindow": 128000,
          "maxTokens": 16384,
          "reasoning": true
        }
      ]
    }
  }
}

LLM Gateways

LiteLLM

{
  "providers": {
    "litellm": {
      "baseUrl": "https://my-litellm-proxy.com/v1",
      "api": "openai-completions"
    }
  }
}
"model": "litellm:gpt-4o"
"model": "litellm:claude-sonnet-4-5"
LiteLLM routes to 100+ providers through a single proxy. The model ID follows LiteLLM’s naming convention.

Vercel AI Gateway

{
  "providers": {
    "vercel": {
      "baseUrl": "https://gateway.ai.vercel.app/v1",
      "api": "openai-completions"
    }
  }
}
"model": "vercel:anthropic/claude-sonnet-4-5"
"model": "vercel:google/gemini-2.5-pro"
The Vercel AI Gateway provides automatic failover, cost tracking, and caching across providers.

Ollama (local)

{
  "providers": {
    "ollama": {
      "baseUrl": "http://localhost:11434/v1",
      "api": "openai-completions"
    }
  }
}
"model": "ollama:llama3.1:70b"

vLLM

{
  "providers": {
    "vllm": {
      "baseUrl": "https://my-vllm-server.com/v1",
      "api": "openai-completions"
    }
  }
}
The model ID is passed as-is to the gateway or server — no need to pre-define every model in the config.