装一个AI编程CLI,最烦的往往不是CLI本身,而是配供应商:配置文件在哪、base URL填什么、模型名该写在哪一层、怎么确认key真的通了。这套流程走不顺,命令行里再强的助手也跑不起来。
![]()
这里以Kimi Code CLI接入Ace Data Cloud为例,把它当成一个OpenAI兼容供应商来配。目标很务实:装好CLI、加一段供应商配置、跑通验证,出问题时知道该查哪。
先搞清楚它读什么
Kimi Code是终端里的编程助手,供应商配置从~/.kimi/config.toml读取。把provider的type设成openai,等于告诉它:对着配置好的base_url,说OpenAI Chat Completions那套协议。
这套配置下,模型请求发往https://api.acedata.cloud/v1。供应商侧由Ace Data Cloud处理,Kimi Code保留本地的开发体验——在项目里跑命令、让它改代码、在终端里反复迭代。
动手前先拿API Key:打开Ace Data Cloud的应用列表,进入一个可用应用,复制API Key。
装CLI,三条路选一条
macOS或Linux用shell安装脚本:
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
Windows PowerShell用:
irm https://code.kimi.com/kimi-code/install.ps1 | iex
习惯npm的,全局装包:
npm install -g @moonshot-ai/kimi-code
装完之后,剩下的活基本都在配置里,不在代码里。
配置里最容易错的是MODEL_ID
打开~/.kimi/config.toml,加入Ace Data Cloud这段供应商配置:default_model写成acedatacloud/MODEL_ID;[providers.acedatacloud]下type为openai、base_url为https://api.acedata.cloud/v1、api_key填你的Key;[models."acedatacloud/MODEL_ID"]下provider指向acedatacloud,model填MODEL_ID。
所有MODEL_ID要替换成同一个模型名。文档里给了claude-opus-5、gpt-6-sol这类示例,但更稳的做法是查模型目录,或者拿/v1/models返回的id来校验,用返回的那个id。
这里有个细节值得单独拎出来:MODEL_ID要用API的model参数所用的模型名,不是服务UUID,也不是API UUID。填错这一层,后面怎么调都不通。
一份合格的配置,内部必须自洽:
- default_model指向acedatacloud/开头的字符串
- 模型表名和这个字符串完全一致
- 表里的model字段是裸的模型id
- provider保持acedatacloud
- type保持openai
以gpt-6-sol为例,结构就是default_model = "acedatacloud/gpt-6-sol",模型表名同为"acedatacloud/gpt-6-sol",表内model = "gpt-6-sol"。
别混用模型标识。一个很常见的翻车方式是:改了default_model,却把模型表或model字段留在旧值上。
顺手把文件权限收紧
因为config.toml里存着API Key,在macOS或Linux上执行chmod 600 ~/.kimi/config.toml。这不替代团队级的密钥管理,但作为本地基线是合理的。别把这个文件提交进仓库,分享终端录屏或配置片段时也要留神。
三条命令验证,按顺序跑
第一条kimi doctor,做基础体检。第二条kimi provider list,确认供应商对Kimi Code可见。第三条kimi -p "Reply only OK",一次最小模型调用,路径通了就只回一个OK。
报401就回去查API Key。提示模型找不到,就把三个模型位置再对一遍:default_model、[models."..."]表名、model字段,三者必须对齐同一个API模型id。
验证过了,进项目目录跑kimi,配置才算真正变成生产力。让它看文件、提改动、帮调试,全程不用离开终端。供应商配置留在Kimi Code里,项目工作流留在本地。
这套集成不大,但省掉的供应商摩擦不少:一个OpenAI兼容的base_url、一段type = "openai"的供应商配置、一份模型映射、三条验证命令。如果你在评估终端编程助手,这种配置值得保持可复现。