Continue on one prepaid key
Give Continue's openai provider the RelaySwitch base URL and one sk-relay- key, then list any model on the Models page. Each request bills a prepaid balance per token, topped up by card or crypto.
A Continue config.yaml setup for RelaySwitch is one entry per model under models: provider: openai, apiBase set to https://api.relayswitch.io/v1, the key, and the model id. The same key reaches Claude, GPT, DeepSeek, Kimi and GLM, each at the per-token price on its model page, with no subscription behind it. You pay for the tokens Continue sends and nothing else.
This guide writes the file, explains the roles and capabilities fields Continue reads, fills the context limits from the live catalog, and prices a sample coding task on each model so you can choose on cost before the first prompt.
01What you need
- The Continue extension in VS Code or a JetBrains IDE. Continue writes
~/.continue/config.yamlthe first time it runs (%USERPROFILE%\.continue\config.yamlon Windows), per its configuration docs (read 2026-10-28). - A RelaySwitch key. Sign in with an email code at the console and create one. Keys start with
sk-relay-; one key is enough for every model in this guide. - A balance. Top-ups start at $10, paid by card or in crypto, and the balance is spent per token as you go. No subscription, no KYC. Before the first top-up the console chat gives you 12 free turns a day to try models; requests from Continue bill the balance.
02Continue config.yaml for one key
- Open the Continue sidebar (Cmd/Ctrl+L in VS Code, Cmd/Ctrl+J in JetBrains), open the agent selector above the chat box and click the gear icon on the local agent. That opens
config.yaml. - Replace the
modelslist with the block below. Keepname,versionandschema: v1at the top; Continue requires all three. - Paste your key over
sk-relay-...in every entry, or define it once as a YAML anchor and reuse it. - Save. Continue reloads the file on save; the three models appear in the model picker under the names you gave them.
name: RelaySwitchversion: 0.0.1schema: v1 models: - name: Claude Sonnet 5.5 provider: openai model: claude-sonnet-5-5 apiBase: https://api.relayswitch.io/v1 apiKey: sk-relay-... roles: [chat, edit, apply] capabilities: [tool_use] - name: Claude Opus 5.5 provider: openai model: claude-opus-5-5 apiBase: https://api.relayswitch.io/v1 apiKey: sk-relay-... - name: GPT-5.5 provider: openai model: gpt-5.5 apiBase: https://api.relayswitch.io/v1 apiKey: sk-relay-...Field names follow Continue's openai provider docs and its config.yaml reference (both read 2026-10-28). apiBase keeps the /v1, and Continue appends /chat/completions itself. The model value is the id exactly as the Models page shows it, not the display name. name is yours to choose. To add a model, copy an entry and change name and model.
The older config.json is deprecated in Continue; if yours still has one, the reference links a migration guide.
03Roles, Agent mode and limits
- roles: which jobs the entry is offered for. Continue's default is
[chat, edit, apply, summarize], so you can leave the field out. Set it when one model should only chat and another should only apply edits. - capabilities:
tool_uselets the entry run in Agent mode, where Continue calls tools and edits files on its own. Continue tries to detect it; listing it removes the guess. Addimage_inputonly for a model the table marks as reading images. - defaultCompletionOptions:
contextLengthtells Continue how much context it may pack into a prompt, andmaxTokenscaps one answer. Billing ignores both; every request bills at the live catalog price.
- name: Claude Sonnet 5.5 provider: openai model: claude-sonnet-5-5 apiBase: https://api.relayswitch.io/v1 apiKey: sk-relay-... defaultCompletionOptions: contextLength: 1000000 maxTokens: 128000| model | contextLength | maxTokens | capabilities | Input | Output |
|---|---|---|---|---|---|
claude-sonnet-5-5 | 1,000,000 | 128,000 | add image_input | $1.20 | $3.00 |
claude-opus-5-5 | 1,000,000 | 128,000 | add image_input | $2.716 | $9.70 |
gpt-5.5 | 1,050,000 | 128,000 | add image_input | $1.80 | $9.00 |
deepseek-v4-pro | 1,048,576 | 393,216 | leave out | $0.792 | $2.376 |
kimi-k2.7-code | 262,144 | 262,144 | add image_input | $0.426 | $1.7936 |
glm-5.3 | 1,000,000 | 131,072 | leave out | $0.3178 | $0.9987 |
Prices in USD per million tokens, read from the live catalog when this page was built. Where a limit is not stated, leave the field out and Continue uses its default.
Set contextLength no higher than the model's real window. A higher value lets a long Agent session grow past what the model accepts, and the request fails as too long.
04Check the key before Continue
Two curl calls rule out the key and the base URL before you debug the YAML. The first lists every model id your key can call:
curl https://api.relayswitch.io/v1/models -H "Authorization: Bearer sk-relay-..."The second sends one small request the way Continue does. -i prints the headers, including the request id and, on a non-streamed answer, the charge in USD.
curl -i https://api.relayswitch.io/v1/chat/completions \ -H "Authorization: Bearer sk-relay-..." \ -H "Content-Type: application/json" \ -d '{"model": "claude-sonnet-5-5", "messages": [{"role": "user", "content": "Say ok."}]}'If both work, anything left is in the file. Send a message in Continue and the request shows on the console's Usage page within seconds, with its tokens and its charge against the balance.
05Which model to pick
Continue resends the conversation, the files it pulled in and the tool results on every step, so input tokens are most of the bill. A low input price matters more than a low output price. Of the models here, GLM 5.3 has the lowest input rate today at $0.3178 per million tokens.
| Model | Input | Cached | Output | Developer list in / out | Context |
|---|---|---|---|---|---|
| Claude Sonnet 5.5 | $1.20 (40% under) | $0.075 | $3.00 (70% under) | $2.00 / $10.00 | 1M tokens |
| Claude Opus 5.5 | $2.716 (32% under) | $0.1455 | $9.70 (51% under) | $4.00 / $20.00 | 1M tokens |
| GPT-5.5 | $1.80 (64% under) | $0.16 | $9.00 (70% under) | $5.00 / $30.00 | 1.1M tokens |
| DeepSeek V4 Pro 0423 | $0.792 (40% under) | $0.0264 | $2.376 (40% under) | $1.32 / $3.96 | 1M tokens |
| Kimi K2.7 Code | $0.426 (55% under) | $0.0852 | $1.7936 (55% under) | $0.95 / $4.00 | 262K tokens |
| GLM 5.3 | $0.3178 (70% under) | $0.066 | $0.9987 (70% under) | $1.092 / $3.432 | 1M tokens |
USD per million tokens, read from the RelaySwitch catalog when this page was built. Developer list: the catalog's record of the developer's own price.
Claude ids answer the OpenAI format too, so Claude Sonnet and Opus work through provider: openai with no Anthropic entry. For the full list, with every price and context size, see the Models page. How the prepaid balance and the cached rate work is on Pricing.
06What a coding task costs
The task: one feature built over 40 Agent turns, late enough in the session that the context is large. Each turn sends 80,000 tokens of earlier context, 2,000 new input tokens, and gets 1,500 output tokens back. Those sizes are an assumption; your own Usage page shows the real ones.
| Model | Context from cache | No cache hits |
|---|---|---|
| DeepSeek V4 Pro 0423 | $0.2904 | $2.74 |
| GLM 5.3 | $0.2964 | $1.10 |
| Kimi K2.7 Code | $0.4143 | $1.50 |
| Claude Sonnet 5.5 | $0.516 | $4.12 |
| GPT-5.5 | $1.20 | $6.44 |
| Claude Opus 5.5 | $1.26 | $9.49 |
40 turns at the live per-token prices. A model with no cached rate bills cached tokens at its input rate.
Two columns, because whether the earlier context hits the prompt cache depends on the model and the request. When it does, the response reports cached tokens and they bill at the cached rate. The console's Usage page shows the split for every request.
The spread is wide. With cache hits the same task runs $0.2904 on DeepSeek V4 Pro 0423 and $1.26 on Claude Opus 5.5. Keep a cheap entry for routine edits and a dear one for the hard step; switching is one click in the model picker, and both draw on the same balance.
07Errors and fixes
401: the key is wrong, revoked or cut short. Paste it again from the console and run the curl check.402: the balance is too low for the request. Top up in the console by card or crypto; the key works again at once.404: themodelvalue is not in the catalog. Check for a typo or a display name in place of the id.429: the key hit its rate limit. Wait a minute and resend, or create a key with a higher Requests / min in the console.- Connection errors:
apiBaseis missing/v1, has a typo, or a proxy or firewall blocks it. The curl check from the same machine tells you which. - The model is missing from the picker: a YAML indentation error. Each entry starts with
- name:and the fields below it line up two spaces in. - A GPT entry misbehaves: Continue sends gpt-5 models to
/responsesby default, which RelaySwitch serves. To use/chat/completionsinstead, adduseResponsesApi: falseto that entry. - The request is refused as too long:
contextLengthis set higher than the model accepts. Use the number from the table.
Questions
- What apiBase does Continue need for an OpenAI compatible API?
- https://api.relayswitch.io/v1, with the /v1 at the end. Continue appends /chat/completions to it.
- Which model value do I put in config.yaml?
- The id from the Models page, such as claude-sonnet-5-5, not the display name. GET /v1/models with your key lists every id it can call.
- Can Continue use Claude through provider: openai?
- Yes. The Claude ids on RelaySwitch answer the OpenAI format as well as Anthropic's, so they work in this provider at the same price.
- Do I need a subscription to use Continue with this key?
- No. The key draws on a prepaid balance, topped up from $10 by card or crypto, and each request bills its tokens at the live catalog price. Nothing is charged without a saved card; card auto top-up and plan renewal switch off in Billing.
- Is there a free API key for Continue?
- Keys are free to create, and the console chat runs 12 free turns a day before your first top-up. Requests from Continue bill the balance.
- How do I turn on Agent mode for a model?
- Add capabilities: [tool_use] to its entry. Continue tries to detect tool support on its own; listing it removes the guess.