首页 / 开源热榜 / Codex Switcher / 使用教程

Codex Switcher 中文教程:先把它当凭据工具审查

核对日期:2026-09-23 · 阅读官方文档与源码,未运行应用

Codex Switcher 能保存多个个人 Codex 账号、改写活动 auth.json、查看额度并定时发送 warm-up 请求。它处理的是可以继续登录账号的 OAuth token 和 API key,因此便利性要放在凭据安全之后考虑。

版本口径:Latest GitHub Release 是 v0.2.19,发布于 2026-09-19。main 已改为 0.2.20,但 main 版本号不能代替正式 release。

1. 不要先导入主账号

最小试用环境是一个临时系统用户和一个低权限测试账号。Codex Switcher 会把账户库写到 ~/.codex-switcher/accounts.json,切换时再写 ~/.codex/auth.json。Unix 源码会把文件权限设为 0600,但明文账户库依然保存可用 token;能读取该用户文件的人仍可能控制多个账号。

2. macOS 发布包需要额外判断

官方 README 明确说当前 macOS release 没有 Apple notarize,并给出 xattr 移除 quarantine 的命令。这个命令会撤掉系统下载隔离,不是完成安全验证。更稳妥的路径是核对 tag、release 资产与源码后自行构建,或等待经过公证的包。

3. 完整备份的“加密”边界

源码确实采用 XChaCha20-Poly1305、随机 salt/nonce 和 PBKDF2;同时,调用加解密的 passphrase 是写在公开源码里的固定常量。这能阻止直接用文本编辑器打开,却不能提供只有你知道的密码。slim 导出更直接:它包含 API key 或 refresh token。两类文件都应按高敏感凭据保存。

4. 不要启动 LAN 面板

高风险边界:pnpm lan 默认监听 0.0.0.0:3210。官方 web.rs 把账户导入导出、切换、warm-up 和终止 Codex 进程等动作映射到 /api/invoke/*;本轮源码审查没有看到请求鉴权。

这意味着“只在家里局域网用”也不构成权限控制。桌面模式没有远程使用需求时,不应运行该服务器。确需研究时,至少改为回环地址,并先自行增加认证、CSRF 与来源限制,再做独立安全测试。

5. warm-up 会产生真实请求

手动、重置后自动和定时 warm-up 都会向账号发送最小请求,并可能改变额度窗口。第一次应全部关闭。只有在确认当前套餐规则、费用与条款允许后,才在单个测试账号手动执行一次,并核对用量变化。

6. 账号归属不等于任何用法都允许

项目免责声明只面向本人拥有的多个账号,并明确排除共享、账号池和规避 OpenAI 条款。OpenAI 的账号共享政策也说明个人账号供创建者本人使用。工具能切换凭据并不能替你判断具体套餐、地区和用途是否符合当前条款。

7. 同类对比:Codex Switcher 与 CodexBar

相比 CodexBar,Codex Switcher 的核心是保存多个 Codex 凭据并更换活动身份;CodexBar 的重点是跨多个 AI 服务汇总用量、余额和本地成本记录。只需要观察额度时,优先选择不集中保存多账号 refresh token 的方案;确需切换时,再承担这里列出的本地存储风险。

8. 验证状态与边界

已核对:官方 README、v0.2.19 Releases、package.json、Cargo.toml、账户存储、切换、导出与 web server 源码,以及 main 提交 9dec3c1。仓库 main 根目录没有独立 LICENSE 文件,不能把“公开源码”理解为自动授予再分发许可。

未验证:release 签名、安装、OAuth、token 轮换、Windows 文件保护、自动更新、用量准确性、warm-up、进程终止、LAN 攻击面和条款适用性。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合一个人确实拥有多个独立账号,并愿意承担本机集中保存 token 的风险时,查看额度和手动切换。不要用于团队共享、账号池、绕过额度或把浏览器面板暴露到局域网;项目自己的免责声明也排除账号共享和规避条款。

原教程未展开的系统信息

核心功能

  • 多账号保存与切换

    支持 OAuth 登录或导入 auth.json;切换前把当前活动账号的最新 token 同步回账户库,再把目标账号写入 ~/.codex/auth.json。Unix 上相关文件被设为 0600。

  • 额度、统计与托盘控制

    展示 5 小时和每周窗口、重置时间、credits、订阅到期与活动统计,并可从托盘刷新或切换账号。显示值依赖上游返回和本地记录。

架构与数据流

React/Vite 界面调用 Tauri 2 的 Rust commands。账户库位于 ~/.codex-switcher/accounts.json,包含 API key 或 ChatGPT token,并在 Unix 上设为 0600;切换器改写 ~/.codex/auth.json。OAuth 刷新和切换共用锁,避免晚到的刷新覆盖刚选中的账号。可选 codex-web 使用 tiny_http 监听指定 host,把前端动作映射到 /api/invoke/*。源码中的完整备份使用 XChaCha20-Poly1305 和 PBKDF2,但解密 passphrase 是仓库内固定常量,不能当作用户独有密码保护。

技术栈和运行条件

语言

Rust 后端与 React 19/TypeScript 前端

框架

Tauri 2 + Vite + tiny_http 浏览器面板

关键依赖

  • reqwest 与 tokio 用于 OAuth、用量和 warm-up 请求
  • XChaCha20-Poly1305、PBKDF2 与 SHA-256 用于完整备份格式
  • Tauri updater、process、dialog 和 opener 插件

运行环境

macOS、Windows、Debian/AppImage/RPM 发布资产;main 需要 Node.js 18+、pnpm 与 Rust;官方 main 根目录未提供独立 LICENSE 文件

常见问题

Codex Switcher 会把账号 token 存在哪里?

源码把账户库写到 ~/.codex-switcher/accounts.json,并在切换时改写 ~/.codex/auth.json。Unix 上两者会设置为 0600,但账户库内容本身仍包含可用凭据。

full encrypted 备份适合上传网盘吗?

不建议。源码虽然使用 XChaCha20-Poly1305 和 PBKDF2,但 passphrase 是仓库里的固定常量,不是用户自己设置的秘密。应把备份按高敏感凭据文件处理。

可以把 pnpm lan 暴露给局域网吗?

不建议。README 的命令默认绑定 0.0.0.0,web.rs 暴露导入导出、切换、warm-up 和进程控制接口;本轮源码审查没有看到这些请求前的鉴权层。

macOS 提示应用损坏时可以直接运行 xattr 吗?

该命令会移除 quarantine。官方也说明当前 release 未公证;更稳妥的做法是核对源码和发布资产,自己构建或等待经过公证的版本。

Codex Switcher 可以拿来共享账号或绕过额度吗?

不应这样使用。项目免责声明明确排除账号共享、账号池和规避 OpenAI 条款;OpenAI 的账号共享政策也把个人账号限定为个人使用。