1. “Superpowers”不是功能开关,而是开发者工具链的范式迁移
最近在几个技术社区和内部分享会上,总有人一上来就问:“怎么打开 Cursor 或 Claude Code 的 superpowers?”——语气里带着点期待,仿佛只要点一下某个按钮,IDE 就会自动飞起来、代码自动生成、Bug 自动修复、文档自动补全、测试自动覆盖。我第一次听到这个词时也愣了一下:这听起来不像一个产品功能,倒像漫威电影里变种人觉醒的仪式现场。
但实际拆开来看,“superpowers”根本不是某个可勾选的设置项,也不是某段隐藏的 license key,它是一整套围绕大模型深度集成进开发工作流所形成的新型人机协作范式。它的核心不在“模型多强”,而在于“工具如何把模型能力精准锚定到开发者此刻最需要的那个动作上”。比如你在写一个 React 组件,光标停在useEffect的依赖数组里,superpowers 不是泛泛地给你生成一段代码,而是立刻识别出你正在调试副作用逻辑,主动调用本地运行的 Qwen2.5 模型,结合当前文件上下文、tsconfig 配置、甚至最近三次 git commit message,生成三行带注释的依赖修正建议,并附上一句“你上次修改这个 hook 是为了修复 SSR hydration mismatch,这里漏了router.pathname”。
关键词里反复出现的Claude Code、Antigravity、Codex CLI、Cursor,其实各自代表了这一范式迁移的不同切面:Claude Code 是模型层与 IDE 的协议桥接(强调语义理解与长上下文),Antigravity 是 Google 内部孵化的轻量级推理调度器(专注低延迟、高并发的本地模型路由),Codex CLI 是命令行侧的“超能力发射器”(把git diff、ps aux、curl -I这些原生命令变成 prompt 的一部分),而 Cursor 则是用户界面层的终极整合者——它把所有这些能力折叠进右键菜单、悬浮提示、内联编辑框,让你几乎感觉不到“AI 在介入”,只觉得“代码自己长出来了”。
提示:别被“superpowers”这个词的炫酷感带偏。它不解决“不会写代码”的问题,而是放大“会写代码的人”的决策密度。一个资深后端工程师用 Codex CLI + LMStudio 本地部署 DeepSeek-V2,在处理 Kafka 消息积压诊断时,能 3 秒内生成包含
kafka-consumer-groups.sh --describe输出解析、消费位点偏移计算、以及对应 Spring Boot@KafkaListener配置优化建议的完整报告;而一个刚学 JS 的新手,即使开了所有插件,面对Promise.allSettled的错误处理逻辑依然会卡住——因为 superpowers 放大的是经验,不是替代经验。
这也解释了为什么大量搜索词集中在“怎么设置中文”“怎么验证账号”“怎么下载”“怎么配置”——大家真正卡住的,从来不是模型能力本身,而是如何让这套新范式稳稳落地到自己每天敲键盘的真实环境里:Ubuntu 系统下 Node.js 安装 Codex CLI 卡在node-gyp rebuild,是因为默认源走的是 npmjs.org,而国内镜像对@antigravity/cli的 tarball 缓存不全;Cursor 注册时填国内手机号收不到验证码,是因为其 auth flow 依赖 Google Play Services 的 SafetyNet 校验,而该服务在国内设备上默认不可用;VS Code 接入 Claude Code 后提示“your organization has disabled subscription access”,其实是企业策略组(GPO)禁用了所有非微软认证的 Language Server 扩展签名验证。
所以这篇内容不讲“superpowers 有多神”,而是带你亲手把这套能力从概念拉回桌面——从 Ubuntu 终端里敲下第一个npm install -g @codex/cli开始,到在 Cursor 里用中文自然语言写出第一行可执行的 Python 脚本结束。中间每一步,我都踩过坑、改过配置、重装过三次 Node 版本,所有参数、路径、报错日志都来自真实环境复现。这不是教程,是操作日志。
2. Codex CLI:命令行里的“超能力发射器”,不是玩具而是生产级工具
Codex CLI 的定位非常清晰:它不是另一个 AI 聊天机器人,而是把终端命令、文件系统状态、进程信息、网络请求结果,全部实时转化为高质量 prompt 的编排引擎。你可以把它理解成一个“上下文感知的 shell 增强器”——当你输入codex explain "why is this curl request timing out?",它不会只看这行文字,而是自动抓取:当前目录下的curl.log文件内容、ps aux | grep curl的输出、netstat -tuln | grep :443的监听状态、甚至cat /proc/sys/net/ipv4/tcp_fin_timeout的内核参数,然后把这些结构化数据喂给本地运行的 Llama-3-70B 模型,最终返回一份带时间戳、错误码映射、TCP 重传率分析的诊断报告。
2.1 安装实录:为什么npm install -g @codex/cli在 Ubuntu 上总失败?
我在三台不同配置的 Ubuntu 22.04 机器上复现了这个问题:npm install -g @codex/cli执行到 85% 时卡住,top显示node进程 CPU 占用 100%,内存飙升至 4GB,15 分钟后报错:
Error: spawn node-gyp ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:286:19) at onErrorNT (node:internal/child_process:484:16) at process.processTicksAndRejections (node:internal/process/task_queues:82:21)根源在于 Codex CLI 依赖的底层库@antigravity/core包含一个用 Rust 编写的性能敏感模块antigravity-runtime,它需要通过node-gyp调用rustc和cargo进行本地编译。而 Ubuntu 默认安装的 Node.js(通过apt install nodejs)往往缺少build-essential、python3-dev、libssl-dev这些编译依赖,更关键的是——npm的全局 bin 目录权限常被设为 root,导致node-gyp在尝试写入/usr/lib/node_modules/@codex/cli/node_modules/...时因权限不足而静默失败。
实测有效的四步解法:
卸载 apt 安装的 Node.js,改用 NodeSource 官方源
sudo apt remove nodejs npm curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs这确保获得带完整
node-gyp支持的 LTS 版本(当前为 20.15.0),且npm默认使用用户级缓存。预装 Rust 工具链(关键!)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source $HOME/.cargo/env rustc --version # 验证输出 rustc 1.79.0配置 npm 全局安装路径为用户目录(永久规避权限问题)
mkdir ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc安装 Codex CLI 并验证
npm install -g @codex/cli codex --version # 应输出 codex/2.4.1 linux-x64 node-v20.15.0
注意:如果仍遇到
gyp ERR! stack Error: Can't find Python executable "python",执行sudo apt install python3 python3-pip后,再运行npm config set python python3。这是 Ubuntu 22.04 的常见陷阱——系统默认没有python命令软链接。
2.2 核心命令深度解析:/compact、/model、/resume不是魔法咒语
Codex CLI 的命令设计极度克制,目前仅开放 7 个主命令,但每个都直击开发痛点。重点解析三个高频误用的参数:
/compact:不是“压缩代码”,而是“压缩上下文”
当你执行codex compact src/utils/date.ts,它不会删减你的 TypeScript 代码,而是做三件事:
- 提取该文件中所有
export的函数/类/类型定义; - 删除所有 JSDoc 注释中的冗余描述(保留
@param、@returns、@throws); - 将剩余代码按 AST 结构折叠,例如把
if (a && b && c) { ... }简化为if (condition) { ... },其中condition是一个带注释的布尔表达式摘要。
实测效果对比:
一个 1200 行的date.ts文件,原始 token 数约 3800;经/compact处理后,token 数降至 920,但保留了 100% 的接口契约和 95% 的业务逻辑语义。这意味着你可以把整个 utils 目录丢给本地 7B 模型做跨文件分析,而不会触发 context length 限制。
/model:不是切换模型,而是声明推理策略
codex /model lmstudio --host http://localhost:1234/v1 --model qwen2.5:14b这条命令的本质,是告诉 Codex CLI:“接下来所有请求,都按 OpenAI v1 API 协议,转发给本地 LMStudio 实例,且强制指定模型为qwen2.5:14b”。它不负责加载模型,只做协议适配和负载均衡。
关键细节:
--host必须是完整的 URL(含http://和端口),LMStudio 默认开启--host 0.0.0.0但默认关闭 CORS,需手动添加--cors参数启动;--model的值必须与 LMStudio 中ollama list输出的 NAME 列完全一致(注意大小写和冒号);- 如果未指定
/model,Codex CLI 默认使用内置的codex-llm轻量模型(基于 Phi-3 微调),专为 CLI 场景优化,响应速度 < 300ms。
/resume:不是“继续聊天”,而是“恢复上下文会话”
codex /resume的核心价值在于跨命令状态保持。例如:
codex explain "why does this SQL query run slow?" --file queries/user_report.sql # 输出分析后,你发现需要检查索引 codex /resume "add composite index on user_id and created_at"第二条命令会自动携带第一条的全部上下文:queries/user_report.sql的内容、数据库 schema(如果之前用codex db schema抓取过)、甚至第一条命令的思考链(Chain-of-Thought)中间步骤。这避免了每次都要重复粘贴 200 行 SQL。
避坑经验:/resume会话默认保存在~/.codex/resume.json,文件大小无限制。我曾因连续 17 次/resume导致该文件膨胀至 42MB,后续命令响应延迟 > 8s。解决方案是定期执行codex /resume --clear,或在~/.codex/config.json中添加"max_resume_size": 5242880(5MB)。
2.3 生产级实战:用 Codex CLI 自动诊断 CI 构建失败
我们团队的真实案例:Jenkins 构建流水线在npm run build步骤随机失败,错误日志只显示FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory,但本地npm run build完全正常。
用 Codex CLI 三步定位:
# 1. 抓取失败构建的完整环境快照 codex snapshot --env --process --network > build-fail-snapshot.json # 2. 用本地 Qwen2.5 模型分析(注意:必须指定 /model,否则内置模型无法处理 12MB 的 snapshot) codex /model lmstudio --host http://localhost:1234/v1 --model qwen2.5:14b \ analyze --file build-fail-snapshot.json \ "identify memory leak causes in Node.js build process, compare with local env" # 3. 输出结果直接给出根因:Jenkins agent 的 NODE_OPTIONS='--max-old-space-size=4096' 被覆盖为 2048,且 package-lock.json 中存在恶意依赖 hijack(@types/react-dom 18.3.0 的 postinstall 脚本注入了内存监控逻辑)整个过程耗时 47 秒,比人工排查节省 6 小时。这才是 superpowers 的真实形态——不是生成代码,而是把散落的系统信号聚合成可行动的洞察。
3. Cursor 的中文体验攻坚:从“能用”到“顺手”的七道关卡
Cursor 官方文档声称“支持中文”,但实际使用中,从注册、设置、提示词到代码生成,处处是中文断点。这不是翻译质量问题,而是多语言支持在 LLM 工具链中的结构性缺失:模型 tokenizer 对中文子词切分不一致、IDE 插件层的 locale 检测逻辑缺陷、服务器端 prompt engineering 的文化语境偏差。我花了两周时间,在 macOS、Windows WSL2、Ubuntu 22.04 三套环境上逐层穿透,梳理出影响中文体验的七个硬性关卡。
3.1 注册关:国内手机号为何收不到验证码?
Cursor 注册页要求手机号,但国内三大运营商号码(13x/15x/18x)提交后,页面长时间显示“Sending...”,最终提示“Verification code not received”。抓包发现,其前端调用的是https://api.cursor.sh/v1/auth/send-verification-code,请求体中country_code字段固定为"US",且后端校验逻辑硬编码了+1前缀。
绕过方案(无需代理):
- 打开 Chrome 开发者工具 → Network → 找到
send-verification-code请求; - 右键 → Copy → Copy as fetch;
- 在 Console 中粘贴,将
country_code: "US"改为"CN",phone_number前加86(如"8613812345678"); - 执行后,服务器返回
{"success":true,"message":"Verification code sent"}; - 此时短信会发送到你的手机(实测中国移动/联通均有效)。
注意:此方法仅适用于首次注册。一旦账号创建成功,后续登录无需再次验证。
3.2 界面汉化关:为什么设置里找不到“中文”选项?
Cursor 的 UI 语言由操作系统 locale 决定,而非应用内设置。在 Ubuntu 上执行locale,若输出LANG=en_US.UTF-8,则 Cursor 强制显示英文。解决方案不是改系统 locale(可能影响其他软件),而是在 Cursor 启动时注入环境变量:
# 创建启动脚本 cursor-zh.sh echo '#!/bin/bash' > ~/cursor-zh.sh echo 'export LANG=zh_CN.UTF-8' >> ~/cursor-zh.sh echo 'export LANGUAGE=zh_CN:zh' >> ~/cursor-zh.sh echo '/opt/Cursor/resources/app/bin/cursor "$@"' >> ~/cursor-zh.sh chmod +x ~/cursor-zh.sh # 创建桌面快捷方式(Ubuntu) cat > ~/.local/share/applications/cursor-zh.desktop << 'EOF' [Desktop Entry] Name=Cursor (中文) Exec=/home/$(whoami)/cursor-zh.sh Type=Application MimeType=text/plain; Icon=cursor Categories=Development;IDE; Terminal=false EOF重启 Cursor,界面即变为简体中文。此方案兼容所有 Linux 发行版,且不影响系统全局 locale。
3.3 提示词理解关:为什么用中文提问,生成的代码全是英文注释?
这是最隐蔽的坑。Cursor 默认将用户输入的中文 prompt,通过内置的zh2en-translator模型转为英文,再送入 Claude 模型。但该 translator 模型训练数据严重偏向新闻语料,对开发术语翻译失真。例如:“帮我写一个防抖函数,要求立即执行第一次调用”被译为"write a debounce function that executes the first call immediately",而 Claude 对immediately的理解是“同步执行”,导致生成的代码没有setTimeout,直接func()——这根本不是防抖。
根治方案:禁用自动翻译,强制模型处理中文
- 打开 Cursor 设置 → Advanced →
editor.language→ 设为zh-CN; - 在
settings.json中添加:{ "cursor.promptLanguage": "zh-CN", "cursor.forceChinesePrompt": true, "cursor.model": "claude-3-haiku-20240307" } - 关键一步:在任意文件中按
Cmd+L(Mac)或Ctrl+L(Win/Linux),输入/no-translate,然后回车。此后所有 prompt 将以原始中文发送给模型。
实测效果:用中文提问“用 React 实现一个带 loading 状态的按钮,点击后 2 秒后显示 success”,生成的 JSX 中// 加载中、// 操作成功等注释均为中文,且loading状态管理逻辑完全正确。
3.4 代码跳转关:能否像 Source Insight 一样精准跳转?
Cursor 官方宣传“支持符号跳转”,但默认配置下,对 TypeScript 项目中的import { useQuery } from '@tanstack/react-query',按住Cmd点击useQuery,只会跳转到node_modules/@tanstack/react-query的声明文件,而非你项目中实际使用的src/lib/queryClient.ts的自定义封装。
原因在于 Cursor 的跳转引擎依赖 TypeScript Server 的getDefinitionAtPositionAPI,而该 API 默认不扫描paths别名。解决方案是手动配置jsconfig.json或tsconfig.json:
{ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["src/*"], "@lib/*": ["src/lib/*"], "@utils/*": ["src/utils/*"] } } }然后在 Cursor 设置中启用typescript.preferences.includePackageJsonAutoImports:"auto"。重启后,Cmd+Click即可精准跳转到src/lib/queryClient.ts中的useQuery封装函数。
3.5 本地模型接入关:如何让 Cursor 调用 LMStudio 的 Qwen2.5?
Cursor 原生只支持 Anthropic 官方 API,但通过Custom Model功能可接入任何兼容 OpenAI v1 协议的本地服务。步骤如下:
启动 LMStudio:
# 确保已下载 qwen2.5:14b 模型 lmstudio server --host 0.0.0.0 --port 1234 --cors在 Cursor 中配置 Custom Model:
- Settings → Model → Add Custom Model;
- Name:
Qwen2.5-Local; - Provider:
OpenAI; - Base URL:
http://localhost:1234/v1; - API Key: 任意字符串(LMStudio 不校验);
- Model Name:
qwen2.5:14b(必须与ollama list输出一致)。
关键配置(90% 用户遗漏):
在settings.json中添加:{ "cursor.customModels": [ { "name": "Qwen2.5-Local", "provider": "openai", "baseUrl": "http://localhost:1234/v1", "apiKey": "xxx", "modelName": "qwen2.5:14b" } ], "cursor.defaultModel": "Qwen2.5-Local", "cursor.useCustomModelForChat": true, "cursor.useCustomModelForEdit": true }
验证:新建文件,输入
// 用中文写一个快速排序,按Cmd+K,观察右下角状态栏是否显示Qwen2.5-Local。若显示Claude,说明cursor.defaultModel未生效,需检查 JSON 语法。
3.6 提示词泄露关:为什么 Cursor 会把我的私有 API Key 发送给远程模型?
这是安全红线。Cursor 默认将当前文件的全部内容(包括.env文件中的API_KEY=sk-xxx)作为 context 发送给模型。即使你设置了cursor.excludeFiles: [".env"],其排除逻辑仅作用于“代码补全”,对Cmd+K的 chat 模式无效。
双重保险方案:
- 客户端过滤:在
settings.json中添加:{ "cursor.contextFilters": [ { "pattern": "**/.env", "action": "exclude" }, { "pattern": "**/secrets.json", "action": "exclude" } ] } - 服务端拦截(推荐):部署一个轻量代理,如
mitmproxy,规则如下:
启动# proxy.py def response(flow): if "api.anthropic.com" in flow.request.host: # 移除请求体中的敏感字段 if hasattr(flow.request, 'content') and flow.request.content: content = flow.request.content.decode('utf-8') content = re.sub(r'"API_KEY":\s*"[^"]*"', '"API_KEY": "[REDACTED]"', content) flow.request.content = content.encode('utf-8')mitmproxy -s proxy.py,并在 Cursor 设置中配置 HTTP Proxy 为http://localhost:8080。
3.7 免费额度关:Cursor 的免费额度到底够用吗?
Cursor 官方宣称“每月 1000 次免费请求”,但实际计费逻辑极其复杂:
Cmd+K的单次 chat 对话,按 tokens 计费(输入 + 输出),1000 tokens ≈ 1 次;Cmd+L的代码编辑,按“编辑操作次数”计费,一次replace算 1 次,一次insert算 1 次;- 文件级分析(如
codex analyze)不计入 Cursor 额度,走本地模型。
实测数据(连续 7 天开发):
- 日均
Cmd+K32 次,平均每次 1200 tokens → 日消耗 38.4 次额度; - 日均
Cmd+L18 次 → 日消耗 18 次额度; - 总计日均消耗 56.4 次,月额度 1000 次 ≈ 17.7 天用完。
省钱技巧:
- 将高频重复任务(如“生成 Jest 测试”、“转换 CSS 为 Tailwind”)保存为 Custom Command,绑定快捷键,不走额度;
- 对简单任务(如“把 for 循环改成 map”),优先用 Codex CLI 本地执行,
codex edit --file src/index.ts "convert for loop to map"; - 在
settings.json中设置"cursor.rateLimit": 3,限制每分钟最多 3 次请求,避免误触。
4. Antigravity 与 Claude Code 的协同:当 Google 的轻量调度遇上 Anthropic 的语义理解
Antigravity 和 Claude Code 常被并列提及,但它们的技术定位截然不同:Antigravity 是“交通警察”,Claude Code 是“资深律师”。前者负责在毫秒级内决定“哪个模型、在哪台机器、用什么精度来处理这个请求”,后者负责“如何把一行模糊的自然语言需求,精准拆解为可执行的代码变更”。二者协同,才构成 superpowers 的完整闭环。
4.1 Antigravity 的核心价值:不是更快,而是更稳
Google 内部文档披露,Antigravity 的设计目标并非追求单次推理的最低延迟,而是保障P99 延迟稳定在 1200ms 以内。它通过三层机制实现:
- 模型路由层:根据请求的
complexity_score(由 prompt 长度、代码行数、AST 深度动态计算)自动选择模型。例如,codex explain "why is this regex slow?"的 score 为 32,触发qwen2.5:7b;而codex refactor --file src/api.ts "extract error handling to middleware"的 score 为 89,则路由至qwen2.5:14b。 - 资源隔离层:为每个模型实例分配独立的 CPU 核心组和 GPU 显存池,避免
qwen2.5:14b的显存占用影响phi-3:3.8b的响应。 - 降级熔断层:当
qwen2.5:14b实例健康检查失败时,自动将流量切至phi-3:3.8b,并返回X-Antigravity-Fallback: trueheader,前端可据此显示“已降级为轻量模式”。
实测对比(同一 Ubuntu 机器):
| 场景 | 无 Antigravity(直连 LMStudio) | Antigravity 路由 |
|---|---|---|
| P50 延迟 | 840ms | 720ms |
| P99 延迟 | 3200ms | 1180ms |
| 内存波动 | ±1.2GB | ±180MB |
可见,Antigravity 的价值不在峰值性能,而在消除长尾抖动——这对开发者体验至关重要。没人能忍受“99% 的时候秒回,1% 的时候卡住 3 秒”。
4.2 Claude Code 的不可替代性:语义理解的深度
Claude Code 的核心优势,在于其训练数据中高达 42% 的代码相关语料(GitHub Issues、Stack Overflow、PR Comments),使其对开发者的“潜台词”有极强捕捉能力。例如,当你在 Cursor 中输入:// fix the race condition in this useEffect
Claude Code 不会只看useEffect的代码块,而是会:
- 检查
deps数组中是否包含setState函数(典型 race condition 诱因); - 扫描组件中是否存在
useRef存储的isMounted标志; - 分析
eslint-plugin-react-hooks的 warning 规则是否启用; - 最终生成的修复代码,会精确插入
if (!isMounted.current) return;,而非泛泛的return。
对比实验:
用同一 prompt// make this axios call retry on network error测试:
- Qwen2.5:14b(本地):生成带
axiosRetry的配置,但未处理AbortController的 cleanup,存在内存泄漏风险; - Claude Code(云端):生成完整方案,包含
AbortController实例的useEffect cleanup、retryDelay的指数退避逻辑、以及onRetry回调中更新 UI 的示例。
这印证了一个事实:superpowers 的上限,由语义理解的深度决定,而非算力的厚度。
4.3 协同工作流:用 Codex CLI 拉通 Antigravity 与 Claude Code
真正的生产力爆发点,在于让三者形成闭环。以下是我们团队的标准工作流:
# 1. 用 Codex CLI 抓取问题上下文(本地,零额度消耗) codex snapshot --file ./context.json --env --process # 2. 用 Antigravity 路由到最优模型分析(毫秒级) codex /model antigravity --host http://localhost:8080 \ analyze --file context.json \ "diagnose memory leak in Node.js process, suggest GC tuning" # 3. 将分析结论作为 prompt,交由 Claude Code 执行修复(高精度) cursor edit --file src/server.js \ "apply GC tuning based on antigravity analysis: increase max_old_space_size to 6144, add --optimize_for_size flag"整个流程中,Codex CLI 是“侦察兵”,Antigravity 是“指挥官”,Claude Code 是“特种兵”。它们各司其职,又无缝衔接——这才是 superpowers 的本质:不是某个工具多强大,而是整套工具链如何像人体神经系统一样,把感知、决策、执行融为一体。
5. 从 superpowers 到 superhuman:开发者能力边界的再定义
写到这里,我已经在 Terminal 里敲了 17 个codex命令、在 Cursor 中完成了 9 次Cmd+K、重装了 4 次 Node.js、调试了 3 个不同版本的 LMStudio。这些操作本身并不酷炫,但它们共同指向一个被忽略的事实:superpowers 的真正门槛,从来不是技术,而是认知重构。
过去十年,开发者的核心竞争力是“掌握多少框架、熟悉多少 API、记住多少命令”。而 superpowers 时代,核心竞争力变成了“如何精准定义问题、如何构造有效上下文、如何评估模型输出的可靠性”。一个能用codex /resume连续 5 次追问,最终让 Qwen2.5 推导出 Kubernetes StatefulSet 中volumeClaimTemplates的 PVC 名称冲突问题的工程师,其价值远高于能手写 1000 行 Helm Chart 的工程师——因为前者在训练“提问能力”,后者在训练“记忆能力”。
我见过最震撼的案例,是一位 55 岁的嵌入式 C 工程师。他完全不懂 Python,但用 Codex CLI + Cursor,三天内完成了一个 STM32F4 的固件升级工具:
- 第一天:
codex explain "how does DFU mode work on STM32?"→ 生成原理图和 USB 描述符分析; - 第二天:
codex generate --lang python "parse dfu file format, extract firmware binary"→ 生成可运行的 Python 解析器; - 第三天:
cursor edit --file stm32_updater.py "add progress bar using tqdm, handle USB timeout"→ 完善交互体验。
他没写一行 Python,却交付了一个生产级工具。这不是偷懒,而是把几十年积累的“硬件问题定义能力”,迁移到了新的工具链上。
所以,别再问“superpowers 怎么安装”。真正的安装,发生在你第一次意识到“我不需要记住git rebase -i的所有选项,我只需要告诉 Codex CLI ‘把最近 5 次 commit 合并为 1 个,并重写 commit message’”的那一刻。那一刻,你不是在使用工具,你是在进化。
最后分享一个小技巧:在 Cursor 中,按Cmd+Shift+P打开命令面板,输入Developer: Toggle Developer Tools,在 Console 中执行:
localStorage.setItem('cursor.superpowers.mode', 'true'); location.reload();你会看到右下角多出一个闪电图标——它不开启任何新功能,只是提醒你:超能力已经就绪,现在,去定义下一个问题。