先把边界说清楚:Cursor 原生模型支持,和通过 OpenAI 兼容 endpoint 接入第三方模型,不是一回事。
在写这篇文章时核对到的 Cursor 公开模型文档里,Moonshot 相关条目是 Kimi K2.7 Code,没有把 kimi-k3 列为 Cursor 原生模型。Kimi 官方 API 文档则明确给出了 Kimi K3 的 OpenAI 兼容调用方式,模型名是 kimi-k3。
所以,在 Cursor 里尝试 Kimi K3 的靠谱路径是:如果你的 Cursor 版本提供 OpenAI API Key 和 Base URL 覆盖配置,就直接配置 Kimi 的 OpenAI 兼容地址;如果 Cursor 只允许选择固定模型名,就通过一个网关把 Cursor 发出的模型名映射到 kimi-k3。
准备工作
- 在 Kimi 开放平台创建一个 API Key。
- Kimi 的 OpenAI 兼容 Base URL:
https://api.moonshot.ai/v1。 - Kimi K3 的模型名:
kimi-k3。 - 一个支持 OpenAI API Key 和 Base URL 配置的 Cursor 版本,或一个可以改写模型名的 OpenAI 兼容网关。
先测试 Kimi API
拿到 API Key 后,建议先在 Cursor 外面发一个最小请求。这样可以先确认 Key、Base URL、模型名都没有问题。
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.MOONSHOT_API_KEY,
baseURL: 'https://api.moonshot.ai/v1',
});
const response = await client.chat.completions.create({
model: 'kimi-k3',
messages: [{ role: 'user', content: '用一句话介绍你自己。' }],
});
console.log(response.choices[0]?.message?.content);这里最关键的两项是:
Base URL: https://api.moonshot.ai/v1
Model: kimi-k3在 Cursor 里配置
打开 Cursor Settings,进入模型或 provider 相关设置。如果你的版本里能看到 OpenAI API Key 和 Base URL override 一类的配置,把 Kimi API Key 填进去,并把 Base URL 设为:
https://api.moonshot.ai/v1如果 Cursor 允许填写自定义模型名,就填:
kimi-k3如果 Cursor 只允许选择固定 OpenAI 模型名,就在 Cursor 和 Kimi 之间加一层网关。Cursor 连接网关的 OpenAI 兼容地址,网关再把 Cursor 发送的模型名改写成 kimi-k3,然后转发到 Kimi。
怎么验证是否真的走了 Kimi K3
先在 Cursor 里发一个很小的请求,例如:
用三点解释当前函数做了什么。然后检查两件事:
- Cursor 里是否能正常返回回答。
- Kimi 控制台或你的网关日志里是否出现了对应调用。
如果 Kimi 侧完全没有用量或日志,说明 Cursor 很可能没有把这个请求发到你的自定义 endpoint,而是继续走了 Cursor 自己的后端。
目前需要注意的限制
通过 OpenAI 兼容 endpoint 接入,不等于 Cursor 已经原生支持 Kimi K3。
Cursor 公开文档目前列出的是 Kimi K2.7 Code,不是 kimi-k3。另外,第三方网关文档也提示,Cursor 的自定义 OpenAI 兼容 endpoint 更适合 planning 或 chat 场景;Composer、inline edit、autocomplete、apply/edit suggestions 等编码代理能力,可能仍然绑定在 Cursor 自己的后端。
因此,这套配置适合用来在 Cursor 里尝试 Kimi K3 能力。若你需要完整的 Cursor agent 工作流,当前更稳妥的做法是使用 Cursor 模型选择器里官方提供的模型;如果目标是稳定使用 Kimi K3 做代码任务,可以优先看 Kimi 官方发布的 Claude Code 接入方式。
