{
  "providers": [
    {
      "id": "claude",
      "name": "Claude",
      "description": "Anthropic Claude. Sign in with a Claude subscription or paste an API key.",
      "providers": [
        {
          "displayName": "Claude",
          "iconUrl": "https://www.google.com/s2/favicons?domain=anthropic.com&sz=128",
          "envVarName": "ANTHROPIC_API_KEY",
          "upstreamBaseUrl": "https://api.anthropic.com",
          "apiKeyInstructions": "Get your API key from <a href=\"https://console.anthropic.com/settings/keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Anthropic Console</a>, or sign in with Claude",
          "apiKeyPlaceholder": "sk-ant-...",
          "sdkCompat": "anthropic",
          "modalities": ["text"],
          "defaultModel": "claude-sonnet-5",
          "models": [
            "claude-opus-4-8",
            "claude-sonnet-5",
            "claude-haiku-4-5-20251001",
            "claude-fable-5"
          ],
          "oauth": {
            "clientId": "9d1c250a-e61b-44d9-88ed-5944d1962f5e",
            "authUrl": "https://claude.com/cai/oauth/authorize",
            "tokenUrl": "https://platform.claude.com/v1/oauth/token",
            "redirectUri": "https://platform.claude.com/oauth/code/callback",
            "scope": "user:inference",
            "responseType": "code",
            "grantType": "authorization_code",
            "tokenEndpointAuthMethod": "none",
            "extraAuthParams": {
              "code": "true"
            },
            "tokenRequestFormat": "form",
            "grant": "authorization-code",
            "authType": "oauth"
          }
        }
      ]
    },
    {
      "id": "chatgpt",
      "name": "ChatGPT",
      "description": "Sign in with ChatGPT Plus/Pro (device code). Uses your subscription, not metered API billing.",
      "providers": [
        {
          "displayName": "ChatGPT",
          "iconUrl": "https://www.google.com/s2/favicons?domain=chatgpt.com&sz=128",
          "envVarName": "OPENAI_API_KEY",
          "upstreamBaseUrl": "https://chatgpt.com/backend-api",
          "sdkCompat": "openai-codex",
          "apiKeyInstructions": "Sign in with ChatGPT Plus/Pro.",
          "apiKeyPlaceholder": "Sign in with ChatGPT",
          "modalities": ["text"],
          "oauth": {
            "clientId": "app_EMoamEEZ73f0CkXaXp7hrann",
            "tokenUrl": "https://auth.openai.com/oauth/token",
            "redirectUri": "https://auth.openai.com/deviceauth/callback",
            "scope": "openid profile email offline_access api.model.read api.model.request api.model.image.request api.model.audio.request",
            "tokenEndpointAuthMethod": "none",
            "tokenRequestFormat": "form",
            "grant": "openai-device-auth",
            "authType": "device-code",
            "deviceCodeUrl": "https://auth.openai.com/api/accounts/deviceauth/usercode",
            "deviceTokenUrl": "https://auth.openai.com/api/accounts/deviceauth/token",
            "deviceRedirectUri": "https://auth.openai.com/deviceauth/callback",
            "defaultVerificationUrl": "https://auth.openai.com/codex/device",
            "includeScopeInRefresh": true,
            "accountIdClaimPath": "https://api.openai.com/auth",
            "scopeEnvVar": "OPENAI_OAUTH_SCOPE",
            "userAgent": "reqwest/0.12.24"
          }
        }
      ]
    },
    {
      "id": "groq",
      "name": "Groq",
      "description": "Fast LLM inference via Groq",
      "providers": [
        {
          "displayName": "Groq",
          "iconUrl": "https://www.google.com/s2/favicons?domain=groq.com&sz=128",
          "envVarName": "GROQ_API_KEY",
          "upstreamBaseUrl": "https://api.groq.com/openai/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://console.groq.com/keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Groq Console</a>",
          "apiKeyPlaceholder": "gsk_...",
          "sdkCompat": "openai",
          "modalities": ["text", "stt"],
          "defaultModel": "llama-3.3-70b-versatile",
          "modelsEndpoint": "/models",
          "stt": {
            "enabled": true,
            "sdkCompat": "openai",
            "transcriptionPath": "/audio/transcriptions",
            "model": "whisper-large-v3-turbo"
          },
          "models": [
            "llama-3.3-70b-versatile",
            "llama-3.1-8b-instant",
            "mixtral-8x7b-32768"
          ]
        }
      ]
    },
    {
      "id": "gemini",
      "name": "Gemini",
      "description": "Google Gemini models",
      "providers": [
        {
          "displayName": "Gemini",
          "iconUrl": "https://www.google.com/s2/favicons?domain=gemini.google.com&sz=128",
          "envVarName": "GEMINI_API_KEY",
          "upstreamBaseUrl": "https://generativelanguage.googleapis.com/v1beta/openai",
          "apiKeyInstructions": "Get your API key from <a href=\"https://aistudio.google.com/apikey\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Google AI Studio</a>",
          "apiKeyPlaceholder": "AIza...",
          "sdkCompat": "openai",
          "modalities": ["text", "image"],
          "defaultModel": "gemini-2.5-pro",
          "models": ["gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.0-flash"]
        }
      ]
    },
    {
      "id": "together-ai",
      "name": "Together AI",
      "description": "Open-source models hosted by Together",
      "providers": [
        {
          "displayName": "Together AI",
          "iconUrl": "https://www.google.com/s2/favicons?domain=together.ai&sz=128",
          "envVarName": "TOGETHER_API_KEY",
          "upstreamBaseUrl": "https://api.together.xyz/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://api.together.ai/settings/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Together AI Dashboard</a>",
          "apiKeyPlaceholder": "tok_...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
          "modelsEndpoint": "/models",
          "models": [
            "meta-llama/Llama-3.3-70B-Instruct-Turbo",
            "Qwen/Qwen2.5-72B-Instruct-Turbo",
            "deepseek-ai/DeepSeek-V3"
          ]
        }
      ]
    },
    {
      "id": "nvidia",
      "name": "NVIDIA NIM",
      "description": "NVIDIA-hosted models and inference APIs",
      "providers": [
        {
          "displayName": "NVIDIA NIM (free)",
          "iconUrl": "https://www.google.com/s2/favicons?domain=nvidia.com&sz=128",
          "envVarName": "NVIDIA_API_KEY",
          "upstreamBaseUrl": "https://integrate.api.nvidia.com/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://build.nvidia.com/settings/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">NVIDIA Build</a>",
          "apiKeyPlaceholder": "nvapi-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "modelsEndpoint": "/models",
          "defaultModel": "nvidia/moonshotai/kimi-k2.6",
          "models": [
            "nvidia/moonshotai/kimi-k2.6",
            "meta/llama-3.3-70b-instruct",
            "deepseek-ai/deepseek-r1"
          ]
        }
      ]
    },
    {
      "id": "fireworks",
      "name": "Fireworks AI",
      "description": "Fast inference for open-source models",
      "providers": [
        {
          "displayName": "Fireworks AI",
          "iconUrl": "https://www.google.com/s2/favicons?domain=fireworks.ai&sz=128",
          "envVarName": "FIREWORKS_API_KEY",
          "upstreamBaseUrl": "https://api.fireworks.ai/inference/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://fireworks.ai/account/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Fireworks Dashboard</a>",
          "apiKeyPlaceholder": "fw_...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "accounts/fireworks/models/llama-v3p3-70b-instruct",
          "modelsEndpoint": "/models",
          "models": [
            "accounts/fireworks/models/llama-v3p3-70b-instruct",
            "accounts/fireworks/models/deepseek-v3",
            "accounts/fireworks/models/qwen2p5-72b-instruct"
          ]
        }
      ]
    },
    {
      "id": "mistral",
      "name": "Mistral",
      "description": "Mistral AI models",
      "providers": [
        {
          "displayName": "Mistral",
          "iconUrl": "https://www.google.com/s2/favicons?domain=mistral.ai&sz=128",
          "envVarName": "MISTRAL_API_KEY",
          "upstreamBaseUrl": "https://api.mistral.ai/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://console.mistral.ai/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Mistral Console</a>",
          "apiKeyPlaceholder": "sk-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "mistral-large-latest",
          "modelsEndpoint": "/models",
          "models": [
            "mistral-large-latest",
            "mistral-small-latest",
            "codestral-latest"
          ]
        }
      ]
    },
    {
      "id": "deepseek",
      "name": "DeepSeek",
      "description": "DeepSeek V4 models \u2014 fast and reasoning variants",
      "providers": [
        {
          "displayName": "DeepSeek",
          "iconUrl": "https://www.google.com/s2/favicons?domain=deepseek.com&sz=128",
          "envVarName": "DEEPSEEK_API_KEY",
          "upstreamBaseUrl": "https://api.deepseek.com",
          "apiKeyInstructions": "Get your API key from <a href=\"https://platform.deepseek.com/api_keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">DeepSeek Platform</a>",
          "apiKeyPlaceholder": "sk-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "deepseek-v4-flash",
          "modelsEndpoint": "/v1/models",
          "models": ["deepseek-v4-flash", "deepseek-chat", "deepseek-reasoner"]
        }
      ]
    },
    {
      "id": "openrouter",
      "name": "OpenRouter",
      "description": "Multi-provider model router with per-user billing",
      "providers": [
        {
          "displayName": "OpenRouter",
          "iconUrl": "https://www.google.com/s2/favicons?domain=openrouter.ai&sz=128",
          "envVarName": "OPENROUTER_API_KEY",
          "upstreamBaseUrl": "https://openrouter.ai/api/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://openrouter.ai/keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">OpenRouter</a>, or connect via OAuth for per-user billing",
          "apiKeyPlaceholder": "sk-or-...",
          "sdkCompat": "openai",
          "modalities": ["text", "stt"],
          "defaultModel": "anthropic/claude-sonnet-5",
          "modelsEndpoint": "/models",
          "stt": {
            "enabled": true,
            "sdkCompat": "openai",
            "transcriptionPath": "/audio/transcriptions",
            "model": "whisper-1"
          },
          "models": [
            "anthropic/claude-sonnet-5",
            "openai/gpt-5.6-sol",
            "google/gemini-2.5-pro"
          ]
        }
      ]
    },
    {
      "id": "cerebras",
      "name": "Cerebras",
      "description": "Ultra-fast inference on Cerebras hardware",
      "providers": [
        {
          "displayName": "Cerebras",
          "iconUrl": "https://www.google.com/s2/favicons?domain=cerebras.ai&sz=128",
          "envVarName": "CEREBRAS_API_KEY",
          "upstreamBaseUrl": "https://api.cerebras.ai/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://cloud.cerebras.ai/\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Cerebras Cloud</a>",
          "apiKeyPlaceholder": "csk-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "llama-3.3-70b",
          "modelsEndpoint": "/models",
          "models": ["llama-3.3-70b", "llama3.1-8b", "qwen-3-32b"]
        }
      ]
    },
    {
      "id": "opencode-zen",
      "name": "OpenCode Zen",
      "description": "Curated AI gateway with 40+ coding-optimized models",
      "providers": [
        {
          "displayName": "OpenCode Zen",
          "iconUrl": "https://www.google.com/s2/favicons?domain=opencode.ai&sz=128",
          "envVarName": "OPENCODE_ZEN_API_KEY",
          "upstreamBaseUrl": "https://opencode.ai/zen/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://opencode.ai/auth\" target=\"_blank\" class=\"text-blue-600 hover:underline\">OpenCode Zen</a>",
          "apiKeyPlaceholder": "zen-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "claude-sonnet-4-6",
          "modelsEndpoint": "/models"
        }
      ]
    },
    {
      "id": "qwen",
      "name": "Qwen",
      "description": "Alibaba Cloud DashScope & Qwen models",
      "providers": [
        {
          "displayName": "Qwen",
          "iconUrl": "https://www.google.com/s2/favicons?domain=alibabacloud.com&sz=128",
          "envVarName": "DASHSCOPE_API_KEY",
          "upstreamBaseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
          "apiKeyInstructions": "Get your API key from the <a href=\"https://dashscope.console.aliyun.com/apiKey\" target=\"_blank\" class=\"text-blue-600 hover:underline\">DashScope Console</a>. A Qoder / Token Plan subscription is served from a different host — set a custom upstream of <code>https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1</code> and paste that plan's key. The <code>qwen3.8-max</code> tiers are only reachable that way.",
          "apiKeyPlaceholder": "sk-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "qwen-max",
          "modelsEndpoint": "/models",
          "models": [
            "qwen3.8-max",
            "qwen3.8-max-preview",
            "qwen-max",
            "qwen-plus",
            "qwen-turbo",
            "qwen2.5-coder-32b-instruct",
            "qwen2.5-72b-instruct"
          ]
        }
      ]
    },
    {
      "id": "xai",
      "name": "xAI",
      "description": "Grok models by xAI. Sign in with SuperGrok / X Premium+ (device code) or paste an API key from the xAI Console.",
      "providers": [
        {
          "displayName": "xAI (SuperGrok)",
          "iconUrl": "https://www.google.com/s2/favicons?domain=x.ai&sz=128",
          "envVarName": "XAI_API_KEY",
          "upstreamBaseUrl": "https://api.x.ai/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://console.x.ai/\" target=\"_blank\" class=\"text-blue-600 hover:underline\">xAI Console</a>, or sign in with SuperGrok / X Premium+",
          "apiKeyPlaceholder": "xai-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "grok-4",
          "modelsEndpoint": "/models",
          "models": ["grok-4", "grok-3", "grok-3-mini"],
          "oauth": {
            "clientId": "b1a00492-073a-47ea-816f-4c329264a828",
            "tokenUrl": "https://auth.x.ai/oauth2/token",
            "scope": "openid profile email offline_access grok-cli:access api:access",
            "tokenEndpointAuthMethod": "none",
            "tokenRequestFormat": "form",
            "grant": "device-code",
            "authType": "device-code",
            "deviceCodeUrl": "https://auth.x.ai/oauth2/device/code",
            "defaultVerificationUrl": "https://accounts.x.ai/oauth2/device",
            "verificationUserCodeParam": "user_code"
          }
        }
      ]
    },
    {
      "id": "perplexity",
      "name": "Perplexity",
      "description": "Search-augmented AI models",
      "providers": [
        {
          "displayName": "Perplexity",
          "iconUrl": "https://www.google.com/s2/favicons?domain=perplexity.ai&sz=128",
          "envVarName": "PERPLEXITY_API_KEY",
          "upstreamBaseUrl": "https://api.perplexity.ai",
          "apiKeyInstructions": "Get your API key from <a href=\"https://www.perplexity.ai/settings/api\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Perplexity Settings</a>",
          "apiKeyPlaceholder": "pplx-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "sonar",
          "modelsEndpoint": "/v1/models",
          "models": ["sonar", "sonar-pro", "sonar-reasoning-pro"]
        }
      ]
    },
    {
      "id": "cohere",
      "name": "Cohere",
      "description": "Enterprise AI with Command and Embed models",
      "providers": [
        {
          "displayName": "Cohere",
          "iconUrl": "https://www.google.com/s2/favicons?domain=cohere.com&sz=128",
          "envVarName": "COHERE_API_KEY",
          "upstreamBaseUrl": "https://api.cohere.com/compatibility/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://dashboard.cohere.com/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">Cohere Dashboard</a>",
          "apiKeyPlaceholder": "co-...",
          "sdkCompat": "openai",
          "modalities": ["text"],
          "defaultModel": "command-a-03-2025",
          "modelsEndpoint": "/models",
          "models": ["command-a-03-2025", "command-r-plus", "command-r"]
        }
      ]
    },
    {
      "id": "openai",
      "name": "OpenAI API",
      "description": "OpenAI platform API. Uses your OpenAI API key (sk-...), billed per token.",
      "providers": [
        {
          "displayName": "OpenAI API",
          "iconUrl": "https://www.google.com/s2/favicons?domain=openai.com&sz=128",
          "envVarName": "OPENAI_API_KEY",
          "upstreamBaseUrl": "https://api.openai.com/v1",
          "apiKeyInstructions": "Get your API key from <a href=\"https://platform.openai.com/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">OpenAI Dashboard</a>",
          "apiKeyPlaceholder": "sk-...",
          "sdkCompat": "openai",
          "modalities": ["text", "image", "stt", "tts"],
          "stt": {
            "enabled": true,
            "sdkCompat": "openai",
            "transcriptionPath": "/audio/transcriptions",
            "model": "gpt-4o-transcribe"
          },
          "defaultModel": "gpt-5.6-sol",
          "modelsEndpoint": "/models",
          "models": ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5"]
        }
      ]
    }
  ]
}
