水一篇,如何在一台机器用多个gpt账号。

佩克兰德 2026-09-08 20:34 1

由于自己有一个别人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;配置、会话等本地状态也随目录分开。这是状态目录隔离,不是操作系统用户隔离。


方法




  1. 创建 B 的独立目录(若路径已存在,先确认它是普通目录,不是软链接):


    mkdir -p "$HOME/.codex-account-b"
    chmod 700 "$HOME/.codex-account-b"



  2. ~/.codex-account-b/config.toml 中加入以下配置;已有文件只更新这一项:


    cli_auth_credentials_store = "file"



  3. ~/.zshrc 中添加一次:


    codexb() {
    CODEX_HOME="$HOME/.codex-account-b" command codex "$@"
    }



  4. 加载配置并登录,在浏览器中选择账号 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 会操作默认目录。




  • 浏览器可能默认选中 Alogin status 只显示已登录时,不能证明是 B,需核对授权账号。




  • 不要复制凭据:不复制或软链接 A 的 auth.json,不展示 Token 或认证文件内容。




  • 资源不全隔离:用户级、项目级 skills 可能共享;B 的 MCP、插件配置及外部服务授权需单独核对。




  • 命令或版本不对:找不到 codexb 时执行 source ~/.zshrc;版本异常时检查 command -v codexcodexb --version。切换工具若修改 PATH,也会影响它使用的 CLI。



最新回复 (3)
  • Kisaragi_Mio 09-08 20:43
    1

    之前用的cockpit切换codex账号的,感觉还是很方便的

  • 佩克兰德 楼主 09-08 20:51
    2

    嗯,我想着应该有现成开源的,后面我再试试,主要用codex app,其他的基本是辅助,codex cli真垃圾。。

  • 柯欧蕾帕露可 09-08 21:26
    3

    分享下自己的同思路方案。

    Windows 环境,同样是配置 CODEX_HOME 和 alias。


    选择一种中意的方式打开 pwsh 的 PROFILE 文件

    notepad $PROFILE

    code $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 环境同理,才不是偷懒不想写了

* 帖子来源Linux.do
返回