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

# Providers

> Connect Empryo to a model: save an API key, sign in with a subscription you already pay for, or run a local model. Many providers are supported.

A provider is the service that runs the AI model, such as Anthropic, OpenAI, or a model on your own machine. Empryo works with many providers. You need at least one before you can start.

There are three ways to connect. Pick the one that matches what you have.

## Quick start

### You have an API key

Save it with `--set-key`, using the provider's name:

```bash
empryo --set-key anthropic sk-ant-...
```

Then start Empryo, press `Ctrl+L`, and pick a model. That is all.

The key is stored in your system keychain. If you prefer, you can also set the provider's usual environment variable (for example `ANTHROPIC_API_KEY`), or add the key in the app: `/keys` in the terminal UI, or **Settings → Accounts & keys** in the desktop app.

### You pay for a subscription (Claude, ChatGPT, Copilot, and others)

Run `/login` inside Empryo. A list of accounts opens. Pick yours and follow the browser or device-code prompt. You can also name the account directly:

```bash
/login claude      # Claude Pro or Max
/login codex       # ChatGPT
/login copilot     # GitHub Copilot
```

After you sign in, press `Ctrl+L` and pick a model from that account. See [Subscriptions](/docs/providers/subscriptions) for every account you can sign in to, and the risks involved.

### You want to run models locally

Start [Ollama](https://ollama.com) or [LM Studio](https://lmstudio.ai). Empryo finds them automatically. No key is needed.

## Cloud providers

Get a key from the provider's site, then save it:

| 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) |
| **OpenCode Go** | `empryo --set-key opencode-go ...` | [opencode.ai](https://opencode.ai) |
| **OpenCode Zen** | `empryo --set-key opencode-zen ...` | [opencode.ai](https://opencode.ai) |
| **GitHub Models** | `empryo --set-key github-models ghp_...` | A GitHub personal access token |

## Gateways: one key, many models

A gateway resells models from many vendors behind one key and one bill.

| Provider | Setup | Get a key |
|----------|-------|-----------|
| **LLM Gateway** | `/login` or `empryo --set-key llmgateway ...` | [llmgateway.io](https://llmgateway.io/dashboard?ref=6tjJR2H3X4E9RmVQiQwK) |
| **OpenRouter** | `/login openrouter` or `empryo --set-key openrouter sk-or-...` | [openrouter.ai](https://openrouter.ai) |
| **Vercel AI Gateway** | `empryo --set-key vercel_gateway ...` | [vercel.com/ai-gateway](https://vercel.com/ai-gateway) |

## Coding plans

Some vendors sell a monthly plan for coding tools, with its own endpoint. Each one needs only a key.

Empryo reads the model list, context sizes, and prices for these plans from the [models.dev](https://models.dev) catalog. When a vendor adds a model, you can pick it without waiting for an Empryo update. A plan only appears in the model picker after you set its key.

| 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, billed per token instead of a flat fee | [bailian.console.alibabacloud.com](https://bailian.console.alibabacloud.com) |
| **Xiaomi MiMo** | MiMo token plan | [platform.xiaomimimo.com](https://platform.xiaomimimo.com) |
| **Kilo Gateway** | Many vendors behind one key | [kilo.ai](https://kilo.ai) |
| **SiliconFlow** | Hosted open-weight models | [cloud.siliconflow.com](https://cloud.siliconflow.com/account/ak) |
| **Synthetic** | Flat-rate plan for open-weight models | [synthetic.new](https://synthetic.new) |

Save the key like any other:

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

Z.AI, Alibaba (both plans), Xiaomi, and Kilo can also be added with `/login`. For Alibaba and Xiaomi, `/login` tests your key against each of the vendor's regional servers and remembers the one that works, so you do not need to know which region you bought. See [Subscriptions](/docs/providers/subscriptions).

If you already export the vendor's usual environment variable, Empryo uses it: `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 models (free)

| Provider | Setup |
|----------|-------|
| **Ollama** | Found automatically at `localhost:11434`. Set `OLLAMA_HOST` to use another address. |
| **LM Studio** | Found automatically at `localhost:1234`. Set `LM_STUDIO_URL` to use another address. |

## Enterprise and subscriptions

| Provider | Setup |
|----------|-------|
| **Amazon Bedrock** | `export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... AWS_REGION=us-east-1` |
| **Subscriptions** | Sign in with an account you already pay for: Claude, ChatGPT, Grok, Cursor, Devin, GitHub Copilot, Gemini CLI, Antigravity, Kimi Code, Fire Pass, and more. Run `/login`. No add-on needed. Use at your own risk. See [Subscriptions](/docs/providers/subscriptions). |
| **Proxy** | An optional add-on that runs a local relay for Claude, ChatGPT, Gemini, and Grok subscriptions. Install it with `empryo addon install proxy`, then run `/proxy login`. Use at your own risk. See [Proxy](/docs/providers/proxy) and [add-ons](/docs/tools/addons). For Claude and ChatGPT, `/login` is simpler. |

## LLM Gateway

LLM Gateway gives you one key for models from many vendors, including Claude, GPT, Gemini, Grok, Llama, and Qwen, with cost tracking. It also offers DevPass, a fixed-price monthly subscription.

1. Type `/login` inside Empryo and choose LLM Gateway. Your browser opens, creates a key, and sends it back to Empryo. You can also get a key at [llmgateway.io](https://llmgateway.io/dashboard?ref=6tjJR2H3X4E9RmVQiQwK) and save it yourself:

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

2. Start Empryo, press `Ctrl+L`, and pick a model.

The model picker shows how you are paying: **Pay-as-you-go · account credits** or **DevPass · subscription**. To switch between them, change the key in `/keys`.

### Choose which vendor serves a model

LLM Gateway can get the same model from several vendors, and their prices and output limits differ. By default the gateway picks the vendor for you. With a pay-as-you-go key, you can choose it yourself:

- **Terminal UI**: in the model picker, a model with several vendors shows `⇌ N`. Press `Ctrl+R` on it. You get `Auto — gateway decides` first, then each vendor from cheapest to most expensive, with its price and output limit. After you pick one, the row reads `via <vendor>`.
- **Desktop app**: click the `⇌` button on a gateway model to see the same list.
- **Headless**: put the vendor in the model id.

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

`llmgateway/<vendor>/<model>` uses that vendor. `llmgateway/<model>` lets the gateway decide.

It is still the same model. Favorites, recent models, pricing, and context size all carry over. The vendor you choose applies to that tab only, so two tabs can use one model through different vendors. Choosing a vendor only works with pay-as-you-go keys. DevPass always lets the gateway decide.

## OpenRouter

OpenRouter offers hundreds of models behind one key, including both frontier and open-weight models.

The easiest way to connect is to sign in with your browser. There is no key to copy:

```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. Start Empryo, press `Ctrl+L`, and pick a model.

Your OpenRouter credit balance appears in `/usage` and in the desktop app's usage page, next to what you have spent.

## Anything else

Any API that follows the OpenAI format works as a [custom provider](/docs/providers/custom). You add one block to your config, with no code. Save the key under the `id` you gave the provider:

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

Run the command again with a second key and Empryo keeps both. When one account runs out of quota, Empryo moves to the next. 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. To use different models for different jobs, such as a cheap model for searching and a strong one for writing code, use `/router`.

From the command line:

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