Docs

Continue

Continue's openai provider names a protocol, not a vendor. Give it an apiBase and Claude, GPT and Gemini are all model entries in the same config.yaml.

Esta documentação está em inglês. Para um guia de início rápido em português, veja:Guia em português — Claude API no Brasil

One block in ~/.continue/config.yaml: provider: openai with apiBase: https://api.kunavo.com/v1 and your sk-kn-… key. The extension does not need to know which vendor is behind the endpoint.

~/.continue/config.yaml
name: my-config
version: 0.0.1
schema: v1
models:
  - name: Claude Sonnet 4.6
    provider: openai          # the protocol, not the vendor
    model: claude-sonnet-4-6
    apiBase: https://api.kunavo.com/v1
    apiKey: sk-kn-...
    roles: [chat, edit, apply]

  - name: Haiku (autocomplete)
    provider: openai
    model: claude-haiku-4-5
    apiBase: https://api.kunavo.com/v1
    apiKey: sk-kn-...
    roles: [autocomplete]
provider: openai selects the wire protocol, not OpenAI as a company — this is the field people change first and should leave alone. The /v1 suffix belongs in apiBase; without it Continue appends the route to a path that does not exist and you get a 404.

Step by step

  1. Create a key at /app/keys and copy it — it is shown once.
  2. Open the Continue sidebar in VS Code or JetBrains and edit the assistant's config.yaml.
  3. Add the models entries above, replacing sk-kn-… with your key.
  4. Save. Continue reloads the config on save — the model name you gave appears in the model picker.
  5. Pick it and send a message. Switching models later is a change of picker selection, not of configuration.

Continue's own reference for this is the OpenAI model-provider page.

Verify before you debug the extension

One request settles whether a failure is the endpoint, the key, or the config file. If this returns a JSON list of model ids, the same base URL and key work in Continue.

# Settles whether a failure is the endpoint, the key, or Continue.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

Which models to pick, per role

Every text model on Kunavo is reachable as a model value — the full list is on the models page and comes back live from GET /v1/models. Rates are USD per 1M tokens, input / output.

Model idKunavo in / outRole it suits
claude-haiku-4-5$0.40 / $2.00autocomplete — the highest-volume role, where per-token cost dominates
claude-sonnet-4-6$1.20 / $6.00chat and edit — the default balance of quality and price
claude-opus-5$2.00 / $10.00edit on architecture-level changes
gpt-5-4$1.00 / $6.00same key, different family — a second opinion without new credentials
Autocomplete is where the money goes: it fires on keystrokes, so its request count dwarfs chat even though each request is small. Giving it its own cheap model entry is the single largest lever on the bill, and prompt caching is the second, because the repository context in front of each request repeats. Billing is per token from a prepaid balance with no monthly fee — details in billing.

FAQ

How do I use Continue with an OpenAI-compatible API?

In ~/.continue/config.yaml, add a models entry with provider: openai, the model id, apiKey, and apiBase pointing at the endpoint — for Kunavo that is https://api.kunavo.com/v1. Here provider names the protocol rather than the vendor: it tells Continue to speak the OpenAI wire format to whatever apiBase names, so any endpoint implementing /v1/chat/completions works.

Can Continue use Claude models without an Anthropic key?

Yes, when the models are served over an OpenAI-compatible endpoint. Continue's openai provider sends the model id straight through to apiBase, so a Claude id resolves at the gateway rather than in Continue. On Kunavo the Claude, GPT and Gemini ids sit behind the same key, which means a second model entry rather than a second set of credentials.

Can Continue use a different model for autocomplete than for chat?

Yes, and it is usually worth doing. Each entry in the models list carries a roles field, so a large model can take roles [chat, edit, apply] while a small fast one takes [autocomplete]. Autocomplete fires on keystrokes and is the highest-volume role by a wide margin, so pairing it with the cheapest model changes the monthly bill more than any other single setting.

Why does Continue return a 404 from a custom apiBase?

Usually a base URL missing the /v1 suffix. Continue appends only the route to apiBase, so https://api.kunavo.com sends the request to a path that does not exist while https://api.kunavo.com/v1 resolves correctly. A 401 instead of a 404 means the URL is right and the key is not.