Providers

Kilo Gateway

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

bash
openclaw plugins install @openclaw/kilocode-provideropenclaw gateway restart

Setup

  • Create an account

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

  • Run onboarding

    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
  • Verify the model is available

    bash
    openclaw models list --provider kilocode
  • Default model and catalog

    The default model is kilocode/kilo/auto, a provider-owned smart-routing model. OpenClaw does not publish a task-to-upstream-model mapping for it; routing behind kilo/auto 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 (Kilo Auto, input: ["text", "image"], reasoning: true, contextWindow: 1000000, maxTokens: 128000).

    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

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

    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 at startup, OpenClaw falls back to the static catalog containing kilocode/kilo/auto.
    • 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).
    Was this useful?
    On this page

    On this page