Skip to content

Editors & IDEs

Most AI coding assistants — Continue, Cursor, Zed, and other VS Code and JetBrains extensions — can talk to any endpoint that speaks the OpenAI Chat Completions protocol. Myra AI Workspace exposes exactly that surface, so you can point your editor at the gateway and code against the EU-hosted Qwen model without a bespoke plugin. Every completion then flows through your gateway, giving you request logs, cost tracking, guardrails, and rate limiting on all editor traffic.

💡 Note: For Claude Code (Anthropic's CLI), which speaks the Anthropic protocol rather than OpenAI, use the dedicated Claude Code integration instead.

The three settings every editor needs

Whatever the editor calls these fields, an OpenAI-compatible assistant needs the same three values. Set them and you are done:

Setting Value
Base URL (a.k.a. API base / endpoint) https://<GATEWAY_HOST>/v1/<TENANT_SLUG>/<GATEWAY_SLUG>/compat
API key A personal gateway token, myra_… (see below)
Model qwen3.8-27b (the local Qwen model — see Choosing the model id)

The editor (or the OpenAI SDK it is built on) appends /chat/completions to the base URL, so the full request path becomes …/v1/<TENANT_SLUG>/<GATEWAY_SLUG>/compat/chat/completions. On Myra's hosted service the inference host is ai-api.myra.eu, so a concrete base URL looks like:

https://ai-api.myra.eu/v1/acme/production/compat

Replace <TENANT_SLUG> and <GATEWAY_SLUG> with your own tenant and gateway slugs. The token you use is scoped to one gateway, so the tenant and gateway in the base URL must match the gateway you minted the token against — otherwise the request is rejected with 401 unauthorized.

💡 Note: The path segment compat auto-detects the provider from the model name. To pin one exact provider, replace compat with the provider name (for example myra for the Myra-hosted models). See OpenAI-compatible endpoint.

Getting your API key

The API key is a personal authentication token you mint yourself — no administrator action required:

  1. Sign in to the web UI and open Profile → My Tokens (/profile).
  2. Click + New Token, select the target gateway, and click Create Token.
  3. Copy the myra_… value from the Token Created dialog. It is shown once.

Full walkthrough: My tokens. The editor sends this token as an Authorization: Bearer header, which the gateway accepts unchanged.

⚠️ Caution: Treat the token like a password. If it leaks, revoke it from My Tokens — revoked tokens are rejected immediately. A viewer role cannot run inference: its requests return 403 forbidden, so a gateway token is of no use in an editor for a viewer.

Choosing the model id

qwen3.8-27b is Myra's EU-hosted Qwen model, served on Myra infrastructure over vLLM. Enter this id as the model in your editor.

The compat endpoint does not serve a GET /models list, so an editor's "connection test" or automatic model dropdown may report that it cannot list models — this is expected. Enter the model id manually rather than relying on auto-discovery. To see exactly which model ids your gateway offers, open the model picker in the chat UI or ask a gateway administrator (the model catalogue lives at the admin API GET /admin/v1/models).

Verifying the connection

Before wiring up the editor, confirm the three settings work with a plain curl. A 200 response that echoes the model back means the base URL, token, and model id are all correct:

curl -s -X POST \
  "https://<GATEWAY_HOST>/v1/<TENANT_SLUG>/<GATEWAY_SLUG>/compat/chat/completions" \
  -H "Authorization: Bearer myra_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.8-27b",
    "messages": [{"role": "user", "content": "Reply with the single word: ok"}]
  }'

If this returns 404 tenant_not_found, a tenant or gateway slug in the URL is mistyped or does not exist — check the slugs. If it returns 401 unauthorized, the slugs resolve but the token is revoked/expired or was not minted for that gateway. If it returns an authorization error about the model (403), your tenant's plan may not include that model — check the model picker for the ids your gateway permits. See Error codes for the full list; the response also sets the X-AIG-Error header to the error code.

Editor setup

The editor-specific field names below track each tool's current version — always cross-check the editor's own documentation. In every case you are entering the same three values from above.

Continue (VS Code and JetBrains)

Continue is the most common OpenAI-compatible assistant for both VS Code and JetBrains IDEs. Add the gateway as an openai-provider model in your Continue configuration (~/.continue/config.yaml):

models:
  - name: Qwen (via Myra AI Workspace)
    provider: openai
    model: qwen3.8-27b
    apiBase: https://ai-api.myra.eu/v1/acme/production/compat
    apiKey: myra_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

provider: openai selects Continue's OpenAI-compatible client; apiBase is the compat base URL and apiKey is your personal token. The model is set explicitly, so Continue does not need to list models from the gateway.

💡 Note: This entry powers Continue's chat and edit features. Inline tab autocomplete is a separate setting (tabAutocompleteModel); add an equivalent entry there if you want completions served through the gateway too.

Cursor

In Cursor → Settings → Models, enable Override OpenAI Base URL, set it to your compat base URL, and set the OpenAI API key to your myra_… token. Add qwen3.8-27b as a custom model.

⚠️ Caution: Cursor's custom-model support is limited: it runs a verification request against the base URL when you save, works primarily for the chat panel, and some Cursor-native features (Tab completion, Composer) are restricted to Cursor's own models. If the verification step rejects a non-OpenAI model name, this is a Cursor limitation, not a gateway error — the curl check above proves the endpoint works.

Zed

In Zed's settings.json, configure the OpenAI provider with a custom api_url and declare the model under available_models so Zed exposes it:

{
  "language_models": {
    "openai": {
      "api_url": "https://ai-api.myra.eu/v1/acme/production/compat",
      "available_models": [
        { "name": "qwen3.8-27b", "max_tokens": 262144 }
      ]
    }
  }
}

Set the API key when Zed prompts for it (or via the OPENAI_API_KEY it reads) to your myra_… token. Because the compat endpoint does not serve GET /models, the explicit available_models entry is required — Zed will not auto-discover the id.

Any other OpenAI-compatible extension

For any other assistant that lets you override the OpenAI base URL and key, enter the three settings from the table above. If the extension only offers an API-key field with no base-URL override, it is hard-wired to OpenAI and cannot be pointed at the gateway.

See also