Kilo Code

A custom provider. Kilo fetches the model list for you.

Checked 2026-10-12

·All guides·Models

Where the settings are

In VS Code: Kilo Code Settings (gear icon) → Providers tab → scroll to the bottom → Custom provider.

In the CLI: ~/.config/kilo/kilo.json for every project, or ./kilo.json in the project.

VS Code

  1. Provider ID: uplinkswitch. Display name: UplinkSwitch.
  2. Provider API: OpenAI Compatible. This is the chat completions format, and every model on the Models page answers in it, Claude included.
  3. Base URL: https://api.uplinkswitch.com/v1.
  4. API key: your UplinkSwitch key from the console.
  5. Models: once the URL and key are in, Kilo queries /v1/models and shows a searchable picker. Tick the ids you want. Fetch models retries the fetch.
  6. Click Submit. The ids appear in the model picker.

CLI

The provider key is your own identifier. npm defaults to @ai-sdk/openai-compatible when omitted. env names the variable that holds the key, so the key stays out of the file. model takes provider-id/model-id.

kilo.json
{
  "provider": {
    "uplinkswitch": {
      "npm": "@ai-sdk/openai-compatible",
      "env": ["UPLINKSWITCH_API_KEY"],
      "models": {
        "claude-sonnet-5-5": { "name": "Claude Sonnet 5.5" },
        "claude-opus-5-5": { "name": "Claude Opus 5.5" },
        "gpt-6.1-sol": { "name": "GPT-6.1 Sol" },
        "gemini-3.1-pro-preview": { "name": "Gemini 3.1 Pro" },
        "deepseek-v4-pro-0813": { "name": "DeepSeek V4 Pro" },
        "kimi-k3": { "name": "Kimi K3" }
      },
      "options": {
        "baseURL": "https://api.uplinkswitch.com/v1"
      }
    }
  },
  "model": "uplinkswitch/claude-sonnet-5-5"
}

Kilo recommends a limit per model, with context and output token counts, so the agent can manage context. Add it to any entry once you know the model's ceilings.

Check it

In VS Code the model list filling in is the check. From a shell, the same call Kilo makes:

shell
curl https://api.uplinkswitch.com/v1/models -H "Authorization: Bearer $UPLINKSWITCH_API_KEY"

Then send a message. The request shows in the console within seconds.

Good to know

  • If the fetch fails you can still type ids by hand. Copy them from the Models page.
  • Kilo also offers Anthropic Messages as a Provider API. The Claude ids answer in that format too, but OpenAI Compatible covers the whole list from one provider entry.
  • Kilo accepts a full endpoint URL in the Base URL field. The /v1 root above is enough.
  • Token limits, tool calling and variants per model are set in the config file, not the dialog.