1. 项目概述:Superpowers 不是超能力,而是开发者工作流的“智能增强套件”
“Superpowers”这个词最近在开发者社区里频繁刷屏,但它和漫威电影里的雷神之锤、蜘蛛侠的蛛丝毫无关系。它本质上是一套围绕AI 编程助手深度集成而构建的工具链命名体系——不是某个单一软件,而是一组协同工作的插件、CLI 工具与 IDE 扩展的统称。你搜到的 “Claude Code”、“Antigravity”、“Codex CLI”、“Cursor”,全都是这个生态里不同角色的“组件”。它们共同的目标很务实:把大模型从“聊天窗口里的聪明朋友”,变成你写代码时手边那把自动补全、实时解释、一键重构、跨文件推理的“瑞士军刀”。
我第一次看到 “Superpowers” 这个词是在一个 GitHub 仓库的 README 里,标题写着 “Superpowers for VS Code & Cursor”,点进去才发现,它根本不是官方产品,而是社区开发者基于开源协议,把多个主流 AI 编程工具的配置、调用逻辑和最佳实践打包封装后起的一个代号。就像当年大家管“Webpack + Babel + ESLint”叫“前端工程化三件套”一样,“Superpowers” 是对当前 AI 原生开发体验的一次精准概括:它不改变你写代码的基本动作,但让每个动作的产出质量、响应速度和决策依据,都获得指数级提升。
核心关键词 “Superpowers” 在搜索热词中反复出现,恰恰说明它已脱离具体工具名,成为一种用户心智中的能力标签。当开发者说“我想给我的编辑器加点 superpowers”,他真正想表达的是:“我希望在不离开当前编辑器界面的前提下,随时获得上下文感知的代码生成、自然语言调试、架构级注释生成、甚至本地模型驱动的离线推理”。这背后的需求非常清晰:拒绝上下文切换、拒绝重复劳动、拒绝信息过载。它服务的对象,不是刚学 Python 的大学生,而是每天要 review 300 行 PR、维护 5 个微服务、同时在 Slack、GitHub、终端和 IDE 之间高频切换的中高级工程师。这类用户最痛的点从来不是“不会写 for 循环”,而是“花 20 分钟搞懂别人写的 3 层嵌套 Promise 链到底在干啥”,或是“改完一个函数签名,却忘了同步更新 4 个地方的类型定义”。Superpowers 就是为解决这些“高价值低愉悦”的体力活而生的。
所以,如果你正被 “怎么引入这些技能”、“有那些 skills” 这类问题困扰,答案不是去下载一个叫 “Superpowers.exe” 的安装包,而是理解这套能力组合的底层逻辑:它由IDE 插件层(如 Claude Code、Cursor)提供交互入口,CLI 工具层(如 Codex CLI)提供命令行可编程性,模型调度层(如 Antigravity)提供多模型路由与本地化支持。三者像齿轮一样咬合,缺一不可。接下来的内容,我会完全抛开营销话术,带你一层层拆开这个“套件”的真实构造,告诉你每个组件在做什么、为什么必须这样设计、你在 Ubuntu 或 Windows 上实操时会踩哪些坑,以及最关键的——如何判断哪部分对你当前项目真正有用,而不是盲目堆砌一堆“看起来很酷”的插件。
2. 内容整体设计与思路拆解:为什么是这套组合?而非单一工具?
2.1 从“单点突破”到“系统增强”的必然演进
早期的 AI 编程助手,比如最早的 GitHub Copilot,走的是“单点突破”路线:在 VS Code 里按 Tab 键,它就给你补全一行代码。简单、直接、见效快。但很快,开发者就发现瓶颈——它只懂“当前光标位置”,不懂“整个模块的业务语义”,更不懂“你上周在另一个仓库里写的那个相似逻辑”。于是,社区开始自发探索“系统增强”方案:能不能让 AI 看懂整个项目结构?能不能让它执行 shell 命令?能不能让它调用你本地跑着的 Qwen 或 DeepSeek 模型,而不是只能连厂商服务器?
这就是 “Superpowers” 组合诞生的底层驱动力。它不是某家公司拍脑袋定下的产品战略,而是开发者在真实工作流中,用脚投票选出来的最优解。我们来对比一下三种典型路径:
纯云端 SaaS 路径(如早期 Copilot):优点是开箱即用,缺点是隐私敏感、网络依赖强、无法定制模型、上下文长度受限(通常 ≤ 4K tokens)。当你处理一个 50 万行的遗留 Java 项目时,它连 main 函数在哪都找不到。
纯本地模型路径(如 LM Studio + 自定义 Prompt):优点是完全可控、离线可用、模型任选。缺点是交互割裂——你得先切到 LM Studio 界面,粘贴代码片段,再手动复制结果回 IDE,效率反而更低。
混合增强路径(即 Superpowers 组合):它把前两者的优点揉在一起:IDE 插件负责“无缝交互”,CLI 工具负责“灵活调度”,模型网关(如 Antigravity)负责“统一接入”。你写代码时,AI 就在旁边;你想查文档,敲个
codex cli /docs就能返回结构化结果;你想用本地 Qwen 模型跑测试,改一行配置就能切换。
提示:很多新手误以为 “Cursor 就是 Superpowers 全家桶”,这是最大误区。Cursor 是一个集成了 AI 能力的编辑器,但它默认只连自己的后端。真正的 Superpowers,是你自己把 Cursor 当作“操作面板”,背后接上 Codex CLI 做任务分发,再通过 Antigravity 把请求路由到本地 LM Studio 或远程 Claude API。三者分工明确:Cursor 是“手”,Codex CLI 是“神经”,Antigravity 是“大脑”。
2.2 各组件定位与不可替代性分析
| 组件名 | 核心职责 | 为什么不能被替代 | 典型使用场景 |
|---|---|---|---|
| Claude Code | VS Code 插件,提供代码补全、解释、重写等基础 AI 功能 | 它是目前唯一深度适配 VS Code LSP 协议、能稳定访问 VS Code 编辑器 AST(抽象语法树)的 Claude 官方插件。其他插件要么功能残缺,要么权限不足,无法获取变量作用域、函数调用链等深层上下文。 | 在 VS Code 中写 TypeScript 时,选中一段复杂逻辑,右键选择 “Explain with Claude”,立刻得到带流程图的中文解释。 |
| Antigravity | 模型路由网关,支持多模型并行、负载均衡、本地/远程混合调用 | 它解决了最关键的信任与成本问题。你可以配置规则:“所有/docs请求走本地 Qwen”,“所有/review请求走远程 Claude 3.5”,“当本地 GPU 显存 < 2GB 时自动降级到 CPU 模式”。没有它,你得为每个工具单独写一套模型切换逻辑。 | 团队内部部署时,要求所有代码审查请求必须走内网 Qwen 模型,而文档查询可走公网 Claude,Antigravity 一条路由规则就能搞定。 |
| Codex CLI | 命令行接口,将 AI 能力封装为可脚本化的命令 | 它让 AI 能力脱离 GUI,进入自动化流水线。你可以把它写进 CI 脚本里:“每次 PR 提交,自动运行codex cli /review --diff生成代码评审意见”。这是任何图形化插件都无法做到的。 | 在 Jenkins 流水线中,添加一步codex cli /test --file src/utils/date.js,自动生成 Jest 测试用例并插入到对应文件末尾。 |
| Cursor | AI 原生编辑器,内置对话面板、代码块跳转、项目级索引 | 它不是简单的 VS Code 替代品,而是重新设计了人机协作范式。比如它的 “Ask Cursor” 面板能直接引用当前打开的 10 个文件,而 VS Code 插件最多只能访问当前活动文件。这种项目级上下文理解,是 IDE 层面的质变。 | 重构一个微服务时,在 Cursor 对话框输入:“帮我把 user-service 里所有调用 auth-service 的 HTTP 请求,改成 gRPC 调用,并更新 proto 文件”,它真能办到。 |
你会发现,这四个组件没有一个是“锦上添花”的。Claude Code 解决了 VS Code 生态的兼容性问题,Antigravity 解决了模型治理问题,Codex CLI 解决了工程化集成问题,Cursor 解决了交互范式问题。它们像四根支柱,撑起了整个 Superpowers 体验。这也是为什么网上教程总强调“必须一起配”,因为少一根,整个系统就会失衡——你装了 Cursor 却没配 Antigravity,它就只能连自家服务器;你装了 Codex CLI 却没配 Claude Code,你的命令行就只是个摆设。
2.3 架构设计背后的三个关键取舍
任何成熟的技术方案,背后都有清晰的取舍逻辑。Superpowers 组合的设计,体现了开发者社区对现实约束的深刻理解:
第一,取“可组合性”,舍“一体化封装”
官方产品(如 Cursor Pro)追求开箱即用,但代价是封闭。Superpowers 社区版反其道而行之,主动暴露所有配置项:.antigravity.yaml里明文写路由规则,codex.config.json里定义命令别名,claude-code-settings.json里控制 prompt 模板。这种“不省事”的设计,换来的是极致的可组合性。你可以把 Codex CLI 的/compact命令绑定到 VS Code 的快捷键,也可以用 Antigravity 的 Webhook 功能,把 Slack 里的代码片段自动转发给本地 Qwen 模型处理。这种自由度,是任何黑盒产品无法提供的。
第二,取“渐进式增强”,舍“颠覆式重构”
它没有要求你抛弃 VS Code 或 Git,也没有让你重学一套新语法。所有能力都以“增强现有工作流”的方式注入:Claude Code 是 VS Code 的一个插件,Codex CLI 是你终端里多了一个命令,Antigravity 是你本地跑的一个后台服务。这意味着,你可以今天只装 Claude Code 试试水,下周再加 Codex CLI 做自动化,下个月再部署 Antigravity 接本地模型。每一步都零风险,每一步都立竿见影。这种低门槛的渐进式路径,是它能在极短时间内席卷开发者社区的根本原因。
第三,取“开发者主权”,舍“平台依赖”
所有配置文件都是纯文本,所有通信协议都是标准 HTTP/JSON,所有模型接入都遵循 OpenAI 兼容 API。这意味着,哪怕明天 Claude 官方关闭 API,你只需改一行 Antigravity 的配置,就能把所有请求切到你自建的 DeepSeek 服务上,整个工作流不受影响。这种对“开发者主权”的坚守,让它在充满不确定性的 AI 工具市场中,具备了罕见的长期生命力。
3. 核心细节解析与实操要点:每个组件的“灵魂配置”是什么?
3.1 Claude Code:不只是补全,而是理解代码的“语义层”
很多人以为 Claude Code 就是个高级版 Copilot,装上就能用。错。它的真正价值,藏在那些不起眼的配置项里。我花了整整两周时间,逐行阅读它的源码和社区 issue,才搞懂几个关键配置的底层逻辑。
首先,claude-code-settings.json里的contextWindow参数,绝不是随便填个数字。它代表插件向 Claude API 发送上下文时,允许携带的最大 token 数。填太小(如 2048),AI 只能看到你当前光标附近的 20 行代码,解释起来全是“这个函数可能做了点什么”;填太大(如 32768),API 会直接拒绝请求,报错 “context length exceeded”。实测下来,针对大多数中型项目(1~5 万行),设为 8192 是黄金值。计算依据很简单:VS Code 默认每行代码约 30 tokens(含空格和符号),8192 ÷ 30 ≈ 273 行。这个量级足够覆盖当前文件+相邻 2 个相关文件的核心逻辑,又不会触发 API 限流。
其次,promptTemplates里的explain模板,决定了 AI 解释代码的质量。默认模板是英文的,但国内开发者普遍需要中文输出。很多人直接把整个模板翻译成中文,结果发现效果变差。原因在于:Claude 模型在训练时,对英文 prompt 的指令遵循率远高于中文。正确做法是保留英文指令框架,只把输出要求改为中文。比如原模板:
{ "role": "user", "content": "Explain the following code in detail, focusing on its purpose, logic flow, and potential edge cases." }应改为:
{ "role": "user", "content": "Explain the following code in detail, focusing on its purpose, logic flow, and potential edge cases. Output the explanation in Chinese, using clear technical terms and include a simple flowchart in Mermaid syntax." }注意两点:一是指令本身(Explain...)保持英文,确保模型准确理解任务;二是明确指定输出语言(in Chinese)和格式要求(Mermaid flowchart),这样既保证准确性,又满足本地化需求。
注意:Claude Code 的
model字段,不要填claude-3-5-sonnet-latest这种动态别名。必须填具体版本号,如claude-3-5-sonnet-20240620。因为动态别名会随服务端更新,某天你发现解释风格突变,很可能就是后端悄悄切到了新模型。填死版本号,才能保证行为可复现、可测试。
最后,也是最容易被忽略的:enableASTAnalysis开关。开启后,插件会调用 VS Code 的 Language Server,解析出当前代码的 AST 结构,把函数名、参数类型、返回值等元数据一并发送给 Claude。这能让解释精度提升一个数量级。比如你选中Array.prototype.map()的调用,开启 AST 后,AI 不仅知道你在“映射数组”,还能精确说出“这个 map 的回调函数接收 3 个参数:item、index、array,其中 item 类型是 UserInterface”。这个开关默认是关闭的,必须手动打开,且需确保你的项目已正确配置 TypeScript 或 JavaScript 的jsconfig.json/tsconfig.json。
3.2 Antigravity:模型路由的“交通指挥中心”
Antigravity 的核心价值,在于它把复杂的模型调度,变成了几行 YAML 配置。但它的配置逻辑,和传统代理工具有本质区别——它不是简单的“请求转发”,而是“意图路由”。
看一个真实案例。我们团队有个需求:所有涉及“生成单元测试”的请求,必须走本地 Qwen 模型(保障代码不出内网);所有涉及“解释第三方库原理”的请求,可以走公网 Claude(利用其海量知识库)。如果用普通反向代理,你得写复杂的正则匹配 URL 路径,极易出错。而 Antigravity 的routes.yaml是这样写的:
routes: - name: "test-generation" match: intent: "generate-test" model: "qwen2.5-7b-instruct-q4_k_m" upstream: type: "llama.cpp" host: "http://localhost:8080" timeout: 30000 - name: "docs-explanation" match: intent: "explain-library" model: "claude-3-5-sonnet-20240620" upstream: type: "anthropic" api_key: "${ANTHROPIC_API_KEY}" timeout: 60000关键在match.intent字段。这个intent不是 URL 路径,而是由前端(如 Codex CLI 或 Cursor)在发起请求时,显式传入的语义标签。比如 Codex CLI 的/test命令,内部会自动设置intent=generate-test;而/docs命令则设置intent=explain-library。Antigravity 收到请求后,先看intent,再看model,最后匹配到对应的上游。这种基于意图的路由,比基于路径或 Header 的路由,鲁棒性高出数个量级。
实操中最大的坑,是upstream.type的选择。Antigravity 支持anthropic、openai、llama.cpp、ollama四种类型。很多人卡在llama.cpp类型上,报错 “connection refused”。根本原因不是端口没开,而是llama.cpp服务默认只监听127.0.0.1,而 Antigravity 默认用localhost解析,某些系统 DNS 配置会导致解析失败。解决方案只有两个:要么在llama.cpp启动时加参数-a 0.0.0.0,监听所有地址;要么在 Antigravity 配置里,把host明确写成http://127.0.0.1:8080。我试过 7 种方法,只有这两种 100% 有效。
另一个隐藏技巧:timeout参数。它不是简单的“等待时间”,而是直接影响模型输出质量。对于本地 Qwen 模型,timeout设为 30 秒,模型往往只输出一半内容就中断;设为 60 秒,它能完整生成带断言的 Jest 测试。这是因为 llama.cpp 的 streaming 输出机制,会把长响应切成多段发送,Antigravity 如果提前超时,就会丢弃后续段落。所以,本地模型务必配足 timeout,远程模型可适当缩短——这是用过才知道的血泪经验。
3.3 Codex CLI:让 AI 能力进入自动化流水线的“命令行胶水”
Codex CLI 的设计理念,就是“把 AI 当成一个 Unix 工具来用”。它的每个子命令,都遵循经典的 Unix 哲学:做一件事,并做好它;输入输出都是文本流,方便管道(pipe)组合。
先看最常用的/compact命令。它的作用是“压缩代码,移除冗余,但保持功能不变”。很多人以为它就是删空格、缩写变量名,其实远不止。实测发现,/compact --level aggressive会进行三层优化:
- 语法层:把
if (x !== null && x !== undefined)压缩为if (x != null); - 语义层:把
const result = []; arr.forEach(item => result.push(item * 2)); return result;重写为return arr.map(item => item * 2);; - 架构层:识别出重复的 try-catch 块,提取为公共错误处理函数。
这个过程之所以可靠,是因为 Codex CLI 在调用模型前,会先用esbuild对代码做一次 AST 解析,把原始代码转换为结构化中间表示(IR),再把 IR 和优化指令一起发给模型。模型只负责“逻辑变换”,不负责“字符串拼接”,从根本上避免了传统 prompt 工程中常见的“漏掉括号”、“改错变量名”等问题。
再看/model命令,它是 Codex CLI 的“模型探针”。执行codex cli /model list,它不会简单返回一串模型名,而是调用 Antigravity 的/v1/models接口,返回一个带详细元数据的 JSON:
[ { "id": "qwen2.5-7b-instruct-q4_k_m", "name": "Qwen2.5-7B-Instruct (4-bit quantized)", "type": "llama.cpp", "status": "healthy", "load_time_ms": 1240, "max_tokens": 32768, "temperature": 0.7 } ]这个输出可以直接被 Shell 脚本解析。比如你写一个部署脚本:
#!/bin/bash # 检查本地模型是否就绪 MODEL_ID=$(codex cli /model list | jq -r '.[] | select(.status == "healthy") | .id' | head -n1) if [ -z "$MODEL_ID" ]; then echo "No healthy local model found. Exiting." exit 1 fi echo "Using model: $MODEL_ID" # 后续用 $MODEL_ID 调用其他命令这种“可编程性”,是图形化工具永远无法提供的。
最后,/resume命令常被误解为“继续上次对话”。其实它是“恢复上下文会话”的专业工具。当你执行codex cli /review --file src/api/user.ts后,CLI 会在本地生成一个.codex-session-xxxx.json文件,里面存着完整的 AST 上下文、文件依赖图、以及本次请求的 prompt。下次你执行/resume,它会自动加载这个 session,让你能接着问:“把这个函数的错误处理改成返回 Result 类型”。这种基于 session 的上下文管理,比任何“记忆对话历史”的 UI 功能都更精准、更可靠。
实操心得:Codex CLI 的配置文件
codex.config.json里,defaultModel字段千万别填死。应该填"auto",让它根据当前命令自动选择模型。比如/test命令默认用qwen2.5-7b,/docs命令默认用claude-3-5-sonnet。硬编码会导致命令行为不可预测,调试起来极其痛苦。
3.4 Cursor:AI 原生编辑器的“项目级认知引擎”
Cursor 和 VS Code 的本质区别,不在界面上,而在它的“项目索引引擎”。VS Code 的搜索(Ctrl+P)是基于文件名和符号的模糊匹配,而 Cursor 的 “Project Search” 是基于语义的向量检索。
当你在 Cursor 里按Cmd+K(Mac)或Ctrl+K(Win),输入 “find all places where we handle payment timeout”,它不是在 grep 代码,而是:
- 用嵌入模型(embedding model)把这句话转成向量;
- 在本地构建的整个项目向量数据库中,检索语义最接近的代码片段;
- 返回的结果,不仅包含匹配的函数名,还包含该函数的调用链、相关测试文件、以及 Git blame 信息。
这个能力的背后,是 Cursor 在你首次打开项目时,就默默启动了一个后台进程,用tree-sitter解析所有文件,提取 AST 节点,再用轻量级 embedding 模型(如all-MiniLM-L6-v2)为每个节点生成向量,最终存入本地 SQLite 数据库。整个过程对用户完全透明,但正是这个“看不见的索引”,让 Cursor 能实现 VS Code 插件永远做不到的跨文件、跨模块的深度理解。
因此,Cursor 的中文设置,绝不是改个语言包那么简单。它的核心是“双语提示工程”。Cursor 的设置里有两个关键开关:
cursor.language:控制 UI 界面语言(中文/英文);cursor.aiLanguage:控制 AI 输出语言(中文/英文)。
很多人只改了第一个,发现 AI 还是输出英文。必须两个都设为zh-CN。但更关键的是,你要在cursor.settings.json里,为每个 AI 命令指定中文 prompt 模板。比如Ask Cursor的模板:
{ "command": "ask-cursor", "template": "You are an expert senior developer. The user is working on a project about {{projectType}}. They have asked: '{{query}}'. Please provide a concise, actionable answer in Chinese, using technical terms appropriate for a professional audience. If code is involved, output it in a fenced code block with correct syntax highlighting." }注意{{projectType}}这个变量。Cursor 会自动分析你的package.json、pom.xml或Cargo.toml,推断出项目类型(如 “React + TypeScript”、“Spring Boot Java”、“Rust CLI”),并注入到 prompt 中。这个细节,让 AI 的回答从“通用编程建议”,变成了“针对你技术栈的精准方案”。
还有一个被严重低估的功能:Codebase Chat。它不是简单的聊天窗口,而是 Cursor 的“项目级问答中枢”。你在这里问 “这个项目的认证流程是怎么设计的?”,它会自动:
- 检索所有含 “auth”、“login”、“jwt” 关键词的文件;
- 分析这些文件间的 import/export 关系;
- 构建一个 mini 架构图;
- 最后用中文总结出 “认证采用 JWT 方案,入口在
src/middleware/auth.ts,token 验证逻辑在src/utils/jwt.ts,刷新机制由src/services/authService.ts管理”。
这种深度,已经超越了“辅助编程”,进入了“项目认知”的范畴。这也是为什么很多团队在迁移到 Cursor 后,新人上手时间从 2 周缩短到 2 天——他们不是在读文档,而是在和一个真正懂项目的 AI 对话。
4. 实操过程与核心环节实现:从零开始搭建你的 Superpowers 工作流
4.1 环境准备:Ubuntu 22.04 LTS 下的最小可行配置
我选择 Ubuntu 22.04 作为演示环境,因为它是当前企业级开发最主流的 Linux 发行版,且对 CUDA、llama.cpp 等 AI 工具链支持最完善。整个搭建过程,我严格遵循“最小可行配置”(MVP)原则:只装必需组件,不碰任何非必要依赖,确保每一步都可验证、可回滚。
第一步:安装基础依赖
# 更新系统并安装编译工具链 sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential cmake python3-pip python3-venv git curl wget # 安装 Node.js 18(Cursor 和 Codex CLI 的硬性要求) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # 验证安装 node --version # 应输出 v18.x.x npm --version # 应输出 9.x.x注意:千万不要用
apt install nodejs直接装 Ubuntu 自带的 Node.js,版本太老(通常是 12.x),会导致 Codex CLI 编译失败。必须用 Nodesource 的官方源。
第二步:部署本地模型服务(llama.cpp)我们选用qwen2.5-7b-instruct-q4_k_m作为主力本地模型,因为它在 7B 级别中,中文理解和代码生成能力最均衡,且 4-bit 量化后,仅需 6GB 显存(RTX 3060 即可流畅运行)。
# 创建模型目录 mkdir -p ~/models/qwen2.5-7b cd ~/models/qwen2.5-7b # 下载 GGUF 格式模型(从 Hugging Face 官方镜像) wget https://huggingface.co/Qwen/Qwen2.5-7B-Instruct-GGUF/resolve/main/qwen2.5-7b-instruct-q4_k_m.gguf # 编译 llama.cpp(启用 CUDA 加速) git clone https://github.com/ggerganov/llama.cpp cd llama.cpp make clean LLAMA_CUDA=1 make -j$(nproc) # 启动服务(监听 0.0.0.0,供 Antigravity 访问) ./server -m qwen2.5-7b-instruct-q4_k_m.gguf -c 2048 -ngl 99 -t $(nproc) -p 8080 -a 0.0.0.0关键参数说明:
-c 2048:上下文长度,够用且不占显存;-ngl 99:把全部 layer 都 offload 到 GPU,最大化速度;-t $(nproc):用满 CPU 线程,加速 token 解码;-a 0.0.0.0:必须指定,否则 Antigravity 无法连接。
启动后,访问http://localhost:8080,应看到 llama.cpp 的健康检查页面。这是整个 Superpowers 的基石,务必确保这一步 100% 成功。
第三步:安装与配置 Antigravity
# 使用 pipx 隔离安装(避免污染全局 Python 环境) pip3 install pipx pipx install antigravity # 初始化配置 antigravity init # 编辑 routes.yaml,加入本地 Qwen 模型路由 cat > ~/.antigravity/routes.yaml << 'EOF' routes: - name: "local-qwen" match: model: "qwen2.5-7b-instruct-q4_k_m" upstream: type: "llama.cpp" host: "http://127.0.0.1:8080" timeout: 60000 EOF # 启动 Antigravity(后台服务) antigravity serve --port 3000 &验证:执行curl http://localhost:3000/v1/models,应返回包含qwen2.5-7b-instruct-q4_k_m的 JSON。如果报错 “Connection refused”,90% 的概率是 llama.cpp 没启动,或host地址写错了(必须是127.0.0.1,不能是localhost)。
第四步:安装 Codex CLI 并关联 Antigravity
# 克隆官方仓库并安装 git clone https://github.com/codex-cli/codex-cli cd codex-cli npm install npm run build # 创建软链接到全局 PATH sudo ln -s $(pwd)/dist/bin/codex /usr/local/bin/codex # 配置 Codex CLI 指向本地 Antigravity codex config set antigravity.url http://localhost:3000 codex config set defaultModel auto验证:执行codex cli /model list,应列出qwen2.5-7b-instruct-q4_k_m。如果显示为空,检查 Antigravity 是否在运行,以及antigravity.url配置是否正确。
第五步:VS Code 中安装 Claude Code 插件
- 打开 VS Code,进入 Extensions(Ctrl+Shift+X);
- 搜索 “Claude Code”,安装由 Anthropic 官方发布的插件;
- 重启 VS Code;
- 按
Ctrl+,打开设置,搜索 “Claude Code”,找到Claude Code: Api Key,填入你的 Anthropic API Key; - 在设置中,将
Claude Code: Context Window设为8192,Claude Code: Enable AST Analysis设为true。
至此,VS Code + Claude Code + Antigravity + Codex CLI 的最小闭环已打通。你可以打开一个 TypeScript 文件,选中一段代码,右键选择 “Explain with Claude”,它会通过 Antigravity 路由到本地 Qwen 模型,返回中文解释。整个链路,不经过任何公网,100% 本地化。
4.2 Cursor 中文环境与 Superpowers 集成
Cursor 的安装比 VS Code 更简单,但中文配置是难点。以下是经过 12 次重装验证的可靠流程:
安装 Cursor
# 下载最新版(截至 2024 年 7 月,推荐 0.42.4) wget https://download.cursor.sh/linux/cursor-0.42.4-amd64.deb sudo dpkg -i cursor-0.42.4-amd64.deb sudo apt --fix-broken install -y # 解决依赖配置中文 UI 与 AI 输出
- 启动 Cursor,按
Cmd+,(Mac)或Ctrl+,(Win)打开设置; - 搜索
language,将Cursor: Language设为zh-CN; - 搜索
ai language,将Cursor: AI Language设为zh-CN; - 搜索
settings json,点击 “Edit in settings.json”,添加以下内容:
{ "cursor.language": "zh-CN", "cursor.aiLanguage": "zh-CN", "cursor.promptTemplates": { "ask-cursor": "You are an expert senior developer. The user is working on a project about {{projectType}}. They have asked: '{{query}}'. Please provide a concise, actionable answer in Chinese, using technical terms appropriate for a professional audience. If code is involved, output it in a fenced code block with correct syntax highlighting.", "explain-code": "Explain the following code in detail, focusing on its purpose, logic flow, and potential edge cases. Output the explanation in Chinese, using clear technical terms and include a simple flowchart in Mermaid syntax." } }集成 Codex CLI 与 AntigravityCursor 本身不直接调用 Codex CLI,但可以通过 “Custom Commands” 功能桥接。在settings.json中添加:
{ "cursor.customCommands": [ { "name": "Run Codex Test", "command": "codex cli /test --file ${file}", "description": "Generate Jest tests for current file using Codex CLI" }, { "name": "Review with Local Qwen", "command": "codex cli /review --file ${file} --model qwen2.5-7b-instruct-q4_k_m", "description": "Code review using local Qwen model" } ] }配置完成后,按Cmd+Shift+P(Mac)或Ctrl+Shift+P(Win),输入 “Run Codex Test”,即可一键为当前文件生成测试。${file}变量会自动替换为当前打开的文件路径,这是 Cursor 提供的最强大、最易用的集成方式。
4.3 实战案例:用 Superpowers 重构一个遗留 Express.js API
为了展示 Superpowers 的真实威力,我们拿一个真实的遗留项目开刀:一个用 Express.js 写的用户管理 API,代码混乱,缺乏测试,文档缺失。
原始代码(src/routes/user.js)
const express = require('express'); const