Kilo Gateway Unified API for OpenClaw Models

Learn how to use Kilo Gateway's unified API to access many models in OpenClaw. This page covers setup, authentication, and default model configuration.

Read this when

  • 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.

PropertyValue
Providerkilocode
AuthKILOCODE_API_KEY
APIOpenAI-compatible
Base URLhttps://api.kilo.ai/api/gateway/

Install plugin

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

Setup

Create an account

Go to app.kilo.ai, sign in or create an account, then generate an API key.

Run onboarding

openclaw onboard --auth-choice kilocode-api-key

Or set the environment variable directly:

export KILOCODE_API_KEY="<your-kilocode-api-key>" # pragma: allowlist secret

Verify the model is available

openclaw models list --provider kilocode

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 merges discovered models ahead of a static fallback catalog. The static fallback 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: { KILOCODE_API_KEY: "<your-kilocode-api-key>" }, // pragma: allowlist secret
  agents: {
    defaults: {
      model: { primary: "kilocode/kilo-auto/balanced" },
    },
  },
}

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.

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.

Troubleshooting

  • If model discovery fails at startup, OpenClaw falls back to the static catalog containing 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).