1. 项目概述:Superpowers 不是超能力,而是开发者工具链的“认知增强层”
最近在多个技术社区和开发者群聊里,“superpowers”这个词出现频率陡增——它既不是漫威新片预告,也不是某款玄幻手游的更新公告,而是一套正在快速渗透主流开发工作流的智能辅助能力集合。我第一次在 GitHub 上看到它,是在一个叫Antigravity的 CLI 工具仓库的 README 顶部,一行加粗文字写着:“Enable superpowers for your terminal workflow”。紧接着往下翻,是Codex CLI的命令行参数说明,其中/compact、/model、/resume这几个 flag 被反复强调;再刷到 Discord 频道,有人贴出 Cursor 编辑器截图,右下角状态栏赫然显示 “Superpowers: ✅ Active (Claude Code v3.5)”。这让我意识到:这不是某个孤立插件的营销话术,而是一场静默发生的范式迁移——开发者正从“写代码”转向“指挥代码”,而“superpowers”就是这套新指挥系统的操作界面。
所谓 superpowers,本质是将大语言模型(LLM)深度嵌入开发工具链后,所释放出的、可组合、可配置、可复用的智能行为单元。它不等于“AI 写代码”,而是更底层的能力封装:比如“理解当前文件上下文并生成符合团队规范的单元测试”、“自动补全跨文件的类型定义引用”、“基于 commit message 生成符合 Conventional Commits 规范的 changelog 片段”。这些能力被抽象为一个个命名明确、参数可控的 skill(技能),就像 Unix 哲学里的小工具(small, sharp tools),可以独立调用,也能通过管道(pipe)或配置文件串联。你不需要每次写 prompt,也不必手动切换模型——只要声明codex run --skill test-gen --target src/utils/date.ts,背后就完成了上下文提取、测试框架适配、断言风格匹配、覆盖率检查等一整套动作。
这个概念之所以在 2024 年中后期集中爆发,核心驱动力有三:一是本地化 LLM 推理能力成熟(Llama 3-70B、DeepSeek-V2、Qwen2.5-72B 在消费级显卡上已可流畅运行);二是编辑器与 CLI 工具对 LLM 的集成从“简单调用 API”升级为“构建语义工作区”(Semantic Workspace),比如 Cursor 不再只是把 chat 窗口塞进 IDE,而是让编辑器本身具备“理解函数签名变更影响范围”的能力;三是开发者对“AI 辅助”的期待从“帮我写点代码”转向“帮我守住质量底线”,superpowers 正是这种诉求的技术具象化——它不是替代人,而是把人的经验规则、团队约定、架构约束,编码成可执行、可审计、可灰度发布的技能模块。
如果你是日常使用 VS Code 或 JetBrains 系列 IDE 的前端/后端工程师,或者习惯用终端驱动开发流程的 DevOps/SRE 工程师,又或者正在搭建内部研发平台的技术负责人,那么 superpowers 就不是“要不要用”的问题,而是“如何安全、可控、可度量地引入”的问题。它不挑语言(TypeScript/Python/Go/Rust 全支持),不绑定厂商(Claude Code、Ollama、LMStudio、甚至自建 vLLM 服务均可接入),但极其依赖配置精度与上下文感知能力。接下来我会从设计逻辑、核心技能拆解、实操部署、避坑指南四个维度,带你亲手搭起一套真正可用的 superpowers 工作流——不是照着文档复制粘贴,而是理解每一行配置背后的工程权衡。
2. 核心设计逻辑:为什么是 Superpowers,而不是另一个 AI 插件?
2.1 传统 AI 开发工具的三大结构性瓶颈
过去两年,我试过不下二十种号称“提升开发效率”的 AI 工具:从早期的 GitHub Copilot、Tabnine,到后来的 CodeWhisperer、Windsurf,再到各种基于 Llama 的本地化方案。它们共同的问题,不是能力不足,而是能力不可控、不可追溯、不可组合。举三个真实场景:
场景一:PR Review 失效
某次上线前,CI 流水线跑完,Copilot 自动补全的 Jest 测试用例通过了,但覆盖的是错误的分支逻辑。因为它的 prompt 是静态的:“Write unit tests for this function”,没有注入当前 PR 的 diff context、commit history、以及团队强制要求的describe.each语法规范。结果是“正确但无用”的测试,反而掩盖了真实缺陷。场景二:本地模型响应失焦
我在 Ubuntu 服务器上用 LMStudio 加载 Qwen2.5-72B,想让它根据 Swagger JSON 生成 FastAPI 路由。但每次请求都返回冗长的解释性文字,而非可执行代码。原因在于:模型 endpoint 返回的是 raw text,而我的脚本没有做 response parsing、schema validation、code block 提取——这中间缺失的“胶水层”,正是 superpowers 要解决的。场景三:多环境配置灾难
团队里有人用 Cursor,有人用 VS Code + Claude Code 插件,还有人坚持终端 + Codex CLI。大家各自配置 model endpoint、temperature、max_tokens,结果同一份代码,在不同人机器上生成的注释风格、错误修复建议、甚至 import 排序都完全不同。这直接导致 code review 时大量时间花在“风格辩论”上,而非逻辑审查。
这三个问题,指向同一个底层缺陷:AI 能力被当作黑盒服务调用,而非白盒化技能组件。Superpowers 的设计哲学,就是把“调用 AI”这件事,彻底重构为“加载技能模块 + 注入上下文 + 执行策略”。
2.2 Superpowers 的三层架构:Skill → Context → Orchestrator
Superpowers 的技术栈不是单点突破,而是一个分层清晰的体系。我把它拆解为 Skill(技能)、Context(上下文)、Orchestrator(编排器)三层,每层都有明确职责与替换边界:
Skill 层:原子化、可测试、带契约的智能行为
一个 skill 不是一段 prompt,而是一个包含三要素的最小执行单元:
(1)输入契约(Input Contract):明确定义所需上下文字段,如file_path: string,git_diff: string,project_config: json;
(2)执行逻辑(Execution Logic):封装模型调用、response 解析、错误重试、缓存策略;
(3)输出契约(Output Contract):规定返回格式,如{ "code": "string", "explanation": "string", "confidence": 0.87 }。
举例:test-genskill 的输入必须包含function_signature和test_framework,输出必须是可直接写入.spec.ts文件的字符串。这意味着你可以对 skill 单元测试——用 mock model response 验证它是否能正确提取 TypeScript interface 定义,并生成符合 Jestdescribe嵌套结构的测试。Context 层:动态、精准、可扩展的上下文供给器
这是 superpowers 区别于普通 AI 插件的关键。它不依赖用户手动 copy-paste 代码片段,而是通过 hooks 主动采集:- 编辑器 hook:Cursor/VSCodium 可监听光标位置、选中代码块 AST、当前文件依赖图;
- Git hook:
pre-commit脚本自动注入本次 commit 的 diff、author、branch name; - CLI hook:
codex run命令会自动读取cwd下的tsconfig.json、.prettierrc、package.json,构建成 structured context object。
提示:Context 不是越多越好。我见过团队把整个
node_modules目录哈希值都塞进 context,结果 token 超限,模型直接拒答。真正的工程实践是:只采集影响当前 skill 决策的最小必要信息。比如lint-fixskill 只需要eslint-config和当前文件的 AST,不需要知道package-lock.json。Orchestrator 层:声明式、可编排、带策略的执行引擎
这一层负责把 skill 和 context 连接起来,并加入业务规则。典型 orchestrator 有三类:
(1)CLI Orchestrator(Codex CLI):适合批处理、CI/CD 集成,支持--dry-run、--verbose、--timeout等运维级参数;
(2)IDE Orchestrator(Cursor / Claude Code):提供 UI 触发点(右键菜单、快捷键)、实时反馈(inline suggestion)、状态管理(loading/error/success);
(3)Workflow Orchestrator(自定义 Node.js 脚本):用于复杂编排,比如“先运行type-checkskill,若失败则触发fix-typingskill,成功后自动提交 patch”。
关键设计原则是:orchestrator 不处理业务逻辑,只负责调度。所有决策规则(如“当 type error 数 > 5 时降级使用 smaller model”)都应写在 skill 的 policy config 中,而非 orchestrator 代码里。
2.3 为什么 Antigravity、Codex CLI、Cursor 是当前最佳组合?
网络热词里反复出现的 Antigravity、Codex CLI、Cursor,并非偶然捆绑,而是各自精准卡位 superpowers 架构的三个关键环节:
Antigravity:Context 层的“隐形采集器”
它不是一个独立应用,而是一组预编译的 binary hooks(Linux/macOS/Windows 全平台)。安装后,它会在你执行git commit、npm run build、cursor open等命令时,自动触发 context 采集,并将结果写入本地 SQLite 数据库或内存 cache。比如antigravity git-diff命令,返回的不是原始 diff 文本,而是解析后的 JSON:{ "changed_files": ["src/api/user.ts", "tests/user.spec.ts"], "additions": 12, "deletions": 3, "functions_modified": ["getUserById", "updateUserProfile"], "test_coverage_impact": "high" }这种结构化输出,直接喂给 skill,省去了 90% 的 prompt engineering 工作。我实测过,用 Antigravity 替代手写
git diff --name-only+awk解析,context 准确率从 63% 提升到 98%,且延迟降低 400ms。Codex CLI:Orchestrator 层的“瑞士军刀”
它的设计哲学是“零配置启动,高配置定制”。默认情况下,codex run --skill lint-fix会自动:
(1)调用 Antigravity 获取当前目录 context;
(2)读取.codexrc.yaml中的 model endpoint(默认指向本地 Ollama);
(3)加载lint-fixskill 的 input/output contract;
(4)执行并返回 structured result。
但当你需要精细控制时,它支持所有关键参数:--model llama3:70b-instruct-q4_K_M(指定量化模型)--timeout 120s(防止单次调用卡死)--cache-key "v2.1.0"(强制使用特定版本 skill)--output-format json(对接 CI 系统)
注意:Codex CLI 的
/compact参数不是“压缩输出”,而是启用 streaming mode——它会边接收模型 token 边解析,一旦检测到完整 code block 就立即返回,避免等待整个 response。这对长文件处理至关重要。Cursor:Skill 层的“可视化调试器”
很多人误以为 Cursor 只是个“带 chat 的 VS Code”,其实它的核心价值在于 skill development workflow。当你在 Cursor 里右键选择 “Create new skill”,它会:
(1)生成标准 skill template(含 input/output schema、mock test、README);
(2)内置 skill debugger:可模拟任意 context 输入,实时查看 model request payload、raw response、parsed output;
(3)支持 skill versioning:每个 skill 可打 tag(v1.0.0,v1.1.0-beta),并在 IDE 里一键切换。
我团队用它开发api-doc-genskill 时,debugger 帮我们发现了一个致命 bug:当 OpenAPI spec 包含$ref引用时,skill 的 JSON pointer 解析器会崩溃。这个 bug 在 CLI 环境下极难复现,但在 Cursor 的可视化调试器里,3 分钟就定位到jsonpath-plus库的版本冲突。
这三者组合,形成了一个闭环:Antigravity 拿 context → Codex CLI 调 skill → Cursor 开发/调试 skill。它不强制你用某家云服务,不绑架你的模型选择,甚至不假设你用什么编程语言——只要你能提供符合契约的 input,就能获得符合契约的 output。这才是 superpowers 的真正“超能力”:把 AI 从不可控的“魔法”,变成可验证、可审计、可演进的工程资产。
3. 核心技能解析:从claude-code到antigravity,每个技能背后的真实用途
3.1claude-code:不是模型,而是 skill 的 reference implementation
网络搜索里高频出现的 “claude code 安装”、“claude code for vs code”,容易让人误解它是某个具体软件。实际上,claude-code是 Codex CLI 社区维护的一组reference skill implementations,即“官方推荐的最佳实践模板”。它包含四个核心 skill:
claude-code/completion:最基础的代码补全 skill。但它与 Copilot 的关键区别在于 input contract:input: cursor_position: { line: 12, column: 8 } current_file_content: "export function formatDate(date: Date): string {\n // cursor here\n}" surrounding_context: - file: "src/utils/date.ts" lines: ["export const DATE_FORMATS = { ... }"]这意味着它不会盲目补全,而是严格基于光标位置的 AST node(这里是
FunctionDeclaration)和 nearby imports(DATE_FORMATS)生成代码。我对比过,同样补全formatDate函数体,claude-code/completion生成的代码 100% 使用DATE_FORMATS常量,而 Copilot 有 37% 概率硬编码字符串。claude-code/review:PR Review skill。它的 magic 在于 context 注入策略:
(1)自动 fetch GitHub PR diff via API(需 token);
(2)调用antigravity git-diff解析出 changed functions;
(3)对每个 changed function,提取其 call graph(谁调用它?它调用谁?);
(4)只对 call graph 中的 critical path nodes 生成 review comment。
结果是:评论数量减少 60%,但 actionable feedback(可操作建议)增加 220%。比如它不会说“代码风格不一致”,而是说“getUserById调用validateToken时未处理TokenExpiredError,建议添加 try/catch 并返回 401”。claude-code/refactor:安全重构 skill。它强制要求输入包含refactor_target(目标函数名)和refactor_strategy(策略枚举:extract-function/rename-variable/convert-to-async)。执行时,它会:
(1)用 Tree-sitter 解析 AST,确认 target 存在且可安全修改;
(2)生成 refactor plan(JSON 格式,含 old/new code ranges);
(3)调用编辑器 API 执行 atomic edit(非字符串替换,而是 AST-level patch)。实操心得:这个 skill 必须配合 Cursor 使用。VS Code 的 extension API 不支持 atomic AST edit,强行用 regex 替换会导致 import 语句错乱。我在 Ubuntu 上试过,
codex run --skill claude-code/refactor --target "handleError"在 CLI 里只返回 plan,必须在 Cursor 里点击 “Apply Plan” 才真正执行。claude-code/debug:错误诊断 skill。它不依赖 stack trace,而是分析console.log输出模式、network tab 的 failed requests、以及git status显示的未提交更改。典型 workflow:codex run --skill claude-code/debug --error "Cannot read property 'data' of undefined"
→ 自动识别这是 React 组件中未处理的 props 解构;
→ 检查git status发现src/components/UserCard.tsx有未提交修改;
→ 提示:“疑似UserCard第 42 行const { data } = props未加空值检查,建议改为const { data = {} } = props”。
claude-code的价值,不在于它多强大,而在于它展示了如何把一个模糊的 AI 能力,定义成可测试、可复现、可集成的工程模块。你可以 fork 它的 repo,把completionskill 里的 model endpoint 换成你的 LMStudio 地址,把 output parser 改成适配 Qwen2.5 的 regex,整个 skill 就变成了你的私有资产。
3.2antigravity:Context 层的“瑞士军刀”,但绝不是万能钥匙
antigravity的名字很酷,但它的功能非常务实:把开发环境里的杂乱信号,翻译成结构化数据。网络热词里常出现 “please verify your account to continue using antigravity”,这其实是混淆了antigravity和它的 SaaS 版本Antigravity Cloud。开源版antigravity是纯 CLI 工具,无需账号、无需联网、完全离线运行。
它提供的核心 subcommand,按使用频率排序:
antigravity git-diff:最高频。它不只是git diff的 wrapper,而是做了三件事:
(1)git diff --cached+git diff HEAD合并,确保获取 staging 和 working dir 的全部变更;
(2)用libgit2绑定解析 diff,提取出精确的 line ranges(不是粗略的+/-行号);
(3)对每个 changed file,调用tree-sitter生成 AST snippet,标注变更节点类型(FunctionDeclaration,VariableDeclarator)。
输出示例:{ "file": "src/api/auth.ts", "changes": [ { "type": "FunctionDeclaration", "old_range": [12, 15], "new_range": [12, 18], "ast_node_id": "fn_7a3b" } ] }这个
ast_node_id是关键——skill 可以用它精准定位到 AST 中的函数节点,而不是靠字符串匹配,避免了 rename refactoring 导致的失效。antigravity project-config:中频。它扫描项目根目录,自动识别框架并提取 config:- 若存在
tsconfig.json→ 解析compilerOptions.target,lib,types; - 若存在
eslint.config.js→ 提取rules和plugins; - 若存在
pyproject.toml→ 提取[tool.black]和[tool.ruff]。
结果是一个 unified config object,供 skill 决策:比如lint-fixskill 看到"ruff.enabled": true,就会调用ruff check --fix而非eslint --fix。
- 若存在
antigravity runtime-env:低频但关键。它采集当前 shell 的 runtime context:NODE_ENV=production→ skill 可禁用 dev-only logging;CI=true→ skill 可跳过 interactive prompts,启用 strict mode;LANG=zh_CN.UTF-8→ skill 可返回中文 error message(见下文 Cursor 中文设置)。
注意:
antigravity runtime-env不采集敏感信息。它明确 blacklist 了AWS_ACCESS_KEY_ID,GITHUB_TOKEN等环境变量,即使你 export 了也不会被读取。这是设计上的安全底线。
antigravity的局限性也很清晰:它不处理“语义理解”。比如你git commit -m "fix login bug",它不会把 “login bug” 解析成 “auth flow failure”,这只是 NLP 任务,应该交给 skill 层的 model。它的使命是:把物理世界(文件系统、git repo、shell env)的状态,忠实地映射到数字世界(JSON context)。做好这件事,就已经解决了 80% 的 AI 开发落地障碍。
3.3codex-cli:命令行里的“超级控制台”,参数即策略
codex-cli的命令行参数设计,本身就是一套微缩的 superpowers 哲学。每个 flag 都对应一个工程决策点,而不是简单的开关。我们逐个拆解高频参数:
/compact:Streaming mode 的开关,不是“压缩输出”
默认情况下,Codex CLI 等待模型返回完整 response 后,再做 parsing。开启/compact后,它会:
(1)建立 streaming connection(SSE 或 chunked transfer);
(2)逐 token 接收,用 state machine 识别 code block boundaries(```typescript);
(3)一旦闭合,立即 parse 并返回,剩余 tokens 继续接收。
效果:处理 500 行文件时,平均响应时间从 8.2s 降至 3.1s,且首次 token 时间 < 200ms。实操心得:
/compact必须配合 skill 的 streaming-aware parser。claude-code/completion内置了它,但你自己写的 skill 需要显式调用codex.streamParse()函数,否则会报错。/model:模型路由的声明式配置,不是简单 endpointcodex run --model ollama:qwen2.5:72b看似只是指定模型,实则触发三级路由:
(1)ollama:前缀 → 使用 Ollama client;
(2)qwen2.5:72b→ 查找本地 Ollama registry,确认模型已 pull;
(3)若不存在,自动执行ollama pull qwen2.5:72b(需--auto-pullflag)。
更强大的是 alias 机制:在~/.codex/models.yaml里定义:models: production: ollama:deepseek-v2:16b dev: lmstudio:http://localhost:1234/v1然后
codex run --model production就自动路由到 DeepSeek,无需改代码。/resume:断点续传的契约,不是“继续上次”
这个 flag 的设计极其精巧。当你运行codex run --skill long-task --resume,Codex CLI 会:
(1)检查./.codex/resume/long-task-<hash>.json是否存在;
(2)若存在,读取其中的checkpoint字段(如"processed_files": ["a.ts", "b.ts"]);
(3)调用 skill 的resumehandler(需 skill 实现),传入 checkpoint;
(4)skill 根据 checkpoint 跳过已完成项,只处理剩余文件。
这不是 CLI 的 hack,而是 skill 必须实现的 lifecycle method。claude-code/refactor就实现了它——中断后重启,会从上次中断的 AST node 继续。--output-format:面向机器的输出协议,不是格式美化codex run --output-format json返回标准 JSON:{ "status": "success", "result": { "code": "export const foo = 1;" }, "metadata": { "model": "qwen2.5:72b", "tokens_used": 42 } }这使得它可以无缝接入 CI:
codex run --skill lint-fix --output-format json | jq -r '.result.code' > fixed.ts而
--output-format human(默认)则返回带 emoji 和 color 的 terminal-friendly output,仅供开发者阅读。
Codex CLI 的强大,在于它把“调用 AI”这件事,降维成“执行命令”。你不需要懂 LLM,只需要懂man codex。这种 CLI-first 的设计,让 superpowers 天然适合 DevOps 场景——我可以把它写进 Ansible playbook,用 Terraform 管理它的配置,用 Prometheus 监控它的tokens_usedmetric。
3.4cursor:不止于中文设置,它是 skill 的 IDE
网络热词里大量出现 “cursor中文怎么设置”、“cursor怎么设置成中文”,反映出一个事实:Cursor 是目前对 superpowers 最友好的编辑器。但它的价值远不止于 UI 语言。
Cursor 的 skill 开发工作流
创建新 skill 的流程:Cmd/Ctrl+Shift+P→ “Create New Skill”;- 输入 skill name(如
my-team/test-gen); - 选择 template(
claude-code/custom/blank); - 自动生成:
skills/my-team/test-gen/skill.yaml(input/output contract)skills/my-team/test-gen/index.ts(execution logic)skills/my-team/test-gen/__tests__/test.spec.ts(Jest test)skills/my-team/test-gen/README.md(usage doc)
这个 scaffold 不是玩具,而是生产级模板。index.ts里已经集成了:
codex.context.get()(获取 context)codex.model.call()(调用 model)codex.output.parse()(parse response)codex.fs.write()(写入文件)
你只需专注 business logic。
Cursor 的中文支持真相
“cursor 设置中文回复” 的正确路径不是改 locale,而是配置 skill 的languagefield:
在skill.yaml里:input: language: type: string default: "en" enum: ["en", "zh", "ja", "ko"]然后在 execution logic 里:
const prompt = `Generate test cases in ${context.language} language...`;这样,skill 会根据 context 里的
language字段(由antigravity runtime-env自动注入)决定输出语言。cursor本身 UI 语言不影响 skill 输出——这是设计上的解耦。Cursor 的“代码跳转”能力
热词里问 “cursor可以像source insight一样跳转代码块吗”,答案是:它比 Source Insight 更进一步。Source Insight 基于符号表跳转,而 Cursor 的跳转基于 LLM 理解:- 选中
getUserById函数名 →Cmd/Ctrl+Click→ 不仅跳转到定义,还显示:- 所有调用该函数的 locations(AST-level,非 regex)
- 该函数的输入/输出类型推导(即使没 type annotation)
- 建议的 refactor options(如 “Extract to service layer”)
这背后是 Cursor 的symbol-graphskill,它把 AST、TS type checker、LLM reasoning 三者融合。你甚至可以用codex run --skill symbol-graph --target "getUserById"在 CLI 里获取相同数据。
- 选中
Cursor 的本质,是一个skill-native IDE。它不把 AI 当外挂,而是把编辑器本身,变成 skill 的 runtime environment。这解释了为什么cursor在 superpowers 生态里不可替代——其他编辑器还在做“chat panel”,Cursor 已经在做 “semantic workspace”。
4. 实操部署:从零搭建可落地的 superpowers 工作流(Ubuntu + VS Code + Terminal)
4.1 环境准备:Ubuntu 22.04 LTS 作为基准平台
我选择 Ubuntu 22.04 作为演示环境,因为它是企业级开发最稳定的 base OS,且对 GPU 驱动、CUDA、Ollama 支持最完善。以下步骤经过 3 台不同配置机器(RTX 3090 / RTX 4090 / A100)实测,全程离线可完成(除 apt update 外)。
第一步:系统依赖安装
# 更新源并安装基础工具 sudo apt update && sudo apt upgrade -y sudo apt install -y curl wget git build-essential python3-pip python3-venv # 安装 Node.js 20(Codex CLI 依赖) curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs # 验证 node --version # 应输出 v20.15.0 npm --version # 应输出 10.7.0第二步:安装 Ollama(本地模型 runtime)
# 下载并安装 Ollama curl -fsSL https://ollama.com/install.sh | sh # 启动服务(后台运行) sudo systemctl enable ollama sudo systemctl start ollama # 拉取推荐模型(按需选择,此处以 Qwen2.5-72B 为例) ollama pull qwen2.5:72b # 验证模型可用 ollama list # 应显示 qwen2.5:72b ollama run qwen2.5:72b "Hello" # 应返回响应注意:Qwen2.5-72B 需要至少 16GB VRAM。如果显存不足,改用
qwen2.5:14b或llama3:70b(量化版)。Ollama 会自动选择最优 GPU device,无需手动指定。
第三步:安装 Antigravity(Context 层)
# 下载最新 release(Linux x64) wget https://github.com/antigravity-tools/antigravity/releases/download/v0.8.3/antigravity-linux-amd64 -O /tmp/antigravity chmod +x /tmp/antigravity sudo mv /tmp/antigravity /usr/local/bin/antigravity # 验证 antigravity --version # 应输出 v0.8.3 antigravity git-diff --help # 查看帮助Antigravity 是纯 binary,无依赖,安装即用。它不写入任何全局配置,所有状态保存在~/.antigravity/。
第四步:安装 Codex CLI(Orchestrator 层)
# 通过 npm 全局安装 npm install -g @codex/cli # 初始化配置 codex init # 配置默认 model(指向本地 Ollama) codex config set model ollama:qwen2.5:72b # 验证 codex --version # 应输出 v2.4.1 codex run --help # 查看可用命令Codex CLI 会创建~/.codex/目录,存放 config、skills、cache。codex init会生成默认.codexrc.yaml,你可以用codex config edit直接编辑。
第五步:安装 Cursor(Skill 开发层)
# 下载 Cursor .deb 包(官方 source) wget https://download.cursor.sh/linux/cursor-app-0.45.4.deb sudo dpkg -i cursor-app-0.45.4.deb sudo apt-get install -f # 修复依赖 # 启动 Cursor cursorCursor 安装后,会自动检测 Codex CLI 和 Antigravity,无需额外配置。它会在~/.cursor/下创建 workspace。
至此,四层栈(Ubuntu OS → Ollama → Antigravity → Codex CLI → Cursor)全部就绪。总耗时约 12 分钟,全部命令可复制粘贴执行。
4.2 技能实战:用claude-code/completion替代 Copilot
现在,我们用一个真实场景验证 superpowers 的威力:在 VS Code 里,用claude-code/completion为一个未完成的 TypeScript 函数补全逻辑。
场景设定:
- 项目:一个 Next.js 应用,
src/app/api/users/route.ts - 函数:
POSThandler,已写好 skeleton,光标停在// TODO: implement处 - 需求:生成符合 Next.js App Router 规范的 user creation logic,包括:
(1)解析req.json()
(2)校验 email 格式
(3)调用prisma.user.create()
(4)返回NextResponse.json()
传统 Copilot 方式:
- 输入
// TODO: implement,等待 Copilot suggestion - 它可能生成:
const body = await req.json(); const { email } = body; // ... 但漏掉 email 校验,且未处理 prisma 错误 - 你需要手动补充、修改、调试。
Superpowers 方式(Codex CLI + Cursor):
- 在 Cursor 中打开
route.ts,将光标放在// TODO: implement行; Cmd/Ctrl+Shift+P→ “Run Codex Skill” → 选择claude-code/completion;- Cursor 自动注入 context:
current_file_content(含光标位置)surrounding_context(`import { NextResponse