- 佩克兰德2026-09-0833158
由于自己有一个别人5xpro的账号,不过看到gpt学生优惠还是忍不住动手买了(别问我多少钱,我买贵了,而且plus5小时限额路边一条。。。),然后就想着怎么用呢?来回切换简直折磨,而且最怕的是出现短信啥的验证风控,于是让codex帮我解决。我想着是app使用5xpro,然后我codex cli就用另外的账号登录,我感觉这么用起来挺好的,插件配置啥的都是通用的,下面是让ai生成的。
Codex App 与 CLI 双账号隔离
需求
同一台 macOS 上,ChatGPT / Codex App 使用账号 A,Codex CLI 通过
codexb使用账号 B。目的
独立保存 B 的配置和登录状态,避免覆盖 A 的配置或让 A 退出登录。
原理
两个入口使用同一个 CLI,通过
CODEX_HOME选择不同的本地状态目录:```
codex → ~/.codex → 账号 A 的默认状态
codexb → ~/.codex-account-b → 账号 B 的独立状态
``函数中的环境变量只对本次命令生效。cli_auth_credentials_store = "file"让 B 的凭据存入独立目录中的auth.json`;配置、会话等本地状态也随目录分开。这是状态目录隔离,不是操作系统用户隔离。方法
- 创建 B 的独立目录(若路径已存在,先确认它是普通目录,不是软链接):```
mkdir -p "$HOME/.codex-account-b"
chmod 700 "$HOME/.codex-account-b"
``- 在~/.codex-account-b/config.toml中加入以下配置;已有文件只更新这一项:``
cli_auth_credentials_store = "file"
``- 在~/.zshrc中添加一次:``
codexb() {
CODEX_HOME="$HOME/.codex-account-b" command codex "$@"
}
``- 加载配置并登录,在浏览器中选择账号 B:``
source ~/.zshrc
codexb login
chmod 600 "$HOME/.codex-account-b/auth.json"
codexb login status
``日常运行codexb即使用 B;一次性任务使用codexb exec "任务描述"`。坑点
- 不要全局设置
CODEX_HOME:只在函数内设置,避免影响其他入口。- 登录入口别用错:B 使用
codexb login,直接执行codex login/logout会操作默认目录。- 浏览器可能默认选中 A:
login status只显示已登录时,不能证明是 B,需核对授权账号。- 不要复制凭据:不复制或软链接 A 的
auth.json,不展示 Token 或认证文件内容。- 资源不全隔离:用户级、项目级 skills 可能共享;B 的 MCP、插件配置及外部服务授权需单独核对。
- 命令或版本不对:找不到
codexb时执行source ~/.zshrc;版本异常时检查command -v codex和codexb --version。切换工具若修改 PATH,也会影响它使用的 CLI。主楼 - Kisaragi_Mio2026-09-0832868
之前用的cockpit切换codex账号的,感觉还是很方便的
- 佩克兰德2026-09-0833158
嗯,我想着应该有现成开源的,后面我再试试,主要用codex app,其他的基本是辅助,codex cli真垃圾。。
- 柯欧蕾帕露可2026-09-0841082
分享下自己的同思路方案。
Windows 环境,同样是配置 CODEX_HOME 和 alias。
选择一种中意的方式打开 pwsh 的 PROFILE 文件
notepad $PROFILEcode $PROFILE尾部追加```
function claude {
& mise.exe exec node@24 -- npx.cmd --yes --prefer-online '@anthropic-ai/claude-code@latest' @args
}function codex {
& mise.exe exec node@20 -- npx.cmd --yes --prefer-online '@openai/codex@latest' @args
}function codex-work {
$previousCodexHome = $env:CODEX_HOME
try {
$env:CODEX_HOME = Join-Path $env:USERPROFILE '.codex-work'
[System.IO.Directory]::CreateDirectory($env:CODEX_HOME) | Out-Null
& mise.exe exec node@20 -- npx.cmd --yes --prefer-online '@openai/codex@latest' @args
} finally {
$env:CODEX_HOME = $previousCodexHome
}
}
```非 mise 环境同理,才不是偷懒不想写了