---
title: AI Providers
description: Supported AI providers and their configuration.
owner: team-runtime
status: canonical
lastReviewed: 2026-03-26
appliesTo: main
docType: reference
---

Corvus supports a wide range of AI providers, including both cloud-based and local options. You can configure your preferred provider during the onboarding process or by editing your `config.toml` file.

## Supported Providers

| Provider | ID (for config) | Environment Variable | Image Support | Notes |
| :--- | :--- | :--- | :---: | :--- |
| **OpenRouter** | `openrouter` | `OPENROUTER_API_KEY` | Yes | Recommended. Access to 200+ models. |
| **Anthropic** | `anthropic` | `ANTHROPIC_API_KEY`, `ANTHROPIC_OAUTH_TOKEN` | Yes | Supports Claude models and setup-tokens. |
| **OpenAI** | `openai` | `OPENAI_API_KEY` | Yes | Direct access to GPT models. |
| **OpenAI Codex** | `openai-codex` | — | No | Access via OAuth. |
| **Google Gemini** | `gemini` | `GEMINI_API_KEY`, `GOOGLE_API_KEY` | Yes | Supports `gemini-cli` OAuth tokens. |
| **Ollama** | `ollama` | `OLLAMA_API_KEY` | No | Local models by default. |
| **LM Studio** | `lmstudio` | — | No | Local models (default `http://localhost:1234`). |
| **Venice AI** | `venice` | `VENICE_API_KEY` | No | Privacy-focused provider. |
| **Groq** | `groq` | `GROQ_API_KEY` | No | High-speed inference. |
| **Mistral** | `mistral` | `MISTRAL_API_KEY` | No | Direct access to Mistral models. |
| **DeepSeek** | `deepseek` | `DEEPSEEK_API_KEY` | No | Affordable, high-quality models. |
| **xAI (Grok)** | `xai` | `XAI_API_KEY` | No | Direct access to Grok models. |
| **Together AI** | `together` | `TOGETHER_API_KEY` | No | Open-source model hosting. |
| **Fireworks AI** | `fireworks` | `FIREWORKS_API_KEY` | No | Fast open-source inference. |
| **Perplexity** | `perplexity` | `PERPLEXITY_API_KEY` | No | Search-augmented AI. |
| **Cohere** | `cohere` | `COHERE_API_KEY` | No | Enterprise-grade models. |
| **GitHub Copilot** | `copilot` | `GITHUB_TOKEN`, `GH_TOKEN` | No | Uses your GitHub subscription. |
| **Amazon Bedrock** | `bedrock` | `API_KEY` | No | AWS Bedrock (OpenAI-compatible). |
| **Synthetic** | `synthetic` | `SYNTHETIC_API_KEY` | No | |
| **OpenCode Zen** | `opencode` | `OPENCODE_API_KEY` | No | |
| **NVIDIA NIM** | `nvidia` | `NVIDIA_API_KEY` | No | High-performance inference. |
| **Vercel AI** | `vercel` | `VERCEL_API_KEY` | No | AI gateway. |
| **Cloudflare AI** | `cloudflare` | `CLOUDFLARE_API_KEY` | No | AI gateway. |
| **Astrai** | `astrai` | `ASTRAI_API_KEY` | No | Compliant AI routing. |

## Advanced Authentication

Some providers support advanced authentication methods beyond simple API keys:

### OAuth & CLI Authentication

- **Google Gemini**: Corvus can automatically reuse credentials from the Gemini CLI. If you have run `gemini` and authenticated, Corvus will find your OAuth tokens in `~/.gemini/oauth_creds.json`.
- **OpenAI Codex**: Uses an OAuth-based flow for authentication.
- **GitHub Copilot**: Reuses your GitHub CLI authentication or environment-provided tokens.

### Setup Tokens

For **Anthropic**, you can use an `ANTHROPIC_OAUTH_TOKEN` (setup token) as an alternative to a standard API key.

## Regional & Specialized Providers

Corvus also supports several regional and specialized providers, particularly for the Chinese market:

- **Moonshot (Kimi)**: `moonshot`, `moonshot-intl` (`MOONSHOT_API_KEY`)
- **GLM (Zhipu)**: `glm`, `glm-cn` (`GLM_API_KEY`)
- **MiniMax**: `minimax`, `minimax-cn` (`MINIMAX_API_KEY`)
- **Qwen (DashScope)**: `qwen`, `qwen-intl`, `qwen-us` (`DASHSCOPE_API_KEY`)
- **Qianfan (Baidu)**: `qianfan` (`QIANFAN_API_KEY`)
- **Z.AI**: `zai`, `zai-cn` (`ZAI_API_KEY`)

## Custom Endpoints

If you have a self-hosted or OpenAI/Anthropic-compatible API, you can use a custom provider string:

- **OpenAI-compatible**: Use `custom:<URL>` as the provider name.
- **Anthropic-compatible**: Use `anthropic-custom:<URL>` as the provider name.

Example:
```bash
corvus onboard --provider "custom:http://localhost:1234/v1" --api-key "your-key"
```

## Credential Resolution

Corvus resolves credentials in the following order:

1. Explicitly provided `api_key` in `config.toml`.
2. Provider-specific environment variable (e.g., `ANTHROPIC_API_KEY`).
3. Generic fallback environment variables (`CORVUS_API_KEY` or `API_KEY`).

## Provider Pools (Reusable)

Account pools are provider-agnostic: the pool wrapper applies to any provider
registered in the provider factory. Configure pools under
`reliability.account_pools.<provider>` and the runtime will select an account
per request while keeping providers cached per account. This means new or
custom providers automatically inherit pooling behavior once they are wired
into the provider factory.
