Using with coding tools
Many coding assistants let you point them at an OpenAI-compatible endpoint. The two settings are always the same:
| Setting | Value |
|---|---|
| Base URL | https://api.devotel.com/v1 |
| API key | your dvt-... key |
| Model | kimi-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-k3Zed
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.