Codex CLI 多帳戶切換:Terminal 快速切換 ChatGPT Pro 的方法

想同時管理多個 Codex CLI 帳戶,卻不想反覆登出登入?本文比較 codex-auth、CODEX_HOME 隔離等實用方法,教你如何在 Terminal 中安全切換 ChatGPT Pro 帳戶,同時不影響其他執行中的工作視窗。

同時擁有多個 ChatGPT Pro 或 Codex CLI 帳戶時,最麻煩的就是在 Terminal 中反覆登出登入。這篇文章整理目前幾種實用的多帳戶切換方式,從輕量 CLI 工具到完全隔離的環境變數方案,幫助你依需求選出最適合的做法。

為什麼需要特別處理?

Codex CLI 預設將登入認證存放在 ~/.codex/auth.json,這個檔案是全域共享的。也就是說,所有 Terminal 視窗都讀取同一個認證檔;只要其中一個視窗切換帳戶,其他正在執行任務的 Terminal 就可能因為認證失效而中斷或報錯。因此,多帳戶管理的核心通常圍繞著「快照與替換 auth.json」或「透過 CODEX_HOME 隔離配置目錄」兩種思路。

方法一:使用 CLI 工具切換 auth.json

最直接的做法是用專門的工具幫你管理 auth.json 快照。以 codex-auth(來自 codex-account-switcher 專案)為例:

# 全域安裝
npm i -g codex-auth

# 登入第一個帳戶後,儲存為 named account
codex-auth save <name>

# 互動式選擇要切換的帳戶
codex-auth use
# 或直接指定帳戶名稱
codex-auth use <name>

# 列出所有已儲存帳戶
codex-auth list

# 查看目前使用的帳戶
codex-auth current

這類工具的原理,是將 ~/.codex/auth.json 快照到 ~/.codex/accounts/<name>.json,切換時再複製或替換回去。好處是操作快速、不需要手動備份;缺點是切換時仍會改動全域認證檔,正在執行的 Codex 行程仍可能受影響。

方法二:用 CODEX_HOME 環境變數隔離帳戶

如果你希望「多個 Terminal 同時執行、各自使用不同帳戶、互不干擾」,最乾淨的方法是透過 CODEX_HOME 讓每個終端機使用獨立的 Codex 配置目錄。

# Terminal 1:使用預設帳戶 A
cd ~/project-a
codex

# Terminal 2:使用帳戶 B(獨立配置)
mkdir -p ~/.codex-account-b
export CODEX_HOME="$HOME/.codex-account-b"
codex login   # 第一次需要登入帳戶 B
cd ~/project-b
codex

如果希望每次開啟 Terminal 2 都自動套用,可以把 export 寫進 ~/.zshrc~/.bashrc

echo 'export CODEX_HOME="$HOME/.codex-account-b"' >> ~/.zshrc

這種方式的優點是完全隔離,不需要反覆切換或登出;缺點是每個帳戶都需要獨立目錄,而且環境變數只對當前 shell 有效,需要手動管理。

方法三:用其他輔助工具搭配自動化

除了 codex-auth,市面上還有幾個針對不同情境設計的工具:

opencode-openai-multi-auth

如果你的工作流程是基於 OpenCode 或類似 Codex 前端,這個工具支援多帳戶輪替。登入多個 OpenAI 帳戶後,遇到 rate limit 會自動切換到下一個帳戶,適合高用量或團隊共用環境。

npx -y opencode-openai-multi-auth@latest

# 登入第一個帳戶
opencode auth login
# 選擇 "ChatGPT Plus/Pro (Codex Subscription)"

# 登入第二個帳戶
opencode auth login
# 選擇 "Add Another OpenAI Account"

# 之後執行時自動輪替帳戶
opencode run "write hello world" --model=openai/gpt-5.2

cc-switch

cc-switch 提供圖形化介面,可以為每個帳戶建立獨立的供應商配置,在 GUI 中一鍵切換。但要注意,如果它只是覆蓋全域 auth.json,其他正在執行任務的 Terminal 仍會被影響;使用前最好確認版本是否支援為特定帳戶啟動獨立實例。

codex-acc 與 CodexMultiAuth

codex-acc 是更輕量的 npm 工具,特色是提供 codex-acc limits 快速查看各帳戶額度。CodexMultiAuth(cma)則主打加密儲存認證,適合對安全性較敏感的使用者。兩者本質上仍以切換全域認證檔為主,適合「單一 Terminal 快速換帳戶」的情境。

手動備份 auth.json(不建議)

若不想安裝任何工具,也可以手動備份與覆蓋 auth.json

# 備份目前帳戶
cp ~/.codex/auth.json ~/.codex/auth-account1.json

# 登入另一個帳戶後再備份
cp ~/.codex/auth.json ~/.codex/auth-account2.json

# 切換時直接覆蓋
cp ~/.codex/auth-account1.json ~/.codex/auth.json

這種方式最容易出錯,例如忘了備份、或切換時覆蓋了錯誤的檔案,建議只在臨時應急時使用。

工具比較總表

工具/方式 類型 是否影響其他 Terminal 適合情境
codex-auth / codex-account-switcher CLI 個人開發者、純 Terminal 操作
opencode-openai-multi-auth CLI + 自動輪替 會(依實作) 團隊、高用量場景
cc-switch GUI 通常會 偏好圖形介面的使用者
codex-acc CLI 想極簡指令、查看額度
CodexMultiAuth (cma) CLI 重視認證加密儲存
CODEX_HOME 隔離 環境變數 不會 多 Terminal 並行、完全隔離

總結建議

如果你只是偶爾在單一 Terminal 切換帳戶,codex-auth 這類 CLI 工具就很夠用;如果你需要「同時」讓多個 Terminal 跑不同帳戶,請直接選擇 CODEX_HOME 隔離方案。對於團隊或高用量情境,可以考慮支援自動輪替的 opencode-openai-multi-auth;偏好 GUI 則可評估 cc-switch。

最重要的原則是:先確認工具是「切換全域 auth.json」還是「建立獨立配置」。前者一定影響其他執行中的 Codex 行程,後者才能做到互不干擾。根據自己的工作模式選擇合適方案,就能省下大量反覆登出登入的時間。