Coding tools

Cline, Roo Code & Kilo Code

These VS Code extensions all point at xKiro through an OpenAI Compatible provider, but the settings panel no longer looks the same in each one — Kilo Code especially, which replaced its provider dropdown with a Custom provider dialog.

Wire format

OpenAI format

Base URL

https://api.xkiro.com/v1

Configured by

Extension settings UI

Model IDs always carry the vendor prefix

Use openai/gpt-5.6-sol, not a bare gpt-5.6-sol. The current list is at GET /v1/models.

Cline and Roo Code still share almost the same settings panel. Kilo Code has since diverged and needs its own steps — see its section below.

Cline#

Open Settings (⚙️) and set the API Provider dropdown to OpenAI Compatible.

FieldTypeDescription
API ProviderselectOpenAI Compatible
Base URLstringPlaceholder Enter base URL... — enter https://api.xkiro.com/v1
API Keystringsk-xt-…
Model IDstringPlaceholder Enter Model ID... — full ID with prefix, e.g. openai/gpt-5.6-sol

Pick OpenAI Compatible — the plain OpenAI preset has no Base URL field

The plain OpenAI preset exposes no Base URL field at all — only an API key input, a model dropdown, a reasoning-effort selector and a model-info panel. There is nothing there to point at xKiro. Only OpenAI Compatible has a Base URL field.

The collapsible Model Configuration section lets you declare Supports Images, Context Window Size, Max Output Tokens, Input Price / 1M tokens, Output Price / 1M tokens and Temperature. Those are hints for Cline's own bookkeeping — match them to the model you picked from GET /v1/models so it does not truncate prompts earlier than it needs to.

A separate collapsible Custom Headers section is also available, if your gateway setup needs extra headers beyond the API key.

Roo Code#

Roo Code shares the same OpenAI Compatible provider as Cline, but labels its model field differently — look for Model:, not Model ID.

FieldTypeDescription
API ProviderselectOpenAI Compatible
Base URLstringhttps://api.xkiro.com/v1
API Keystringsk-xt-…
Model:stringFull ID with prefix, e.g. openai/gpt-5.6-sol

Its own Model Configuration section covers Max Output Tokens, Context Window, Image Support, Computer Use, Input Price and Output Price.

Docs moved

Roo Code's documentation now lives at roocodeinc.github.io/Roo-Code — the old docs.roocode.com domain redirects there.

Kilo Code#

Kilo Code has diverged from Cline and Roo Code. Its documentation also moved, from kilocode.ai to kilo.ai, and the settings panel replaced the API Provider dropdown with a Custom provider dialog.

  1. Open Settings (gear icon) and go to the Providers tab.
  2. Scroll to the bottom and click Custom provider.
  3. Fill in the dialog.
  4. Click Submitto save. The provider's models appear in the model picker.

The dialog's protocol selector is labelled Provider API, with three options: OpenAI Compatible, OpenAI Responses and Anthropic Messages. Pick OpenAI Compatible for xKiro.

FieldTypeDescription
Provider IDstringPlaceholder myprovider. Lowercase letters, numbers, hyphens, or underscores — e.g. xkiro.
Display namestringe.g. xKiro
Provider APIselectOpenAI Compatible
Base URLstringPlaceholder https://api.myprovider.com/v1 — enter https://api.xkiro.com/v1
API keystringOptional. Leave empty if you manage auth via headers. Enter sk-xt-…
ModelslistRepeatable list; each entry has an ID and a Name, e.g. ID openai/gpt-5.6-sol, Name GPT-5.6 Sol
HeaderslistOptional.

Models fill in automatically

Kilo Code auto-fetches available models once the Base URL exposes an OpenAI-compatible models endpoint, which xKiro's does — you rarely need to add every model to the Models list by hand.

There is no Model Configurationsection in this dialog. For additional model configuration — token limits, tool calling, variants — Kilo Code's docs point to editing the kilo.jsonc config file directly.

For scripting or CLI use, the same provider can be declared in the config file at ~/.config/kilo/kilo.json (or ./kilo.json):

{
  "provider": {
    "xkiro": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "xKiro",
      "options": { "baseURL": "https://api.xkiro.com/v1", "apiKey": "sk-xt-..." },
      "models": { "openai/gpt-5.6-sol": { "name": "GPT-5.6 Sol" } }
    }
  },
  "model": "xkiro/openai/gpt-5.6-sol"
}

npm: "@ai-sdk/openai-compatible" targets OpenAI Chat Completions, which is what xKiro serves.

If it does not work#

Send one request by hand before touching your extension's settings again. A reply proves the URL and key are both fine, which means whatever is left is in the tool's own configuration — and that is a much smaller place to look.

curl https://api.xkiro.com/v1/chat/completions \
  -H "Authorization: Bearer $XKIRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-5.6-sol","messages":[{"role":"user","content":"ping"}],"max_tokens":8}'

An error naming an unknown model still counts as a success here: the request was authenticated before the model was rejected. Common failures and what each one means are on the overview page.

Was this page helpful?