🔄 Codex Switch Assistant
在 VS Code 中保存、切换多个 Codex 账号,并实时查看各账号的 ChatGPT Codex 使用额度。

✨ 为什么需要这个扩展?
如果你同时拥有多个 Codex 账号(比如工作和个人账号分开,或需要轮流使用不同套餐的额度),每次手动切换都要:退出登录 → 重新登录 → 等待认证 → 刷新。这个扩展让整个过程变成一键切换。
💡 按 Ctrl+Shift+P 搜索 Codex Switch Assistant 可快速访问所有命令。
🚀 功能一览
- 📋 账号管理 — 在侧边栏集中管理所有已保存的 Codex 账号
- ⚡ 一键切换 — 点击账号即可切换,支持自动/手动重载窗口
- 📥 导入当前登录 — 一键保存当前登录,无需重新认证
- ➕ 添加新账号 — 在隔离环境中完成登录,不覆盖当前账号
- 📊 额度查询 — 查看各账号的 ChatGPT Codex 剩余额度
- 🔄 自动刷新 — 可配置定时刷新额度(1-60 分钟间隔)
- 🔐 安全存储 — 凭据加密存储在 VS Code
SecretStorage,不写入文件
📦 安装
从 VS Code 扩展面板
- 打开 VS Code → 扩展 (
Ctrl+Shift+X)
- 点击右上角
… → "从 VSIX 安装…"
- 选择
.vsix 文件
从命令行
code --install-extension codex-switch-assistant-0.1.1.vsix
安装后在 Activity Bar 点击 Codex 账号 图标即可打开管理面板。
⚙️ 前提条件
- 安装 Codex CLI,确保终端可运行
codex
- 至少完成过一次 Codex 登录
- 确认凭据存储为文件模式。在
~/.codex/config.toml 中设置:
cli_auth_credentials_store = "file"
📖 使用指南
首次使用
- 打开 Activity Bar 中的「Codex 账号」面板
- 点击 导入当前登录,为当前账号命名
- 如需添加更多账号,点击 添加账号,选择登录方式完成认证
日常使用
| 操作 |
方式 |
| 切换账号 |
点击账号列表中的账号,或右键 →「切换到此账号」 |
| 查看额度 |
点击账号旁的刷新图标,或点击「刷新全部」 |
| 移除账号 |
右键账号 →「移除账号」 |
切换后重载策略
| 设置 |
行为 |
prompt(默认) |
切换后询问是否重载 VS Code |
always |
切换后立即重载 |
never |
不重载,手动 Ctrl+R |
⌨️ 命令
所有命令均可通过 Ctrl+Shift+P 搜索 Codex Switch Assistant 找到:
| 命令 |
说明 |
| 添加账号 |
在隔离环境中登录另一个 Codex 账号 |
| 导入当前登录 |
将当前 auth.json 保存为可切换的账号 |
| 切换到此账号 |
激活所选账号的凭据 |
| 刷新此账号额度 |
查询单个账号的剩余额度 |
| 刷新全部账号额度 |
依次查询所有已保存账号的额度 |
| 移除账号 |
删除本扩展保存的账号副本 |
| 打开 Codex 主目录 |
在资源管理器中打开 Codex 状态目录 |
🛠️ 设置
| 设置项 |
默认值 |
说明 |
codexSwitchAssistant.codexHome |
空 |
Codex 状态目录;留空时读取 CODEX_HOME 或 ~/.codex |
codexSwitchAssistant.codexExecutable |
codex |
Codex CLI 命令路径 |
codexSwitchAssistant.reloadAfterSwitch |
prompt |
切换后重载策略:prompt / always / never |
codexSwitchAssistant.autoRefreshMinutes |
0 |
自动刷新间隔(分钟),0 关闭 |
codexSwitchAssistant.quotaTimeoutSeconds |
30 |
单次额度查询超时(秒) |
🔐 安全说明
- 账号凭据加密存储在 VS Code
SecretStorage,不写入文件、日志或工作区配置
- 切换时使用原子写入 + 权限受限的临时文件,失败时自动恢复原登录
- 凭据不会作为命令行参数传递,不会在错误信息中泄露
auth.json 含有访问令牌,切勿提交到 Git、上传到网盘或分享给他人
📊 额度查询原理
扩展启动本机 codex app-server,通过 JSONL/stdio 协议调用 account/rateLimits/read 接口读取额度,完成后自动终止子进程。
- 查询失败时显示「额度不可用」,不影响账号保存和切换
- API Key 登录显示「API 计费 / 无 ChatGPT 套餐额度」
- 不通过抓取网页或调用非公开接口来获取数据
⚠️ 兼容性与限制
- VS Code
≥1.96.0
- 仅支持文件式凭据(
auth.json),不支持系统钥匙串
- Remote SSH / Dev Container / WSL 中需将扩展与 Codex CLI 安装在同一侧
auth.json 同一时刻只有一个活动账号,已运行的 Codex 会话需重载窗口后才能使用新账号
- 企业管理员设置的登录限制不会被本扩展绕过
🔧 本地开发
npm install # 安装依赖
npm run watch # 开发模式(热更新)
在 VS Code 中按 F5 启动 Extension Development Host。
npm run check # TypeScript 类型检查
npm test # 运行单元测试
npm run build # 生产构建
npm run verify # 完整验证(check + test + build)
npm run package # 打包 .vsix
🆘 常见问题
找不到 Codex CLI
确认终端中 codex --version 可运行,或在设置中填写 codexSwitchAssistant.codexExecutable 的绝对路径。
找不到 auth.json / 登录状态无法识别
确认已完成 Codex 登录,并在 ~/.codex/config.toml 中设置 cli_auth_credentials_store = "file"。
切换账号后仍显示旧账号
重载 VS Code 窗口 (Ctrl+R),并终止仍在运行的旧 Codex CLI 进程。
额度显示"不可用"
检查 CLI 版本和网络连接;API Key 登录本身不提供 ChatGPT 套餐额度。
提示存在切换锁文件
确认没有其他 VS Code 窗口正在切换账号,然后手动删除报错中指出的 .codex-switch-assistant.lock 文件。
MIT License
Made with ❤️ for Codex users