Skip to main content
Moonshot provides the Kimi API with OpenAI-compatible endpoints. Set the default model to moonshot/kimi-k2.6 for the Moonshot Open Platform, or kimi/kimi-for-coding for Kimi Coding.
Moonshot and Kimi Coding are separate providers, each shipped as a separate external plugin. Keys are not interchangeable, endpoints differ, and model refs differ (moonshot/... vs kimi/...).

Built-in model catalog

Model refNameReasoningInputContextMax output
moonshot/kimi-k2.6Kimi K2.6Notext, image262,144262,144
moonshot/kimi-k2.7-codeKimi K2.7 CodeAlways ontext, image262,144262,144
moonshot/kimi-k2.5Kimi K2.5Notext, image262,144262,144
moonshot/kimi-k2-thinkingKimi K2 ThinkingYestext262,144262,144
moonshot/kimi-k2-thinking-turboKimi K2 Thinking TurboYestext262,144262,144
moonshot/kimi-k2-turboKimi K2 TurboNotext256,00016,384
Catalog cost estimates use Moonshot’s published pay-as-you-go rates: Kimi K2.7 Code is 0.19/MTokcachehit,0.19/MTok cache hit, 0.95/MTok input, 4.00/MTokoutput;KimiK2.6is4.00/MTok output; Kimi K2.6 is 0.16/MTok cache hit, 0.95/MTokinput,0.95/MTok input, 4.00/MTok output; Kimi K2.5 is 0.10/MTokcachehit,0.10/MTok cache hit, 0.60/MTok input, $3.00/MTok output. Other catalog entries keep zero-cost placeholders unless you override them in config. Kimi K2.7 Code always uses native thinking. OpenClaw exposes only the on thinking state for this model and omits outbound thinking and reasoning_effort fields, as required by Moonshot. It also omits sampling overrides (temperature, top_p, n, presence_penalty, frequency_penalty), which K2.7 fixes to provider defaults. Kimi K2.6 remains the onboarding default.

Getting started

Both Moonshot and Kimi Coding are external plugins - install one before onboarding.
Best for: Kimi K2 models via the Moonshot Open Platform.
1

Install the plugin

openclaw plugins install @openclaw/moonshot-provider
openclaw gateway restart
2

Choose your endpoint region

Auth choiceEndpointRegion
moonshot-api-keyhttps://api.moonshot.ai/v1International
moonshot-api-key-cnhttps://api.moonshot.cn/v1China
3

Run onboarding

openclaw onboard --auth-choice moonshot-api-key
Or for the China endpoint:
openclaw onboard --auth-choice moonshot-api-key-cn
4

Set a default model

{
  agents: {
    defaults: {
      model: { primary: "moonshot/kimi-k2.6" },
    },
  },
}
5

Verify models are available

openclaw models list --provider moonshot
6

Run a live smoke test

Use an isolated state dir when you want to verify model access and cost tracking without touching your normal sessions:
OPENCLAW_CONFIG_PATH=/tmp/openclaw-kimi/openclaw.json \
OPENCLAW_STATE_DIR=/tmp/openclaw-kimi \
openclaw agent --local \
  --session-id live-kimi-cost \
  --message 'Reply exactly: KIMI_LIVE_OK' \
  --thinking off \
  --json
The JSON response should report provider: "moonshot" and model: "kimi-k2.6". The assistant transcript entry stores normalized token usage plus estimated cost under usage.cost when Moonshot returns usage metadata.

Config example

{
  env: { MOONSHOT_API_KEY: "sk-..." },
  agents: {
    defaults: {
      model: { primary: "moonshot/kimi-k2.6" },
      models: {
        // moonshot-kimi-k2-aliases:start
        "moonshot/kimi-k2.6": { alias: "Kimi K2.6" },
        "moonshot/kimi-k2.7-code": { alias: "Kimi K2.7 Code" },
        "moonshot/kimi-k2.5": { alias: "Kimi K2.5" },
        "moonshot/kimi-k2-thinking": { alias: "Kimi K2 Thinking" },
        "moonshot/kimi-k2-thinking-turbo": { alias: "Kimi K2 Thinking Turbo" },
        "moonshot/kimi-k2-turbo": { alias: "Kimi K2 Turbo" },
        // moonshot-kimi-k2-aliases:end
      },
    },
  },
  models: {
    mode: "merge",
    providers: {
      moonshot: {
        baseUrl: "https://api.moonshot.ai/v1",
        apiKey: "${MOONSHOT_API_KEY}",
        api: "openai-completions",
        models: [
          // moonshot-kimi-k2-models:start
          {
            id: "kimi-k2.6",
            name: "Kimi K2.6",
            reasoning: false,
            input: ["text", "image"],
            cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 262144,
          },
          {
            id: "kimi-k2.7-code",
            name: "Kimi K2.7 Code",
            reasoning: true,
            input: ["text", "image"],
            cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 262144,
          },
          {
            id: "kimi-k2.5",
            name: "Kimi K2.5",
            reasoning: false,
            input: ["text", "image"],
            cost: { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 262144,
          },
          {
            id: "kimi-k2-thinking",
            name: "Kimi K2 Thinking",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 262144,
          },
          {
            id: "kimi-k2-thinking-turbo",
            name: "Kimi K2 Thinking Turbo",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 262144,
            maxTokens: 262144,
          },
          {
            id: "kimi-k2-turbo",
            name: "Kimi K2 Turbo",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 256000,
            maxTokens: 16384,
          },
          // moonshot-kimi-k2-models:end
        ],
      },
    },
  },
}
The Moonshot plugin also registers Kimi as a web_search provider, backed by Moonshot web search.
1

Run interactive web search setup

openclaw configure --section web
Choose Kimi in the web-search section to store plugins.entries.moonshot.config.webSearch.*.
2

Configure the web search region and model

Interactive setup prompts for:
SettingOptions
API regionhttps://api.moonshot.ai/v1 (international) or https://api.moonshot.cn/v1 (China)
Web search modelDefaults to kimi-k2.6
Config lives under plugins.entries.moonshot.config.webSearch:
{
  plugins: {
    entries: {
      moonshot: {
        config: {
          webSearch: {
            apiKey: "sk-...", // or use KIMI_API_KEY / MOONSHOT_API_KEY
            baseUrl: "https://api.moonshot.ai/v1",
            model: "kimi-k2.6",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "kimi",
      },
    },
  },
}

Advanced configuration

Kimi K2.7 Code always uses native thinking. Moonshot requires clients to omit the thinking field for this model, so OpenClaw exposes only on and ignores stale off settings. K2.7 also fixes temperature, top_p, n, presence_penalty, and frequency_penalty; OpenClaw omits configured overrides for those fields.Other Moonshot Kimi models support binary native thinking:
  • thinking: { type: "enabled" }
  • thinking: { type: "disabled" }
Configure it per model via agents.defaults.models.<provider/model>.params:
{
  agents: {
    defaults: {
      models: {
        "moonshot/kimi-k2.6": {
          params: {
            thinking: { type: "disabled" },
          },
        },
      },
    },
  },
}
OpenClaw maps runtime /think levels for those models:
/think levelMoonshot behavior
/think offthinking.type=disabled
Any non-off levelthinking.type=enabled
When Moonshot thinking is enabled, tool_choice must be auto or none. A pinned tool choice (type: "tool" or type: "function") forces thinking back to disabled instead, so the requested tool still runs; tool_choice: "required" is normalized to auto instead. This applies to every Moonshot model except Kimi K2.7 Code, whose thinking mode cannot be disabled - its tool_choice is normalized to auto when incompatible.
Kimi K2.6 also accepts an optional thinking.keep field that controls multi-turn retention of reasoning_content. Set it to "all" to keep full reasoning across turns; omit it (or leave it null) to use the server default strategy. OpenClaw only forwards thinking.keep for moonshot/kimi-k2.6 and strips it from other models. Kimi K2.7 Code preserves full reasoning history by default while OpenClaw omits the entire thinking field.
{
  agents: {
    defaults: {
      models: {
        "moonshot/kimi-k2.6": {
          params: {
            thinking: { type: "enabled", keep: "all" },
          },
        },
      },
    },
  },
}
Moonshot Kimi serves native tool_call ids shaped like functions.<name>:<index>. OpenClaw preserves the first occurrence of each native Kimi id and rewrites later duplicates to deterministic OpenAI-style call_* ids. Matching tool results are remapped with the same id so replay remains unique without stripping Kimi’s first native id. This behavior is wired into the bundled Moonshot provider and is not a user-configurable setting.
Native Moonshot endpoints (https://api.moonshot.ai/v1 and https://api.moonshot.cn/v1) advertise streaming usage compatibility. OpenClaw keys this off the endpoint host, not the provider id, so a custom provider id pointed at the same native Moonshot host inherits the same streaming-usage behavior.With the catalog K2.6 pricing, streamed usage that includes input, output, and cache-read tokens is also converted into local estimated USD cost for /status, /usage full, /usage cost, and transcript-backed session accounting.
ProviderModel ref prefixEndpointAuth env var
Moonshotmoonshot/https://api.moonshot.ai/v1MOONSHOT_API_KEY
Moonshot CNmoonshot/https://api.moonshot.cn/v1MOONSHOT_API_KEY
Kimi Codingkimi/Kimi Coding endpointKIMI_API_KEY
Web searchN/ASame as Moonshot API regionKIMI_API_KEY or MOONSHOT_API_KEY
  • Kimi web search uses KIMI_API_KEY or MOONSHOT_API_KEY, and defaults to https://api.moonshot.ai/v1 with model kimi-k2.6.
  • Override pricing and context metadata in models.providers if needed.
  • If Moonshot publishes different context limits for a model, adjust contextWindow accordingly.

Model selection

Choosing providers, model refs, and failover behavior.

Web search

Configuring web search providers including Kimi.

Configuration reference

Full config schema for providers, models, and plugins.

Moonshot Open Platform

Moonshot API key management and documentation.