codex-switcher 是什么?

Codex Switcher 是一个 Tauri 桌面工具,用来在同一台电脑保存并切换多个个人 Codex 账号,查看 5 小时与每周额度,并可发送 warm-up 请求。它会接触 OAuth refresh token、API key 和 ~/.codex/auth.json,因此首先是凭据管理工具,不只是用量面板。

⭐ 1 Stars 🍴 0 Forks Rust — 作者: Lampese
来源:github.com/Lampese/codex-switcher;https://github.com/Lampese/codex-sw… 查看 GitHub 仓库 → 📘 使用教程 →

为什么值得关注

多账号切换时,ChatGPT OAuth refresh token 可能轮换;如果工具保存的是旧 token,切回账号会失效。Codex Switcher 把 token 同步、用量查询、托盘切换和 warm-up 放到一个界面。

来源:github.com/Lampese/codex-switcher

核心功能

多账号保存与切换

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

来源:github.com/Lampese/codex-switcher
额度、统计与托盘控制

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

来源:github.com/Lampese/codex-switcher
定时 warm-up

可手动或按重置窗口、指定时间给一个或全部账号发送最小请求。该功能会真实消耗请求并改变额度窗口,不是离线提醒。

来源:github.com/Lampese/codex-switcher
桌面与浏览器界面

Tauri 桌面端之外,pnpm lan 会在 0.0.0.0:3210 启动浏览器面板,并把账号导入、导出、切换、warm-up 和进程控制暴露为 HTTP 调用。

来源:github.com/Lampese/codex-switcher

技术架构

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 是仓库内固定常量,不能当作用户独有密码保护。

来源:github.com/Lampese/codex-switcher/blob/main/src-tauri/src/auth/storag…

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) reqwest 与 tokio 用于 OAuth、用量和 warm-up 请求reqwest 与 tok… XChaCha20-Poly1305、PBKDF2 与 SHA-256 用于完整备份格式XChaCha20-Poly… Tauri updater、process、dialog 和 opener 插件Tauri updater… 多账号保存与切换 额度、统计与托盘控制 定时 warm-up 桌面与浏览器界面 codex-switcher 项目本体 核心功能 关键依赖

技术栈

语言Rust 后端与 React 19/TypeScript 前端框架Tauri 2 + Vite + tiny_http 浏览器面板
reqwest 与 tokio 用于 OAuth、用量和 warm-up…XChaCha20-Poly1305、PBKDF2 与 SHA-256 …Tauri updater、process、dialog 和 opene…
macOS、Windows、Debian/AppImage/RPM 发布资产;main 需要 Node.js 18+、pnpm 与 Rust;官方 main 根目录未提供独立 LICENSE 文件
来源:github.com/Lampese/codex-switcher;https://github.com/Lampese/codex-sw…

快速上手

优先在临时系统用户或测试机从源码审查构建,不要导入主账号。若使用 v0.2.19 release,先核对资产哈希与签名;macOS 官方说明当前包未公证,不建议直接用 xattr 移除隔离后运行。首次只添加一个低权限测试账号,确认 ~/.codex-switcher/accounts.json 与 ~/.codex/auth.json 权限为 0600,关闭自动 warm-up,不运行 pnpm lan,也不导出 slim 或 full 备份。
来源:github.com/Lampese/codex-switcher;https://github.com/Lampese/codex-sw…

使用场景

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

来源:github.com/Lampese/codex-switcher

优势与局限

优势

  • 明确处理 OAuth refresh token 轮换和切换竞争
  • 账号、额度、订阅信息和托盘动作集中在一个界面
  • Unix 上账户库与 auth.json 设置为 0600
  • 源码可审计,并为多个桌面系统发布安装资产

局限

  • 账户库会集中保存可用的 API key 或 OAuth token,本机失陷时影响多个账号
  • pnpm lan 默认监听 0.0.0.0,源码所列 /api/invoke/* 含凭据导出、账号切换和进程控制,本轮未看到请求鉴权层
  • full encrypted 备份使用源码内固定 passphrase,slim 导出则直接携带 API key 或 refresh token,均不应通过普通聊天或网盘传递
  • macOS release 当前未 Apple notarize,官方建议移除 quarantine 的做法会绕过系统拦截
  • 官方 main 根目录未提供 LICENSE 文件,不能据此假定拥有复制、修改或再分发授权
  • warm-up 会发送真实请求;多账号使用仍需逐项遵守当前账号与服务条款
来源:github.com/Lampese/codex-switcher;https://github.com/Lampese/codex-sw…

最新版本

Latest GitHub Release 为 v0.2.19,发布于 2026-09-19,说明重点是让订阅到期日期随实时账户元数据更新。官方 main 在 2026-09-20 已改为 0.2.20,但这不等于 0.2.20 已发布;使用者应区分 release 资产与 main 源码。

来源:github.com/Lampese/codex-switcher/releases/tag/v0.2.19;https://github…

实测与证据

status: docs_and_source_checked_not_installed  |  checked_at: 2026-09-23  |  environment: 阅读官方 README、v0.2.19 Releases、package.json、Cargo.toml,以及 storage、switcher、account export 和 web server 源码;浅克隆 main 提交 9dec3c1。未运行应用。  |  limitations: 没有验证 release 签名、安装、OAuth、token 轮换、文件权限在 Windows 的等价保护、自动更新、用量准确性、warm-up、进程终止、LAN 攻击面或上游条款适用性。  |  observed_output: GitHub Releases 把 v0.2.19 标为 latest,发布于 2026-09-19;main 已把应用版本改为 0.2.20。源码显示账户库为普通 JSON+Unix 0600,完整备份使用固定 passphrase,LAN server 将敏感 commands 暴露为 HTTP 路由。

来源:github.com/Lampese/codex-switcher;https://github.com/Lampese/codex-sw…

同类项目对比

相比 CodexBar,Codex Switcher 的核心是保存多个 Codex 凭据、改写 auth.json 和切换账号;CodexBar 主要聚合多个 AI 服务的用量、余额与本地成本记录,覆盖面更广,但不以替换 Codex 活动身份为主。只看用量时,优先选择不集中保存多账号 refresh token 的方案;确需切换时再评估 Codex Switcher,并保持 LAN 面板关闭。

来源:github.com/Lampese/codex-switcher;https://github.com/steipete/CodexBar

总结评价

不建议普通用户把 Codex Switcher 直接接入主账号。确有多账号切换需求时,先在隔离用户下审查构建,只放一个测试账号,关闭 warm-up 与 LAN 面板,并把本地账户库和任何导出都当作高敏感凭据;不能接受固定备份口令、未公证应用或无 LICENSE 边界时,应放弃使用。

来源:github.com/Lampese/codex-switcher;https://github.com/Lampese/codex-sw…

常见问题

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 的账号共享政策也把个人账号限定为个人使用。

资料与核验范围
本文依据项目公开资料整理。版本、安装命令和功能边界可能随上游更新,请以所列来源和项目当前版本为准。 资料核对时间: 2026-09-23 13:55.

参考材料:README、GitHub API、依赖文件