Files
stack/docs/providers/kilocode.md
T
jason.woltje 193479b52d docs: concept annexation, provider/reference docs, ACT-1 groundwork
Mosaic concepts pages now own the adapted content; source/license
metadata under docs/reference/concepts. Adds ACT-1 agent-context
planning capture, pinned concept test package + preparation utility,
foundation observation notes (durability, evidence, federation,
onboarding, workflow), and the #1495 consolidation assessment.
TOOLS.md updated for the host-dev launcher.
2026-09-07 14:07:05 -05:00

4.5 KiB

summary, title, read_when
summary title read_when
Use Kilo Gateway's unified API to access many models in OpenClaw Kilo Gateway
You want a single API key for many LLMs
You want to run models via Kilo Gateway in OpenClaw

Kilo Gateway routes requests to many models behind a single OpenAI-compatible endpoint and API key.

Property Value
Provider kilocode
Auth KILOCODE_API_KEY
API OpenAI-compatible
Base URL https://api.kilo.ai/api/gateway/

Install plugin

openclaw plugins install @openclaw/kilocode-provider
openclaw gateway restart

Setup

Go to [app.kilo.ai](https://app.kilo.ai), sign in or create an account, then generate an API key. ```bash openclaw onboard --auth-choice kilocode-api-key ```
Or set the environment variable directly:

```bash
export KILOCODE_API_KEY="<your-kilocode-api-key>" # pragma: allowlist secret
```
```bash openclaw models list --provider kilocode ```

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

{
  env: { vars: { KILOCODE_API_KEY: "<your-kilocode-api-key>" } }, // pragma: allowlist secret
  agents: {
    defaults: {
      model: { primary: "kilocode/kilo-auto/balanced" },
    },
  },
}

Behavior notes

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.
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.
<Warning>
`kilocode/kilo-auto/balanced` and `x-ai/*` refs skip reasoning-effort injection. Use a concrete
model ref such as `kilocode/anthropic/claude-sonnet-4` if you need reasoning support.
</Warning>
- 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_KEY` is available to that process (for example in `~/.openclaw/.env` or via `env.shellEnv`). Choosing providers, model refs, and failover behavior. Full OpenClaw configuration reference. Kilo Gateway dashboard, API keys, and account management.