Skip to content
Claudexia TeamINTEGRATION

Setting up Zed and Continue.dev with a custom base URL

How to point Zed's built-in assistant and the Continue.dev extension at a custom endpoint instead of a direct Anthropic or OpenAI account, with config examples and verification.

Zed and Continue.dev solve the same problem differently: Zed is an editor with a built-in assistant, Continue.dev is an extension on top of VS Code or JetBrains. Both accept a custom base URL, here is how to set each one up.

Zed: the provider in settings.json

Open editor settings with Cmd+, and switch to JSON, or open the settings file directly via Cmd+Shift+P and the Zed: Open Settings command. Add a language_models section with the provider you need:

{
  "language_models": {
    "anthropic": {
      "api_url": "https://api.claudexia.tech"
    },
    "openai": {
      "api_url": "https://api.claudexia.tech/v1"
    }
  }
}

You do not have to set both providers, just the one whose models you plan to use. The Anthropic provider keeps the Claude format, the OpenAI provider opens up GPT access too.

Zed: key and model choice

Zed does not store the key in settings.json by default, you paste it into the assistant panel: open the panel with Cmd+?, find the provider settings block, and paste sk_cdx_... into the API Key field. An alternative: set the ANTHROPIC_API_KEY or OPENAI_API_KEY environment variable before launching the editor, and Zed picks it up on its own.

After that the model gets picked right in the assistant panel, either from a dropdown or by free-typing a name if the model is not part of the editor's default list.

Continue.dev: config structure

Continue.dev keeps its settings in ~/.continue/config.yaml, also reachable through the Continue: Open Config command in the editor's command palette. A model is described as a block with a provider, a model name, and an address:

models:
  - name: Claude via Claudexia
    provider: anthropic
    model: claude-sonnet-4.6
    apiKey: sk_cdx_your_key_here
    apiBase: https://api.claudexia.tech
    roles:
      - chat
      - edit

For GPT access under the same key, add a second block with provider: openai and apiBase: https://api.claudexia.tech/v1. Both blocks live in the same file, and you switch between models right in Continue's chat without restarting the editor.

Continue.dev: a separate model for autocomplete

Code autocomplete in Continue is configured as its own block with the autocomplete role. That role usually gets a faster, cheaper model, while chat and edits, the chat and edit roles, get a stronger one. Splitting models by role is worth doing: autocomplete fires on every keystroke, and the cost gap between models is felt much more there than in chat.

Verifying the setup

In Zed, open the assistant panel, ask a simple question about the open file, and confirm the answer comes back with no authorization error. In Continue the check is the same: open the chat sidebar and ask something about the current project.

To check the key on its own, apart from the editor, a quick curl request:

curl https://api.claudexia.tech/v1/chat/completions \
  -H "Authorization: Bearer sk_cdx_your_key_here" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-4.6","messages":[{"role":"user","content":"hello"}]}'

Common problems

Zed sometimes caches an old provider configuration until it is restarted. If the assistant keeps complaining about authorization after you edit settings.json, restart the whole editor rather than just the assistant panel.

In Continue.dev, a typo in the provider name, antropic instead of anthropic for instance, fails silently with no clear error in the interface. Check the extension log through the Continue: View Logs command, the cause shows up right away there.

A mistake common to both tools: a trailing slash on apiBase or api_url. Different providers tolerate this differently, so it is safer to always give the address with no trailing slash, as in the examples above.

In short

Zed takes a provider through language_models in settings.json, and the key goes into the assistant panel or an environment variable. Continue.dev keeps its config in YAML with provider, apiBase, and apiKey fields, and the chat, edit, and autocomplete roles can each run a different model. One Claudexia key covers all of it, including switching between Claude and GPT without a second signup.