首页 / 资讯中心 / 文章详情

【Bug已解决】Codex app upgrade loses Superpowers plugin installed state 解决方案:把 auth.json 改到 TaoToken 后重装插

【Bug已解决】Codex app upgrade loses Superpowers plugin installed state 解决方案:把 auth.json 改到 TaoToken 后重装插 ★ FEATURED ARTICLE
1. Codex 升级后 Superpowers 插件状态丢失问题到底出在哪Codex 桌面端升级后 Superpowers 插件安装状态丢失这个问题的典型表现是你昨天还在用 Superpowers 跑代码生成任务今天打开 Codex 发现插件列表空了设置里「已安装插件」显示为零功能入口全部消失。重新装一遍 Superpowers 又能用但下次 Codex 推送新版本、你点了升级插件状态再次被清空。这个循环会反复出现直到你把状态存储位置和授权配置一起改掉。这个问题的核心检索词是「Codex app upgrade loses Superpowers plugin installed state」翻成大白话就是Codex 应用升级把 Superpowers 插件的已安装状态弄丢了。它适合两类人看一类是本地装了 Codex 桌面端、用 Superpowers 做日常编码辅助的开发者另一类是在团队里维护 Codex 环境、需要保证升级后插件状态持久保留的工程负责人。根因不复杂但容易被忽略。Codex 桌面端在升级时安装包目录macOS 的/Applications/Codex.app/Contents/...、Windows 的C:\Program Files\Codex\...会被新版本整体替换。如果 Superpowers 的安装状态、授权 token、endpoint 配置写在了这个包目录里升级一覆盖就全没了。另一条路径是升级流程没有做状态迁移新版本换了状态文件格式或路径但升级程序没有把旧状态搬过去直接读了一个空的新文件应用就认为「没装过任何插件」。还有一个隐藏因素是授权。Codex 桌面端升级后除了插件列表清空往往还会要求重新登录授权。如果你之前把auth.json里的 endpoint 指向了默认地址升级后这个文件被重置Superpowers 插件即使重装也拿不到有效的模型调用凭证表现为「装了但用不了」。所以修复要同时处理两件事把插件状态存到升级碰不到的用户数据目录以及把auth.json的 endpoint 改到 TaoToken 并保证升级后不被覆盖。我试过在 macOS 和 Windows 两边复现这个流程下面按「先改授权配置、再重装插件、最后验证持久性」的顺序写每一步都给可复制的命令和配置片段。2. TaoToken 前置准备Base URL、API Key 与 Model ID 三件套在动手改auth.json之前先把 TaoToken 这边的三件套准备好。Codex 桌面端要正常调用模型必须同时具备 Base URL、API Key 和 Model ID缺一个都会在插件重装后报授权或模型不可用。Base URL 用https://taotoken.net/api注意这个地址不带任何查询参数直接作为 endpoint 写入配置。API Key 需要到控制台创建路径是 API Keys 页面创建后复制那串以sk-开头的密钥只显示一次丢了只能重建。Model ID 根据你用的模型填比如claude-sonnet-4-20250514这类标识具体以模型对话页面列出的可用模型为准。如果你还没创建过 Key可以按这个顺序走先打开模型对话页面确认你要用的模型 ID然后进控制台再进 API Keys 创建一个新 Key命名建议带上用途比如codex-desktop-superpowers方便以后排查。创建完把 Key 存到密码管理器里不要直接贴在聊天记录或公开仓库。接入文档页面有完整的 endpoint 说明和请求示例遇到 401 或模型找不到时先对照文档检查 Base URL 和 Model ID 是否写对。对于长期在 Codex 里跑编码任务、需要稳定调用额度的场景可以看 Coding Plan 页面它比按量计费更适合高频使用。这里要强调一点TaoToken 是合规的模型调用服务入口不是所谓的中转或代理配置时直接把它当作正常的 API endpoint 使用即可。你不需要任何额外网络工具只要网络能正常访问https://taotoken.net/api就行。三件套准备好之后下一步是把它们写进 Codex 的auth.json并确保这个文件放在用户数据目录而不是应用包目录。3. 可复制配置auth.json 与 endpoint 写入用户数据目录Codex 桌面端的授权配置默认可能放在应用包内或用户目录不同版本行为不一致。我们要做的是显式把auth.json放到用户数据目录并写入 TaoToken 的 endpoint 和 Key。这样升级只替换包目录用户目录里的auth.json不会被碰。先确认用户数据目录的位置。macOS 是~/Library/Application Support/Codex/Windows 是%APPDATA%\Codex\Linux 是~/.config/Codex/。如果目录不存在就手动创建。macOS 下创建并写入配置mkdir -p $HOME/Library/Application Support/Codex cat $HOME/Library/Application Support/Codex/auth.json EOF { endpoint: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model: claude-sonnet-4-20250514, provider: taotoken } EOFWindows PowerShell 下对应写法$dir Join-Path $env:APPDATA Codex New-Item -ItemType Directory -Force -Path $dir | Out-Null { endpoint: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model: claude-sonnet-4-20250514, provider: taotoken } | Set-Content -Encoding UTF8 (Join-Path $dir auth.json)Linux 下mkdir -p $HOME/.config/Codex cat $HOME/.config/Codex/auth.json EOF { endpoint: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model: claude-sonnet-4-20250514, provider: taotoken } EOF如果你用的是 Codex 的 TOML 配置形式部分版本支持config.toml可以写成[provider.taotoken] base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model claude-sonnet-4-20250514写完配置后把文件权限收紧避免其他用户读到 Keychmod 600 $HOME/Library/Application Support/Codex/auth.jsonWindows 下可以用icacls限制访问或者至少确保文件不在共享目录里。这里的关键点是auth.json必须落在用户数据目录而不是Codex.app/Contents/Resources/或C:\Program Files\Codex\下面。判断方法很简单看路径里有没有Program Files、/Applications/、/usr/lib这类字样有就说明放错了升级必丢。配置写好后先别急着重装插件下一步先验证授权请求能不能通。4. 验证请求与插件重装确认升级后状态持久保留配置写完先用一个最小请求验证 TaoToken endpoint 是否可用。用 curl 直接打模型接口curl -sS https://taotoken.net/api/v1/messages \ -H Content-Type: application/json \ -H x-api-key: sk-你的TaoToken密钥 \ -H anthropic-version: 2023-06-01 \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: ping}] }如果返回里带content字段和模型输出说明 endpoint、Key、Model ID 三件套都对。如果返回 401检查 Key 是否复制完整、有没有多余空格如果返回模型不存在检查 Model ID 是否和模型对话页面列的一致。授权通了之后重装 Superpowers 插件。Codex 桌面端一般在插件市场或扩展面板里搜索 Superpowers点安装。安装完成后插件状态会写入用户数据目录下的状态文件。不同版本状态文件名可能是plugins.json或extensions.json位置在~/Library/Application Support/Codex/或%APPDATA%\Codex\下。重装后立刻检查状态文件内容cat $HOME/Library/Application Support/Codex/plugins.json应该能看到类似{installed: [Superpowers], version: 1}的结构。如果这个文件出现在应用包目录里说明 Codex 当前版本还在往包内写状态需要手动把状态文件迁移到用户目录或者等版本修复。接下来做升级持久性验证。手动触发一次 Codex 升级或者模拟升级流程把应用包目录整体替换为新版本然后重启 Codex再看插件列表。如果 Superpowers 还在、授权没掉说明配置生效。如果插件又没了检查状态文件是不是被写回了包目录。为了防升级中途崩溃导致状态文件写坏建议在升级前备份状态文件cp $HOME/Library/Application Support/Codex/plugins.json \ $HOME/Library/Application Support/Codex/plugins.json.bak升级后如果发现插件丢失可以从备份恢复再排查升级流程为什么没保留状态。5. 常见报错排查401、local proxy failed、reading choices 与 OAuth这一节按真实报错逐条对照都是我在 Codex 桌面端升级和重装 Superpowers 过程中实际遇到的。401 Unauthorized最常见。原因通常是auth.json里的 Key 写错、Key 被撤销、或者 endpoint 写成了带路径的地址。检查endpoint是否严格等于https://taotoken.net/api不要多加/v1或斜杠。Key 重新从 API Keys 页面复制一次注意不要带换行。如果升级后auth.json被重置重新写入即可。local proxy failed / connection refusedCodex 桌面端某些版本会尝试走本地代理端口如果本地没有对应服务就会报这个错。解决方法是确认auth.json里没有配置proxy字段或者把provider显式设为taotoken让 Codex 直接请求https://taotoken.net/api。同时检查系统环境变量里有没有残留的HTTP_PROXY、HTTPS_PROXY有就临时清掉再启动 Codex。Error reading choices / unexpected response shape这个报错说明请求发出去了但返回结构不是 Codex 预期的格式。常见原因是 Model ID 填成了不兼容的模型或者 endpoint 指向了错误的路径。把 Model ID 换成模型对话页面确认可用的模型endpoint 保持https://taotoken.net/api。如果用的是 TOML 配置检查base_url有没有被其他配置覆盖。OAuth 授权失败 / 反复要求登录Codex 升级后可能重置了 OAuth token而 Superpowers 插件依赖这个 token 做授权。解决方法是把auth.json里的api_key方式作为主授权避免依赖 OAuth 流程。如果 Codex 强制走 OAuth先在设置里退出登录再重新用 API Key 方式配置。检查auth.json是否被升级覆盖必要时把文件设为只读chmod 400 $HOME/Library/Application Support/Codex/auth.json插件列表为空但状态文件存在说明状态文件路径和 Codex 读取路径不一致。检查 Codex 版本对应的状态文件路径可能是plugins.json也可能是extensions.json把内容迁移到正确文件名。同时确认文件权限Codex 进程要有读权限。升级后 Superpowers 显示已安装但功能不可用这是授权和插件状态分离导致的。插件状态在但auth.json被重置模型调用失败。重新写入auth.json并重启 Codex 即可。排查时建议打开 Codex 的日志面板看升级过程中有没有「state migration」「plugin state preserved」之类的记录。如果没有说明当前版本还没做状态迁移需要手动保证状态文件在用户目录。6. 长期稳定使用把 Codex Superpowers TaoToken 固化成可复用配置把上面的步骤跑通之后建议把配置固化成一套可复用的方案避免每次升级都手动修。第一把auth.json和插件状态文件纳入版本管理或备份脚本。写一个简单的备份脚本在每次 Codex 升级前自动执行#!/bin/bash STATE_DIR$HOME/Library/Application Support/Codex BACKUP_DIR$HOME/.codex-backup/$(date %Y%m%d-%H%M%S) mkdir -p $BACKUP_DIR cp $STATE_DIR/auth.json $BACKUP_DIR/ 2/dev/null cp $STATE_DIR/plugins.json $BACKUP_DIR/ 2/dev/null echo backup done: $BACKUP_DIR第二把auth.json设为只读防止升级流程误写。macOS/Linux 用chmod 400Windows 用文件属性只读。这样即使升级程序想覆盖也会因为权限失败而保留原文件。第三如果团队多人使用把auth.json的模板和 Superpowers 重装步骤写成内部文档新成员按文档配置避免每个人踩一遍坑。模板里 Base URL 固定https://taotoken.net/apiModel ID 留空让使用者按模型对话页面填。第四长期高频跑编码任务的话用 Coding Plan 比按量计费更划算配置方式不变只是 Key 的额度来源不同。需要看用量和 Key 管理就到控制台接入细节查接入文档。第五升级后做一次快速校验打开 Codex看插件列表里 Superpowers 是否在发一个最小请求确认模型能返回。两步都过说明这次升级没有破坏状态。如果插件丢了从备份恢复plugins.json再检查auth.json是否被重置。这套流程跑顺之后Codex 升级不再需要重新登录授权Superpowers 插件状态也能持久保留。核心就一句话用户状态和授权配置永远放在升级碰不到的用户数据目录endpoint 固定指向https://taotoken.net/api升级前备份、升级后校验。
阅读完成 · 觉得有帮助?
咨询建站