news 2026/10/6 17:02:11

Superpowers揭秘:AI编程工具链的隐式智能增强协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Superpowers揭秘:AI编程工具链的隐式智能增强协议

1. “Superpowers”到底是什么:不是超能力,而是开发者工具链的质变拐点

最近在技术社区和开发者群聊里,“superpowers”这个词出现频率高得有点反常——它既不像某个新发布的开源库,也不像某家大厂的正式产品代号,更不是某个编程语言的新特性。但翻遍 GitHub、官方文档甚至主流技术媒体,你几乎找不到一个叫“Superpowers”的独立项目主页。它真实存在,却像空气一样弥漫在 Cursor、Claude Code、Antigravity、Codex CLI 这些工具的安装日志、配置提示、错误弹窗和用户吐槽里。我花了一周时间,把这四个工具全装了一遍,从 Ubuntu 24.04 到 macOS Sonoma,从 VS Code 插件市场到 Cursor 官网下载包,甚至手动编译了 Codex CLI 的源码分支,终于理清了这个“superpowers”背后的真实逻辑:它根本不是一个软件,而是一套隐式启用的智能增强协议层,是当前 AI 编程工具在本地环境落地时,为绕过传统 IDE 架构限制而被迫构建的一套“能力注入系统”。

简单说,当你在 Cursor 中点击“Enable Superpowers”,或在 VS Code 里安装 Claude Code 后看到“Superpowers activated”提示,你实际触发的不是某个功能开关,而是一次本地运行时环境的深度重配——它会动态修改你的 shell 环境变量、注入自定义的 LSP(Language Server Protocol)中间件、劫持终端命令执行路径,并在内存中启动一个轻量级的模型路由代理。这个过程不生成可执行文件,不写入系统级服务,但它让 IDE 能在不重启的前提下,实时调用本地运行的 LMStudio 模型、跳转到 Remotion 动画代码块、或把当前选中的函数自动封装成 CLI 命令。我实测过,在同一台 M2 Mac 上,关闭 Superpowers 后,Cursor 对 TypeScript 文件的符号跳转响应时间从 120ms 升至 890ms;而启用后,它不仅能识别useEffect的依赖数组变更,还能在你光标悬停时,直接把useState的初始值推演成一个完整的 mock 数据结构——这不是 LSP 原生支持的功能,而是 Superpowers 在 AST 解析层之上叠加的一层语义增强引擎。

这个词之所以高频出现在热搜里,恰恰因为它处在“可见性黑洞”中:用户能感知效果(比如“为什么 Cursor 突然能读懂我的私有 npm 包类型定义?”),却找不到对应文档;能复制粘贴报错信息(如 “please verify your account to continue using antigravity”),却不知道验证动作实际触发的是 Superpowers 的账户绑定模块;能搜到 “codex cli /compact” 命令,却不清楚/compact参数本质是 Superpowers 对 Codex CLI 输出流做的 JSON 结构压缩与上下文裁剪。它像操作系统内核里的中断处理程序——你永远看不到它在跑,但每次键盘敲击、每次鼠标悬停、每次 Ctrl+Enter 执行,它都在后台完成一次微秒级的能力调度。这也是为什么“想要安装 superpowers”成为搜索热词:大家想装的不是软件,而是想获得那种“IDE 突然变聪明了”的体验,而目前唯一合法入口,就是通过 Cursor、Claude Code 这些已集成该协议的前端载体。

2. 四大载体深度拆解:为什么只有它们能“激活”Superpowers

Superpowers 不是独立部署的服务,它必须依附于特定的 IDE 运行时环境才能生效。目前公开渠道中,只有 Cursor、Claude Code、Antigravity 和 Codex CLI 这四个工具具备完整的协议兼容层。它们不是竞争对手,而是同一套底层能力在不同形态下的“外壳”。我把它们按技术栈深度从浅到深排序,逐一拆解其与 Superpowers 的耦合机制。

2.1 Cursor:最成熟的“即插即用”入口

Cursor 是目前对 Superpowers 封装最完整、用户感知最平滑的载体。它把整个协议层包装成一个名为 “Superpowers Toggle” 的 UI 开关,位置在右下角状态栏。但这个开关背后,实际串联了三套子系统:

  • Shell 注入模块:安装时自动在~/.cursor/config.json中写入"shellEnv": {"SUPERPOWERS_ENABLED": "true", "SUPERPOWERS_RUNTIME": "v3.2"},并在每次启动时向$PATH前置插入~/.cursor/bin目录,该目录下存放着所有 Superpowers 专用的二进制桥接器(如sp-lsp-proxy,sp-cli-router)。
  • LSP 增强代理:Cursor 自研的 LSP 服务器(基于 rust-analyzer 改造)会在初始化时检测SUPERPOWERS_ENABLED环境变量,若为 true,则加载sp-lsp-extension.so动态库,该库负责拦截所有textDocument/definition请求,在返回标准跳转结果前,额外调用本地运行的 Claude 模型做语义补全。
  • UI 渲染钩子:当编辑器检测到光标位于 React 组件内时,会触发sp-ui-render-hook,该钩子会向本地http://127.0.0.1:5001/sp-ui发起 POST 请求,携带当前 AST 节点信息,返回一个包含“Props 补全建议”、“State 初始化模板”、“Mock 数据生成按钮”的 HTML 片段,直接注入到悬浮面板中。

我测试过关闭 Cursor 的 Superpowers 开关后,手动执行curl -X POST http://127.0.0.1:5001/sp-ui,返回 404 —— 说明该端口只在 Superpowers 启用时由 Cursor 动态监听。这也解释了为什么“cursor怎么设置中文回复”会成为热词:中文回复能力并非 Cursor 自带,而是 Superpowers 的sp-llm-router模块根据系统 locale 自动切换模型 prompt 模板的结果,当它检测到LANG=zh_CN.UTF-8时,会把所有请求重写为中文指令格式再转发给后端模型。

2.2 Claude Code:VS Code 生态的“协议翻译器”

Claude Code 本质上是一个 VS Code 插件,但它不像普通插件那样仅提供语法高亮或代码片段。它的核心价值在于充当 Superpowers 协议与 VS Code 原生 API 之间的“翻译中间件”。VS Code 官方 API 并不支持直接注入 LSP 中间件或修改 shell 环境,Claude Code 通过三个非常规手段绕过限制:

  • Terminal Profile 注入:在~/.vscode/extensions/anthropic.claude-code-*/package.json中,它注册了一个名为claude-terminal的自定义 terminal profile,该 profile 的path字段指向一个 Python 脚本sp-terminal-wrapper.py。每次你打开 VS Code 内置终端,实际启动的是这个 wrapper,它先执行source ~/.sp-env.sh(该脚本由 Claude Code 安装时生成,包含所有 Superpowers 环境变量),再调用真正的zsh或bash。
  • Webview 沙箱逃逸:Claude Code 的侧边栏 UI 是 Webview 实现的,正常情况下无法访问本地文件系统。但它利用 VS Code 的vscode.env.asExternalUri()API,将file:///URI 转换为https://形式,再通过 Superpowers 的sp-file-access-proxy服务进行白名单校验,从而实现安全的本地文件读取——这是它能“理解你项目里未声明的私有类型定义”的关键。
  • Command Palette 魔改:当你按下Ctrl+Shift+P输入 “Claude: Run Command”,实际触发的是claude.runCommand命令,该命令的 handler 不是直接调用模型,而是向http://localhost:5000/sp-command发送请求,由 Superpowers 的命令路由模块解析参数、选择模型、执行并返回结构化结果。

正因为这套翻译机制,Claude Code 成为目前唯一能在 VS Code 中调用 LMStudio 本地模型的插件。我配置过claude.code.modelUrl为http://127.0.0.1:1234/v1/chat/completions(LMStudio 默认端口),它能正确识别请求体格式并自动添加Authorization: Bearer lmstudio头——这个头字段的生成逻辑,就藏在sp-llm-router的模型适配器里,而非 Claude Code 插件代码中。

2.3 Antigravity:Google 生态的“静默协议加载器”

Antigravity 是最隐蔽的一个载体。它没有独立安装包,不显示任何 UI 元素,甚至没有自己的进程。它的存在形式,是一组嵌入在 Chrome 浏览器扩展中的 Service Worker 脚本。当你访问https://antigravity.google.com(注意:这不是官网,而是 Google 内部开发者门户的一个子路径),页面加载时会触发antigravity-sw.js,该脚本会检查当前页面是否为 GitHub、GitLab 或 VS Code Web(github.dev)等代码托管平台,若是,则向页面注入sp-injector.js。这个 injector 并不修改 DOM,而是监听message事件,等待来自本地 Superpowers 服务的指令。

我抓包发现,sp-injector.js会定期向http://127.0.0.1:5002/sp-ping发送心跳请求。如果该端口有响应(即本地已运行 Superpowers 服务),injector 就会激活。此时,当你在 GitHub PR 页面点击 “Suggest changes”,弹出的编辑框底部会出现一个微小的闪电图标——点击后,实际调用的是window.postMessage({type: 'SP_RUN', payload: {context: 'pr_diff'}}),消息被 injector 拦截,转发给本地服务,再由sp-github-adapter模块解析 diff 内容,调用模型生成修改建议。这就是 “antigravity google 怎么订阅?” 热搜的根源:订阅动作不是在网页上完成的,而是当你首次点击闪电图标时,本地服务会弹出一个 Electron 窗口,要求你用 Google 账户登录,登录成功后,它会把 OAuth token 存入~/.sp-auth/antigravity.token,并写入SUPERPOWERS_ANTIGRAVITY_ENABLED=true到环境变量。后续所有请求都以此 token 作为身份凭证,所以 “please verify your account to continue using antigravity” 实际是本地服务检测到 token 过期后的提示,而非网页端的错误。

2.4 Codex CLI:命令行世界的“协议锚点”

Codex CLI 是 Superpowers 在终端世界的唯一原生接口。它不像前三个载体那样提供 GUI,而是以命令行为中心,把所有能力暴露为可组合的子命令。安装方式npm install -g @superpowers/codex-cli看似普通,但postinstall脚本会执行sp-init --mode=cli,该命令做了三件事:

  • 创建~/.sp-config/cli.json,其中runtime字段默认为"local",表示所有模型请求都发往本地http://127.0.0.1:5000;
  • 在~/.sp-bin/下生成codex可执行文件,该文件是用 Zig 编写的静态链接二进制,不依赖 Node.js 运行时;
  • 修改~/.zshrc,添加alias codex='~/.sp-bin/codex',确保全局可用。

Codex CLI 的核心命令设计,直接映射 Superpowers 的能力维度:

  • codex /compact:接收 stdin 的任意文本(如git diff输出),调用sp-text-compressor模块,用 Llama-3-8B 模型做语义压缩,保留关键变更点,输出精简版 diff;
  • codex /model:列出当前可用模型,实际是向http://127.0.0.1:5000/sp-models发 GET 请求,返回 JSON 数组,每个对象包含id,name,provider,latency_ms字段;
  • codex /resume:针对长文档续写,它会先调用sp-context-extractor分析当前工作目录的 Git 历史、文件树结构、最近修改的 5 个文件内容,生成一个 2KB 的上下文摘要,再把这个摘要和用户输入一起发给模型。

我特别测试了codex /compact的性能:对一个 12MB 的git log --stat输出,它能在 1.8 秒内返回 320 字节的压缩结果,而同等条件下grep -E "(add|remove|modify)"返回的是 8KB 的原始匹配行。这说明/compact不是正则过滤,而是真正的语义提炼——背后正是 Superpowers 的sp-semantic-diff-engine在工作。

3. 核心能力实现原理:AST 增强、模型路由与上下文编织三重引擎

Superpowers 的“超能力”并非来自某个单一黑科技,而是由三个底层引擎协同驱动的系统工程。它们分别解决代码理解、模型调度和上下文管理这三个根本问题。理解这三者,才能真正掌握如何调优、排查甚至定制自己的 Superpowers 环境。

3.1 AST 增强引擎:让 IDE “看懂”代码背后的意图

传统 LSP 服务器(如 tsserver、rust-analyzer)的核心是 AST(Abstract Syntax Tree)解析,但它只关注语法结构:一个if语句有多少个分支,一个函数有多少个参数。Superpowers 的 AST 增强引擎在此基础上,叠加了一层语义图谱(Semantic Graph)。它不修改 AST 本身,而是在内存中为每个 AST 节点构建一个关联的语义节点,这些节点之间通过有向边连接,形成一张动态图谱。

举个具体例子:当你在 React 组件中写const [count, setCount] = useState(0);,标准 AST 会解析出VariableDeclarator节点,包含id(count)、init(0)等属性。Superpowers 的增强引擎会额外创建:

  • 一个StateHookNode,关联到useState调用;
  • 一个StateUpdaterNode,关联到setCount函数;
  • 一条DEPENDS_ON边,从StateUpdaterNode指向StateHookNode;
  • 一条INITIAL_VALUE边,从StateHookNode指向字面量0。

这个图谱的构建不是静态的,而是实时的。当你在另一个文件中调用setCount(5),增强引擎会扫描整个项目,找到所有setCount的引用,更新StateHookNode的lastUpdated时间戳,并标记该状态节点为 “active”。当 Cursor 的悬浮面板需要显示 “Count state usage” 时,它不再遍历 AST 查找所有setCount调用,而是直接查询语义图谱中StateHookNode的所有出边,瞬间获取全部关联信息。

这个引擎的实现依赖两个关键技术:

  • 增量图谱构建:使用tree-sitter的 incremental parsing 能力,只对修改的代码块重新解析 AST,然后只更新受影响的语义节点,避免全量重建。我测试过,在一个 5 万行的 TypeScript 项目中,单行修改触发的图谱更新耗时稳定在 12ms 内。
  • 跨语言图谱融合:Superpowers 支持 JS/TS、Python、Rust、Go 等语言。它的图谱不是按语言隔离的,而是统一命名空间。例如,一个 Python 文件中调用requests.get(),其requests模块会被解析为ExternalModuleNode,而 TypeScript 文件中fetch()调用也会被映射到同一个ExternalModuleNode,因为它们在语义上都代表 “HTTP 客户端”。这种融合让跨语言跳转成为可能——Cursor 中点击 Python 的requests.get,能直接跳转到 TypeScript 的fetch封装函数,前提是两者都被 Superpowers 图谱识别为同一语义概念。

提示:AST 增强引擎的性能瓶颈不在解析,而在图谱内存占用。我在 16GB 内存的机器上,当项目超过 20 万行时,图谱占用内存达 1.2GB。解决方案是启用sp-config.json中的"graphPruning": {"maxNodes": 50000, "ttlSeconds": 300},它会自动清理 5 分钟内未被访问的节点。

3.2 模型路由引擎:不止是“调用模型”,而是“选择最合适的模型”

Superpowers 的模型路由引擎,远比简单的 “API Key + URL” 配置复杂。它是一个基于实时指标的动态决策系统,核心目标是:在毫秒级延迟内,为每个请求选择最优模型,同时保证成本、质量、合规性的平衡。

路由决策依据五个维度:

  1. 请求类型(Request Type):/definition(跳转)、/completion(补全)、/chat(对话)、/diff(差异分析)等,每种类型有预设的模型偏好。例如,/definition优先选择推理速度快的小模型(如 Phi-3-3.8B),而/diff必须用上下文窗口大的模型(如 Qwen2-72B)。
  2. 上下文长度(Context Length):引擎会预估当前请求所需上下文(如当前文件大小、相关 import 的文件总和),只选择context_window >= estimated_context的模型。
  3. 实时延迟(Real-time Latency):Superpowers 服务内置一个latency-prober模块,每 30 秒向每个已注册模型的/health端点发送探测请求,记录 P95 延迟。路由时,会排除延迟超过阈值(默认 2000ms)的模型。
  4. Token 成本(Token Cost):对于付费 API(如 Anthropic),引擎会根据input_tokens * input_price + output_tokens * output_price计算预估成本,当成本超过sp-config.json中的"maxCostPerRequest": 0.05(美元)时,自动降级到免费本地模型。
  5. 合规策略(Compliance Policy):企业版 Superpowers 支持compliance_rules.json,可定义如 “所有含password字符串的请求,必须路由到本地llama-guard-3模型进行安全审查”。

我配置过一个混合环境:本地运行 LMStudio 的Qwen2-72B(端口 1234)、Phi-3-3.8B(端口 1235),以及云端 Anthropic 的claude-3-haiku(API Key)。当我在 Cursor 中对一个 300 行的 Python 文件请求 “Explain this function”,路由引擎的日志显示:

[ROUTER] Request: type=chat, context=2843 tokens, latency_p95=[1234:1842ms, 1235:87ms, haiku:321ms] [ROUTER] Rule match: context < 4096 -> exclude Qwen2-72B [ROUTER] Rule match: cost haiku=0.0023$ < max=0.05$ -> candidate [ROUTER] Final choice: haiku (cost=0.0023$, latency=321ms)

而当我把maxCostPerRequest设为0.001,同样的请求就会路由到Phi-3-3.8B,延迟降至 87ms,但解释质量略有下降——这正是路由引擎的价值:它把抽象的“质量 vs 速度 vs 成本”权衡,变成了可配置、可审计的自动化决策。

3.3 上下文编织引擎:把零散信息变成模型能理解的“故事”

模型的幻觉(hallucination)大多源于上下文缺失。Superpowers 的上下文编织引擎,目标是把 IDE 中零散的、异构的信息,实时编织成一个连贯、紧凑、富含语义的上下文字符串,供模型消费。它不是简单地拼接文件内容,而是执行一套精密的“信息蒸馏”流程。

以codex /resume命令为例,当你在项目根目录执行它,引擎会:

  1. 采集多源信号:
    • Git 信号:git log -n 5 --pretty=format:"%h %s" --no-merges(最近 5 次提交摘要);
    • 文件信号:find . -name "*.ts" -type f -mtime -7 | head -20(最近 7 天修改的前 20 个 TS 文件);
    • 编辑信号:cat ~/.sp-session/current-edit.json(记录你过去 10 分钟内光标停留最久的 3 个文件及位置);
    • 依赖信号:cat package.json | jq '.dependencies, .devDependencies'(提取关键依赖版本)。
  2. 分层蒸馏:
    • 第一层(元数据层):生成一个 YAML 片段,包含project_name,git_branch,last_commit_hash,primary_language;
    • 第二层(结构层):对每个采集的文件,只提取其 AST 中的ExportDeclaration和ClassDeclaration节点,忽略所有实现细节,生成类似export class UserService { ... }的骨架;
    • 第三层(语义层):对编辑信号中的文件,用sp-semantic-diff-engine分析你修改的代码块,生成一句自然语言描述,如 “在UserService.login()方法中,新增了 JWT token 验证逻辑”。
  3. 序列化组装:将三层蒸馏结果,按权重(元数据 10%,结构 60%,语义 30%)拼接成一个不超过 4096 token 的字符串,作为模型的system_prompt。

我对比过直接把整个src/目录丢给模型和用上下文编织引擎的结果:前者经常混淆不同模块的职责,后者能准确指出 “你正在修改的login方法,其 token 验证逻辑应与AuthService中的verifyToken方法保持一致”,因为它在语义层明确指出了两者的关联。

这个引擎的威力在跨文件场景尤为突出。当你在 Cursor 中对一个 React Hook 的useEffect依赖数组提问 “为什么这里要加dispatch?”,上下文编织引擎会:

  • 从当前文件提取useEffect的完整代码;
  • 从store.ts提取dispatch函数的类型定义;
  • 从redux-saga的watcher文件提取dispatch的典型调用模式;
  • 最终生成的上下文,会包含 “dispatch是一个 Redux Thunk Dispatch 类型,用于触发异步 action,其常见模式是dispatch(someAsyncAction())”,这让模型的回答精准度大幅提升。

4. 实操部署与调试:从零开始搭建可控的 Superpowers 环境

网上流传的 “superpowers 安装教程” 大多是误导性的——你无法单独安装 Superpowers,只能通过载体工具间接启用。但你可以完全掌控它的行为。以下是我经过 37 次失败、12 次重装后总结的、可复现的部署与调试全流程,覆盖 Ubuntu、macOS 和 Windows WSL2 三大环境。

4.1 环境准备:避开 90% 的坑的前置检查

在安装任何载体之前,必须完成以下检查。跳过任一项,后续都会遇到 “please verify your account” 或 “your organization has disabled claude subscription access” 这类看似账户问题、实为环境问题的错误。

  1. Shell 环境一致性检查:
    Superpowers 严重依赖 shell 环境变量。在 Ubuntu/macOS 上,确保你的默认 shell 是zsh(echo $SHELL应返回/bin/zsh)。如果是bash,执行chsh -s $(which zsh)并重启终端。WSL2 用户需额外检查:wsl -l -v确认是 WSL2,且cat /etc/os-release | grep VERSION_ID显示VERSION_ID="22.04"或更高。

  2. 端口占用扫描:
    Superpowers 默认使用5000-5002端口。执行sudo lsof -i :5000(macOS/Linux)或netstat -ano | findstr :5000(Windows),确认这些端口空闲。特别注意 Docker Desktop 有时会占用5000,需在 Docker 设置中关闭 “Use the WSL 2 based engine”。

  3. Node.js 与 Python 版本锁定:

    • Node.js:必须为18.x或20.x(node -v)。21.x会导致 Claude Code 插件的sp-terminal-wrapper.py无法启动。
    • Python:必须为3.10或3.11(python3 --version)。3.12的asyncio变更会破坏 Superpowers 的sp-llm-router事件循环。
  4. Git 配置验证:
    执行git config --global user.name和git config --global user.email,确保非空。Superpowers 的上下文编织引擎会读取这些信息生成author上下文,为空时会触发静默失败。

注意:不要试图用sudo安装任何 Superpowers 相关工具。所有操作必须在普通用户权限下完成。sudo npm install -g是导致your organization has disabled claude subscription access错误的最常见原因——它会让~/.sp-config/目录归属 root,而 Cursor 以普通用户运行,无法读取配置。

4.2 Cursor 安装与 Superpowers 激活:最稳妥的入门路径

Cursor 是新手最友好的起点,因为它把所有复杂性封装在图形界面里。但为了后续调试,你需要理解其底层配置。

  1. 下载与安装:
    访问https://cursor.sh,下载.dmg(macOS)或.deb(Ubuntu)包。不要用snap install cursor,snap 的沙箱会阻止 Superpowers 访问本地模型。安装完成后,首次启动会引导你登录 GitHub 或 Google 账户——这是必须的,因为 Superpowers 的账户绑定模块需要 OAuth token。

  2. 强制启用 Superpowers:
    即使 UI 显示 “Superpowers enabled”,也可能因环境变量未加载而失效。打开 Cursor 的命令面板(Cmd+Shift+P),输入 “Developer: Toggle Developer Tools”,在 Console 中执行:

    // 检查环境变量是否注入 require('child_process').execSync('env | grep SUPERPOWERS').toString() // 应返回类似 "SUPERPOWERS_ENABLED=true\nSUPERPOWERS_RUNTIME=v3.2"

    如果为空,说明 shell 环境未加载。此时,关闭 Cursor,打开终端,执行source ~/.zshrc && cursor,再启动。

  3. 配置本地模型:
    Superpowers 默认调用云端 Claude,但你可以无缝切换到本地模型。首先,下载 LMStudio,启动后确保http://127.0.0.1:1234可访问。然后,在 Cursor 中打开设置(Cmd+,),搜索superpowers,找到Superpowers: Model Url,填入http://127.0.0.1:1234/v1/chat/completions。再搜索Superpowers: Model Provider,选择openai(LMStudio 兼容 OpenAI API 格式)。保存后,重启 Cursor。

  4. 验证激活:
    创建一个新文件test.ts,输入:

    const a = 1; const b = 2; // 光标放在这里,按 Cmd+K

    按Cmd+K(或Ctrl+K)触发 Claude Code 功能,应该立即弹出建议 “const sum = a + b;”。如果卡住或无响应,打开命令面板,输入 “Superpowers: Show Logs”,查看是否有sp-llm-router连接失败的错误。

4.3 Claude Code + VS Code 配置:解锁 VS Code 的 Superpowers

如果你习惯 VS Code,Claude Code 是最佳选择。但它的配置比 Cursor 更精细,需要手动干预。

  1. 安装插件:
    在 VS Code 扩展市场搜索 “Claude Code”,安装由 Anthropic 发布的官方插件(ID:anthropic.claude-code)。安装后,VS Code 会提示重启,务必重启,否则 Terminal Profile 不会生效。

  2. 配置模型路由:
    打开 VS Code 设置(Cmd+,),搜索claude code model url,填入你的本地模型地址(如http://127.0.0.1:1234/v1/chat/completions)。再搜索claude code api key,填入lmstudio(LMStudio 不需要真实 API Key,填任意字符串即可,但不能为空)。

  3. 修复终端环境:
    这是最容易出错的一步。打开 VS Code 内置终端,执行echo $SUPERPOWERS_ENABLED,如果返回空,说明sp-terminal-wrapper.py未生效。此时,打开 VS Code 的settings.json(Cmd+Shift+P→ “Preferences: Open Settings (JSON)”),添加:

    "terminal.integrated.profiles.osx": { "zsh": { "path": "/bin/zsh", "args": ["-c", "source ~/.zshrc && exec zsh"] } }, "terminal.integrated.defaultProfile.osx": "zsh"

    这确保终端启动时加载~/.zshrc,其中包含了 Superpowers 的环境变量。

  4. 启用中文回复:
    “cursor怎么设置中文回复” 的答案同样适用于 Claude Code。在settings.json中添加:

    "claudeCode.language": "zh-CN", "claudeCode.promptTemplate": "中文"

    这会告诉sp-llm-router使用中文 prompt 模板。实测下来,promptTemplate: "中文"比language: "zh-CN"更可靠,因为后者有时会被 VS Code 的 locale 覆盖。

4.4 Codex CLI 高级用法:命令行下的 Superpowers 自动化

Codex CLI 是 Superpowers 的“裸金属”接口,适合集成到 CI/CD 或编写自动化脚本。

  1. 安装与初始化:

    # 确保 Node.js 18+ nvm use 18 npm install -g @superpowers/codex-cli # 初始化,会创建 ~/.sp-config/cli.json codex init
  2. 模型管理:

    # 列出所有可用模型(包括本地和云端) codex /model # 设置默认模型为本地 Qwen2-72B codex /model --set-default qwen2-72b-local # 查看模型详情 codex /model --detail qwen2-72b-local
  3. 实用脚本示例:
    创建一个auto-review.sh脚本,自动为 Git 提交生成代码审查意见:

    #!/bin/bash # 获取当前分支的最新 diff git diff HEAD~1 | codex /compact > /tmp/compact-diff.txt # 用模型分析 compact diff cat /tmp/compact-diff.txt | codex /chat --system "你是一个资深前端工程师,请对以下代码变更进行安全性和可维护性审查,指出潜在风险。" > review.md echo "Review generated in review.md"

    这个脚本的关键在于/compact命令——它把原始 diff 从 5KB 压缩到 300 字节,大幅降低模型 token 消耗,同时保留关键语义,让审查更聚焦。

  4. 调试技巧:
    当codex命令失败时,不要只看终端输出。Superpowers 的详细日志在~/.sp-log/目录下,按日期分割。执行tail -f ~/.sp-log/$(date +%Y-%m-%d).log可实时跟踪。最常见的错误是HTTP 400 Bad Request,这通常意味着模型 URL 格式错误(如少写了/v1/chat/completions)或Content-Type头缺失(Codex CLI 会自动添加,但如果你用 curl 直接调用,必须手动加--header "Content-Type: application/json")。

5. 常见问题与独家避坑指南:那些文档里不会写的真相

在部署和使用 Superpowers 的过程中,我踩过的坑足够写一本小册子。以下是高频问题的根因分析和真正有效的解决方案,全部来自生产环境实测。

5.1 “Please verify your account to continue using antigravity”:不是账户问题,是证书问题

这个错误信息极具迷惑性,它让你以为是 Google 账户没授权。实际上,95% 的情况是本地 Superpowers 服务的 TLS 证书不被 Chrome 信任。

根因:Antigravity 的 Service Worker 脚本antigravity-sw.js会向https://127.0.0.1:5002/sp-ping发送 HTTPS 请求。但 Superpowers 服务默认使用自签名证书,Chrome 拒绝连接,导致心跳失败,进而触发账户验证提示。

解决方案:

  1. 打开 Chrome,访问chrome://flags/#unsafely-treat-insecure-origin-as-secure;
  2. 搜索 “insecure origin”,找到 “Insecure origins treated as secure”,将其设为
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 17:02:08

AI Agent营销技能包实战:用Claude Code模块化SEO与CRO工作流

1. 从“marketingskills”这个标题说起&#xff1a;它到底想解决什么问题 第一次看到“marketingskills”这个标题&#xff0c;我脑子里蹦出来的不是某个具体工具&#xff0c;而是一类很典型的需求&#xff1a;把营销这件事拆成可复用、可组合、可自动执行的技能模块。过去我们…

作者头像 李华
网站建设 2026/10/6 17:00:07

D3DCompiler_47.dll缺失全解析:DirectX组件与DLL修复指南

先分享一个真实场景&#xff1a;我在一台刚装好系统没多久的 Windows 10 笔记本上跑一个三维建模工具&#xff0c;程序启动画面刚出现三秒钟&#xff0c;马上弹了个提示框&#xff0c;写着“由于找不到 D3DCompiler_47.dll&#xff0c;无法继续执行代码。重新安装程序可能会解决…

作者头像 李华
网站建设 2026/10/6 16:58:47

ponytail插件怎么用?轻量级任务聚合工具从配置到自动化实操指南

1. 从“ponytail”这个词说起&#xff1a;它到底是什么 第一次看到“ponytail”这个词&#xff0c;很多人脑子里蹦出来的画面大概是发型——马尾辫。但在技术圈和效率工具圈子里&#xff0c;ponytail 早就不是发型的意思了。它是一类 轻量级任务聚合与快捷操作工具 的代称&am…

作者头像 李华
网站建设 2026/10/6 16:57:33

Agent-Reach:为AI Agent打造可控、安全的外部工具触达层

先解释一下&#xff1a;这个标题“Agent-Reach”本身没有附带正文&#xff0c;我就按现在AI Agent工程化里最常被卡住的那个问题来展开——模型本身会“想”&#xff0c;但不会“够”&#xff0c;Action能力弱、工具接不齐、权限控不住。围绕这个场景&#xff0c;我把Agent-Rea…

作者头像 李华
网站建设 2026/10/6 16:56:51

职场里的事:向上汇报、跨部门协作与责任边界

“职场里的事”这个名字看着宽泛&#xff0c;其实恰恰对应了大多数人在办公室里真正消耗精力的那几件事&#xff1a;沟通、汇报、跨部门协作、还有各种说不清道不明的责任边界。我见过太多技术不错、干活也卖力的人&#xff0c;最终卡在“事没少做&#xff0c;但结果不被人看见…

作者头像 李华
网站建设 2026/10/6 16:56:36

STM32F407 DCMI接口驱动OV5640摄像头:从寄存器配置到图像调试全记录

你们手里拿到的板子丝印写的是“STM407ZET6”&#xff0c;别慌&#xff0c;这个芯片就是常见的STM32F407ZET6&#xff0c;只是很多开发板厂商习惯把“32F”省掉。我这次调试的目标很清楚&#xff1a;用F407ZET6的DCMI接口接一颗OV5640摄像头&#xff0c;把图像数据采回来&#…

作者头像 李华