Skip to Content
Using with coding tools

Using with coding tools

Many coding assistants let you point them at an OpenAI-compatible endpoint. The two settings are always the same:

SettingValue
Base URLhttps://api.devotel.com/v1
API keyyour dvt-... key
Modelkimi-k3

Environment variables

Most tools read the standard OpenAI variables, which is the quickest thing to try first:

export OPENAI_API_KEY="dvt-..." export OPENAI_BASE_URL="https://api.devotel.com/v1"

Some older tools read OPENAI_API_BASE instead — set both if you are unsure:

export OPENAI_API_BASE="https://api.devotel.com/v1"

Continue (VS Code / JetBrains)

~/.continue/config.json:

{ "models": [ { "title": "Kimi K3 (Devotel)", "provider": "openai", "model": "kimi-k3", "apiBase": "https://api.devotel.com/v1", "apiKey": "dvt-..." } ] }

Aider

export OPENAI_API_KEY="dvt-..." export OPENAI_API_BASE="https://api.devotel.com/v1" aider --model openai/kimi-k3

Zed

In settings.json, under the assistant’s OpenAI-compatible provider:

{ "language_models": { "openai": { "api_url": "https://api.devotel.com/v1", "available_models": [{ "name": "kimi-k3", "display_name": "Kimi K3 (Devotel)" }] } } }

Put the key in the editor’s credential store rather than the settings file.

Anything else

If a tool asks for “OpenAI-compatible endpoint”, “custom base URL” or “self-hosted OpenAI”, give it the base URL and key above. Confirm the plumbing with a plain curl first — if this returns a completion, the endpoint is fine and any remaining problem is in the tool’s configuration:

curl https://api.devotel.com/v1/chat/completions \ -H "Authorization: Bearer $DEVOTEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"kimi-k3","messages":[{"role":"user","content":"reply with OK"}]}'

Things that trip tools up

Reasoning output. Kimi K3 returns reasoning_content alongside content. Tools that only read content behave correctly. Tools that concatenate every string field may show you the model’s thinking as if it were code — check the tool’s raw-response handling if output looks odd.

Slow first token. Reasoning happens before any visible output, so a tool with an aggressive timeout may give up before the answer starts. Raise the request timeout if you see empty responses.

max_tokens defaults. Some tools set a low max_tokens by default. Because the cap includes reasoning tokens, a low value can consume the whole budget thinking and return nothing. If a tool returns empty completions, raise or remove its output cap — see Chat Completions.

Unsupported endpoints. A tool that wants embeddings (for local codebase indexing, say) will fail on that feature — embeddings are not implemented yet. Chat features still work.

Rate limits are per key: 60 requests and 100,000 tokens per minute by default. A coding assistant making rapid parallel edits can hit that — see Rate Limits & Errors.