<!-- Markdown mirror. Canonical: https://empryo.com/docs/providers/overview -->

# Providers

> Configure Empryo's 31 built-in LLM providers across cloud, gateways, coding plans, subscriptions, local and enterprise, plus any OpenAI-compatible custom API.

Empryo ships 31 built-in providers. Set one key and go.

## Cloud

| Provider | Setup | Get a key |
|----------|-------|-----------|
| **Anthropic** | `empryo --set-key anthropic sk-ant-...` | [console.anthropic.com](https://console.anthropic.com) |
| **OpenAI** | `empryo --set-key openai sk-...` | [platform.openai.com](https://platform.openai.com) |
| **Google** | `empryo --set-key google ...` | [aistudio.google.com](https://aistudio.google.com) |
| **xAI** | `empryo --set-key xai xai-...` | [console.x.ai](https://console.x.ai) |
| **Groq** | `empryo --set-key groq gsk_...` | [console.groq.com](https://console.groq.com) |
| **DeepSeek** | `empryo --set-key deepseek sk-...` | [platform.deepseek.com](https://platform.deepseek.com) |
| **Mistral** | `empryo --set-key mistral ...` | [console.mistral.ai](https://console.mistral.ai) |
| **NVIDIA NIM** | `empryo --set-key nim nvapi-...` | [build.nvidia.com](https://build.nvidia.com) |
| **Fireworks** | `empryo --set-key fireworks ...` | [fireworks.ai](https://fireworks.ai) |
| **MiniMax** | `empryo --set-key minimax ...` | [platform.minimaxi.com](https://platform.minimaxi.com) |
| **Ollama Cloud** | `/login ollama-cloud` or `empryo --set-key ollama-cloud ...` | [ollama.com/settings/keys](https://ollama.com/settings/keys) |

## Gateways (one key, many models)

| Provider | What you get | Get a key |
|----------|--------------|-----------|
| **LLM Gateway** | One key for every major model, up to 30% off frontier | [llmgateway.io](https://llmgateway.io/dashboard?ref=6tjJR2H3X4E9RmVQiQwK) |
| **OpenRouter** | 200+ models | [openrouter.ai](https://openrouter.ai) |
| **Vercel AI Gateway** | Unified gateway | [vercel.com/ai-gateway](https://vercel.com/ai-gateway) |

## Subscription-based

| Provider | Use | Setup |
|----------|-----|-------|
| **[GitHub Copilot](/docs/providers/copilot)** | Your Copilot subscription | `/login copilot`, or `/login copilot-enterprise` for GHE |
| **GitHub Models** | Free with any GitHub PAT | `empryo --set-key github-models ghp_...` |

## Coding plans

Monthly plans that serve their own endpoint. Each one is a key and a base URL. Models, context windows and prices come from the [models.dev](https://models.dev) catalog at runtime, so a vendor shipping a model today is selectable today with no Empryo release. A row stays hidden in every picker until its key is set.

| Provider | Plan | Get a key |
|----------|------|-----------|
| **Z.AI Coding Plan** | GLM coding plan | [z.ai](https://z.ai/manage-apikey/apikey-list) |
| **Zhipu Coding Plan** | The same plan on the mainland-China host | [bigmodel.cn](https://bigmodel.cn/usercenter/apikeys) |
| **Alibaba Coding Plan** | Qwen coding plan | [bailian.console.alibabacloud.com](https://bailian.console.alibabacloud.com) |
| **Alibaba Token Plan** | Qwen, metered instead of flat | [bailian.console.alibabacloud.com](https://bailian.console.alibabacloud.com) |
| **Xiaomi MiMo** | MiMo token plan, Singapore host | [platform.xiaomimimo.com](https://platform.xiaomimimo.com) |
| **Kilo Gateway** | Many vendors behind one key | [kilo.ai](https://kilo.ai) |
| **SiliconFlow** | Open-weight hosting | [cloud.siliconflow.com](https://cloud.siliconflow.com/account/ak) |
| **Synthetic** | Flat-rate open-weight plan | [synthetic.new](https://synthetic.new) |

Set one the same way as any other key:

```bash
empryo --set-key zai-coding-plan ...
empryo --set-key zhipu-coding-plan ...
empryo --set-key alibaba-coding-plan ...
```

Five of these also have a sign-in lane, which is the better route when you have one: `/login` stores the key in the keychain and, for Alibaba and Xiaomi, probes the vendor's regional hosts and remembers the one that accepted it. See [Subscriptions](/docs/providers/subscriptions).

The env var each vendor's own users already export works too: `ZAI_API_KEY`, `ZHIPU_API_KEY`, `ALIBABA_CODING_PLAN_API_KEY`, `ALIBABA_TOKEN_PLAN_API_KEY`, `XIAOMI_API_KEY`, `KILO_API_KEY`, `SILICONFLOW_API_KEY`, `SYNTHETIC_API_KEY`.

## Local (free)

| Provider | Setup |
|----------|-------|
| **Ollama** | Auto-detected at `localhost:11434`. Set `OLLAMA_HOST` to override. |
| **LM Studio** | Auto-detected at `localhost:1234`. Set `LM_STUDIO_URL` to override. |
| **OpenCode Go** | `empryo --set-key opencode-go ...` |
| **OpenCode Zen** | `empryo --set-key opencode-zen ...` |

## Enterprise

| Provider | Setup |
|----------|-------|
| **Bedrock** | `export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... AWS_REGION=us-east-1` |
| **Subscriptions** | 22 sign-in lanes: Claude, ChatGPT Codex, Grok, Cursor, Devin, Copilot, Gemini CLI, Antigravity, Kimi Code, Fire Pass, OpenRouter, Ollama Cloud, LLM Gateway, Kilo, Z.AI, Alibaba (coding and token plans), Xiaomi. `/login`, no addon. Use at your own risk. See [Subscriptions](/docs/providers/subscriptions). |
| **Proxy** | Local CLIProxyAPI relay - routes Claude, GPT, Gemini, Grok via your existing chat subscriptions. Install the addon (`empryo addon install proxy`), then `/proxy login`. Use at your own risk. See [addons](/docs/tools/addons) and [Proxy](/docs/providers/proxy). Claude and ChatGPT no longer need it: see [Subscriptions](/docs/providers/subscriptions). |

## LLM Gateway

One key for 200+ models with built-in cost tracking, Claude, GPT, Gemini, Grok, Llama, Qwen, and more. Or DevPass: a fixed-price monthly subscription with 3× the value.

1. Get a key at [llmgateway.io](https://llmgateway.io/dashboard?ref=6tjJR2H3X4E9RmVQiQwK), or just type `/login` inside Empryo, the browser mints one and hands it back over a local loopback.
2. Or save a key manually:

```bash
empryo --set-key llmgateway sk-...
```

3. Launch Empryo, press `Ctrl+L`, pick any model.

The picker's gateway header says which lane is paying, **Pay-as-you-go · account credits** or **DevPass · subscription**, so a model pick is never a billing surprise. Switching lanes happens in `/keys` (it's a credential, not a toggle).

### Pick who serves your model (upstream routing)

The gateway resells many models from **several upstream vendors at different prices and output caps**, the same `deepseek-v4-pro` costs $0.435/M input on DeepSeek and $2.40/M on Alibaba, and its output cap ranges from 64K to 393K depending on the route. By default the id is sent bare and the gateway auto-routes. On the pay-as-you-go lane you can pin the route per model:

- **Terminal**, in the model picker, rows with more than one route show `⇌ N`. Press `Ctrl+R` on one to open the route chooser: `Auto — gateway decides` first, then every upstream **cheapest-first with that route's own price and output cap**. Picking a route picks the model pinned to it. The active row then reads `via DeepSeek`.
- **Desktop**, gateway rows carry a `⇌` button that swaps the picker to the same route list.
- **Headless**, pin in the id itself:

```bash
empryo --headless "fix the tests" --model llmgateway/anthropic/claude-opus-5
empryo --headless "fix the tests" --model llmgateway/deepinfra/deepseek-v4-pro
```

`llmgateway/<upstream>/<model>` routes through that vendor. `llmgateway/<model>` lets the gateway decide.

Either way it is the same model: favourites, Recents, pricing and the context window all follow it, and the route you pin belongs to the tab, so two tabs can run one model on different routes. Pinning a Claude id to Anthropic also turns on Empryo's own tool-deferral path. Pinning works on pay-as-you-go keys only, because a DevPass plan routes on the gateway's side.

## OpenRouter

200+ models behind a single key, including frontier and open-weight.

Sign in with your browser and there is no key to paste:

```bash
empryo
# then: /login openrouter
```

Or save a key yourself:

1. Get one at [openrouter.ai/keys](https://openrouter.ai/keys).
2. Save it:

```bash
empryo --set-key openrouter sk-or-...
```

3. Launch Empryo, press `Ctrl+L`, pick any model.

Either way the credit balance on the account shows up as a meter in `/usage` and the desktop Usage drawer, next to the dollar spend.

## Anything else

Any OpenAI-compatible API works via [custom providers](/docs/providers/custom) - one block of config, no code. The key goes in the same way, under the `id` you gave the provider:

```bash
empryo --set-key together sk-...     # `id` from your providers[] entry
```

Run it again with a second key and both are kept. An account that runs out hands the turn
to the next one. See [several accounts on one provider](/docs/providers/custom#several-accounts-on-one-provider).

## Switching models

Inside Empryo, press `Ctrl+L` to pick a provider and model. Assign different models to different tasks with `/router` (cheap model for search, strong for code).

```bash
empryo --list-providers              # see what's configured
empryo --list-models anthropic       # see available models for one provider
```
