Files
cdxs/README.md
2026-06-08 15:49:00 +08:00

3.8 KiB
Raw Permalink Blame History

cdxs

cdxs 是一个面向 Codex 的账号、home、会话和账号状态同步管理工具。

它把多个 Codex OAuth / API Key 账号保存在本地,再按需写回 Codex 使用的 auth.json。同时,它可以管理多个独立 CODEX_HOME,避免手动搬运认证文件和会话状态。

简介

Codex 的认证和会话状态都来自 CODEX_HOMEcdxs 做的是在这个目录外面加一层可操作的管理能力:

  • 账号管理:导入已有 auth.json,通过 OAuth 或 API Key 登录,切换当前账号,并在需要时刷新 OAuth token。
  • 配额缓存:列出账号时自动刷新过期的 OAuth 配额缓存。
  • Home 管理:创建命名的 CODEX_HOME,并绑定到指定账号。
  • 命令运行:用指定账号或 home 运行 codex exec,只为该进程设置 CODEX_HOME
  • 会话管理:查看会话、统计 token 和文件信息、移入可恢复垃圾箱、恢复会话、修复缺失的会话索引。
  • 线程同步:在多个受管理 home 之间补齐缺失的会话线程。
  • 状态同步:运行轻量 HTTP 服务,在多台机器之间推送或拉取账号状态。

管理 Codex 登录信息本地文件。

存储

Codex home 的解析顺序:

  1. --codex-home
  2. CODEX_HOME
  3. ~/.codex

主要文件:

  • auth.json:Codex 认证文件,由账号切换或运行命令时写入。
  • cdxs.tomlcdxs 的本地状态,保存账号、home、同步配置和元数据。
  • state_5.sqliteCodex 会话数据库。
  • session_index.jsonlCodex 会话列表索引。
  • sessions/Codex rollout JSONL 文件。
  • cdxs-trash/:会话垃圾箱,用于可恢复删除。

会话修复、隐藏、恢复和同步可能修改 Codex 会话状态;写入前会备份相关状态文件。

常用快捷命令

  • cdxs:列出账号,并自动刷新过期配额缓存。
  • cdxs -f:强制刷新账号配额后再列出。
  • cdxs show <账号>:显示单个账号详情,等价于 cdxs account show <账号>
  • cdxs alias set <别名> <账号>:给任意 OAuth 或 API Key 账号设置别名。
  • cdxs alias list:列出所有账号别名。
  • cdxs alias remove <别名或账号>:删除指定账号的别名。
  • cdxs switch:不带参数时自动选择可用配额最优的账号。
  • cdxs switch <账号或别名>:切换到指定账号,OAuth 和 API Key 账号都可通过 alias 切换。
  • cdxs switch A --model <model> --effort <effort> --name OpenAI:切换时更新该账号默认模型、思考程度;--name 仅用于 API 模式的 provider name。
  • cdxs exec <账号> -- --model gpt-5 "hello":用指定账号运行 codex exec
  • cdxs exec <home> --home --temp -- --model gpt-5 "hello":基于指定受管 home 建立一次性临时 CODEX_HOME 后运行 codex exec
  • cdxs login --api <key> --base-url <url> --alias A --model <model> --name OpenAI --switch:保存 API Key 账号并可选切换;base-url 为空时使用 OpenAI 默认 API。
  • cdxs login api --key <key> --base-url <url> --alias A --model <model> --name OpenAI --switch:同上,保留旧的子命令形式。
  • cdxs remove <账号>:删除账号,等价于 cdxs account remove <账号>
  • cdxs pull:从同步服务拉取账号状态,等价于 cdxs sync pull
  • cdxs push:推送账号状态到同步服务,等价于 cdxs sync push

账号 alias 保存在账号记录里,因此会随 cdxs push 推送到同步服务,并随 cdxs pull 从同步服务拉取回来。

同步服务

内置同步服务只保存每个用户的账号状态,并提供登录、拉取、推送接口。它同步的是可迁移的 cdxs 账号状态,不同步整个 Codex home。

项目包含 Dockerfilecompose.yml。默认容器监听 8765,数据目录为 /data