2026-03-19 02:14,我在 src/utils/data2csv.ts 里敲下:
ts
function flatten(
rows: unknown[],
header = ['id', 'name']
): string { // ← 光标停在这
按 Tab 0.8 s 后,补全出 18 行,把嵌套数组拍平、转义、加 BOM,一气呵成。我顺手 commit,像过去 873 次一样,没看右下角模型名。
第二天醒来,推特说 Composer 2 其实是 kimi-k2p5-rl-0317-s515-fast。我回到 IDE,打开 Network 面板,重新触发补全——
请求头 x-model-id: kimik2p5-composer-fast
返回时间 215 ms(同文件昨晚 212 ms)
补全内容
一字未差。
那一刻我才承认:过去 24 个月,我引以为傲的“默契”只是概率的副产品,与“自研”二字无关。
被辜负了吗?120 字以内说完
没有宕机、没有降价、没有翻车,但我把 3 年代码感情押注在“Cursor 懂我”这个叙事上,如今发现对方只是复读机,仍觉轻微失重——像把耳机借给朋友,还回来时耳塞带着别人的体温。
模型 ID 不在体验回路的现场实验
为了验证“ID 曝光是否影响手感”,我写了最小可复现用例:
python
test_cursor.py
def parse(sql: str) -> list:
"""提取 WHERE 子句中的字段名"""
# 光标在此按 Tab
结果对比
| 渠道 | 首字符延迟 | 补全长度 | 字段提取准确率 |
|---|---|---|---|
| Cursor Composer 2 | 180 ms | 42 token | 100 % |
| Kimi 官方 API 同 prompt | 550 ms | 40 token | 100 % |
差异只有延迟,而延迟反而让我更爽——我更快得到了同样的正确答案。于是,ID 是谁,对肌肉记忆确实无扰动。
把“拼装痕迹”留在表面的 3 种可行方案
1. package.json 字段
"aiModel": "kimi-k2p5 via Fireworks"
优点:源码级透明;缺点:用户几乎不会打开。
2. 编辑器水印
状态栏常驻「Powered by Kimi K2.5」
优点:实时可见;缺点:UI 拥挤,品牌方不愿替别人打广告。
3. 每次补全的 inline 注释
ts
// model:kimi-k2p5
优点:代码审计可追踪;缺点:污染源码,CI 需自动剥离。
我倾向方案 1+2: package.json 留底,状态栏给知情权,让“装配工”与“原作者”同时可见。
我的钱包投票
事件曝光后,Cursor 把年度计划从 240 美元降到 192 美元。我犹豫 10 分钟,最终续费——延迟更低、价格更低、源码无锁,道德瑕疵暂时打不过工程红利。但我在 README 加了一行:
> This repo’s autocompletion is powered by Kimi K2.5 through Cursor.
不是为 Kimi 做广告,而是把榫头露出来:椅子继续坐,裂缝留给我记住。
(完)