On this page
On this page
Providers
Kilo Gateway
Kilo Gateway routes requests to many models behind a single OpenAI-compatible endpoint and API key.
| Property | Value |
|---|---|
| Provider | kilocode (alias: kilo) |
| Auth | KILOCODE_API_KEY |
| API | OpenAI-compatible |
| Base URL | https://api.kilo.ai/api/gateway/ |
Install plugin
Installation applies to a running Gateway automatically; otherwise it takes effect on the next startup. See Apply changes and inspect.
Setup
Create an account
Go to app.kilo.ai, sign in or create an account, then generate an API key.
Run onboarding
Or set the environment variable directly:
Verify the model is available
Onboarding preserves your model entries and leaves generated catalog rows to discovery. With models.mode: "replace", it also writes the built-in catalog because that mode skips discovery.
Default model and catalog
The default model is kilocode/kilo-auto/balanced, Kilo Gateway's balanced smart-routing tier.
OpenClaw does not publish a task-to-upstream-model mapping for it; routing behind
kilo-auto/balanced is owned by Kilo Gateway.
At startup OpenClaw queries GET https://api.kilo.ai/api/gateway/models and combines a nonempty public list
with the static routing entry. The static catalog contains only
kilocode/kilo-auto/balanced (Auto Balanced, input: ["text", "image"], reasoning: true,
contextWindow: 1000000, maxTokens: 65536).
Any model on the gateway is addressable as kilocode/<upstream-id> (for example
kilocode/anthropic/claude-sonnet-4, kilocode/openai/gpt-5.5). Run /models kilocode or
openclaw models list --provider kilocode to see the full discovered list.
Config example
Behavior notes
Transport and compatibility
Kilo Gateway is OpenRouter-compatible, so it uses the proxy-style OpenAI-compatible request
path rather than native OpenAI request shaping (no store, no OpenAI reasoning-effort payload).
- Gemini-backed Kilo refs stay on the proxy-Gemini path: OpenClaw sanitizes Gemini thought signatures there but does not enable native Gemini replay validation or bootstrap rewrites.
- Requests use a Bearer token built from your API key.
Stream wrapper and reasoning
The Kilo stream wrapper adds an X-KILOCODE-FEATURE request header (default openclaw,
override with the KILOCODE_FEATURE env var) and normalizes reasoning-effort payloads for
models that support it.
Troubleshooting
- If model discovery fails, OpenClaw reports an unavailable catalog refresh. It does not replace the failed request with static rows or turn an empty response into
kilocode/kilo-auto/balanced. - Confirm your API key is valid and that your Kilo account has the desired models enabled.
- When Gateway runs as a daemon, ensure
KILOCODE_API_KEYis available to that process (for example in~/.openclaw/.envor viaenv.shellEnv).