Moonshot AI
Configure Moonshot K2 vs Kimi Coding (separate providers + keys)
Moonshot provides the Kimi API with OpenAI-compatible endpoints. Configure provider and set default model to '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'moonshot/kimi-k2.5'</code>', or use Kimi Coding with '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'kimi-coding/k2p5'</code>'.
Current Kimi K2 model IDs:
{/_ moonshot-kimi-k2-ids:start _/ && null}
- kimi-k2.5
- kimi-k2-0905-preview
- kimi-k2-turbo-preview
- kimi-k2-thinking
- kimi-k2-thinking-turbo
{/_ moonshot-kimi-k2-ids:end _/ && null}
openclaw onboard --auth-choice moonshot-api-key
Kimi Coding:
openclaw onboard --auth-choice kimi-code-api-key
Note: Moonshot and Kimi Coding are separate providers. Keys are not interchangeable, endpoints differ, and model refs differ (Moonshot uses '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'moonshot/...'</code>', Kimi Coding uses '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'kimi-coding/...'</code>').
Config snippet (Moonshot API)
{
env: { MOONSHOT_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "moonshot/kimi-k2.5" },
models: {
// moonshot-kimi-k2-aliases:start
"moonshot/kimi-k2.5": { alias: "Kimi K2.5" },
"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.5",
name: "Kimi K2.5",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
},
{
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 Coding
{
env: { KIMI_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "kimi-coding/k2p5" },
models: {
"kimi-coding/k2p5": { alias: "Kimi K2.5" },
},
},
},
}Notes
- Moonshot model refs use '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'moonshot/<modelId>'</code>'. Kimi Coding model refs use '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'kimi-coding/<modelId>'</code>'.
- Override pricing and context metadata in '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'models.providers'</code>' if needed.
- If Moonshot publishes different context limits for a model, adjust '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'contextWindow'</code>' accordingly.
- Use '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'https://api.moonshot.ai/v1'</code>' for international endpoint, and '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'https://api.moonshot.cn/v1'</code>' for China endpoint.