--- summary: "Configure Moonshot K2 vs Kimi Code (separate providers + keys)" read_when: - You want Moonshot K2 (Moonshot Open Platform) vs Kimi Code setup - You need to understand separate endpoints, keys, and model refs - You want copy/paste config for either provider --- # Moonshot AI (Kimi) Moonshot provides the Kimi API with OpenAI-compatible endpoints. Configure the provider and set the default model to `moonshot/kimi-k2-0905-preview`, or use Kimi Code with `kimi-code/kimi-for-coding`. Current Kimi K2 model IDs: {/* moonshot-kimi-k2-ids:start */} - `kimi-k2-0905-preview` - `kimi-k2-turbo-preview` - `kimi-k2-thinking` - `kimi-k2-thinking-turbo` {/* moonshot-kimi-k2-ids:end */} ```bash clawdbot onboard --auth-choice moonshot-api-key ``` Kimi Code: ```bash clawdbot onboard --auth-choice kimi-code-api-key ``` Note: Moonshot and Kimi Code are separate providers. Keys are not interchangeable, endpoints differ, and model refs differ (Moonshot uses `moonshot/...`, Kimi Code uses `kimi-code/...`). ## Config snippet (Moonshot API) ```json5 { env: { MOONSHOT_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "moonshot/kimi-k2-0905-preview" }, models: { // moonshot-kimi-k2-aliases:start "moonshot/kimi-k2-0905-preview": { alias: "Kimi K2" }, "moonshot/kimi-k2-turbo-preview": { alias: "Kimi K2 Turbo" }, "moonshot/kimi-k2-thinking": { alias: "Kimi K2 Thinking" }, "moonshot/kimi-k2-thinking-turbo": { alias: "Kimi K2 Thinking 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-0905-preview", name: "Kimi K2 0905 Preview", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256000, maxTokens: 8192 }, { id: "kimi-k2-turbo-preview", name: "Kimi K2 Turbo", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256000, maxTokens: 8192 }, { id: "kimi-k2-thinking", name: "Kimi K2 Thinking", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256000, maxTokens: 8192 }, { id: "kimi-k2-thinking-turbo", name: "Kimi K2 Thinking Turbo", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256000, maxTokens: 8192 } // moonshot-kimi-k2-models:end ] } } } } ``` ## Kimi Code ```json5 { env: { KIMICODE_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "kimi-code/kimi-for-coding" }, models: { "kimi-code/kimi-for-coding": { alias: "Kimi Code" } } } }, models: { mode: "merge", providers: { "kimi-code": { baseUrl: "https://api.kimi.com/coding/v1", apiKey: "${KIMICODE_API_KEY}", api: "openai-completions", models: [ { id: "kimi-for-coding", name: "Kimi For Coding", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, headers: { "User-Agent": "KimiCLI/0.77" }, compat: { supportsDeveloperRole: false } } ] } } } } ``` ## Notes - Moonshot model refs use `moonshot/`. Kimi Code model refs use `kimi-code/`. - Override pricing and context metadata in `models.providers` if needed. - If Moonshot publishes different context limits for a model, adjust `contextWindow` accordingly. - Use `https://api.moonshot.cn/v1` if you need the China endpoint.