# Using a Subscription Provider

How to run Agenvoy on an existing subscription instead of an API key, after the quickstart works.

When the free tier stops being enough, the next step is not another pay-per-token key — it is a subscription you may already be paying for. These two are the first choice for a second, fall-back model: the cost is already fixed monthly, so an agent that takes a few extra turns doesn't move the bill.

| Provider | Billed against | Where it lives in the menu |
|---|---|---|
| Codex | Your ChatGPT / Codex subscription | **OAuth** tab → `OpenAI Codex` |
| Grok (xAI) | Your xAI subscription | **OAuth** tab → `Grok (xAI)` |

Neither takes an API key. Both authenticate through a device-code OAuth flow, and the token lands in the OS keychain like any other credential.

## Add Codex

| Step | What you do |
|---|---|
| 1 | `/model` → **add** |
| 2 | The picker opens on the **OAuth** tab (←/→ switches tabs) |
| 3 | Choose **`OpenAI Codex`** — not `OpenAI` on the **API Key** tab, which is pay per token. Before v1.0.22 this was OpenAI → *OpenAI  method* → `Codex    subscription` |
| 4 | The device-code popup opens and your browser follows once the code is ready. Sign in and approve — the flow has a 15-minute window |
| 5 | Back in the TUI, pick a model from the list your subscription exposes |

## Add Grok (xAI)

| Step | What you do |
|---|---|
| 1 | `/model` → **add** |
| 2 | Stay on the **OAuth** tab |
| 3 | Choose **`Grok (xAI)`** |
| 4 | Same device-code OAuth flow |
| 5 | Pick a model |

> Already authenticated once? The flow asks `<Provider> token exists  re-login?` first. **`No   keep existing`** reuses the stored token and jumps straight to the model list — pick `Yes  re-authenticate` only when switching accounts.

With more than one model registered, **Shift+W** / **Shift+S** cycles the session model from the TUI (`auto` lets the dispatcher pick), and `/model dispatch` / `/model summary` set the dispatcher and summary models explicitly.
