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:
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
compatauto-detects the provider from the model name. To pin one exact provider, replacecompatwith the provider name (for examplemyrafor 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:
- Sign in to the web UI and open Profile → My Tokens (
/profile). - Click + New Token, select the target gateway, and click Create Token.
- 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
viewerrole cannot run inference: its requests return403 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
curlcheck 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
- My tokens — mint, list, and revoke your personal token
- OpenAI-compatible endpoint — how
compatresolves the provider, and provider-pinned paths - API quickstart — the same setup for the OpenAI SDK and
curl - Claude Code — the Anthropic-native sibling for Claude Code
- Error codes — every error code and cause