儲存多個 OpenAI Codex 登入狀態,一個指令即時切換,不需要重新登入。
支援 Windows、Linux、macOS。
需要先安裝 Git。沒有 Git?點這裡看安裝方法
把每個 Codex 帳號的 auth token 分別存成獨立 profile,不會互相干擾。
cx switch 開啟互動選單,選好按 Enter,自動結束現有 Codex、切換帳號。
每次 Codex 結束後自動掃描限額狀態,哪個帳號到限、何時重置,一目了然。
config、hooks、session 歷史通通共用,只有 auth token 會切換,其他不受影響。
| 項目 | 位置 | 切換 / 共用 |
|---|---|---|
| 帳號 auth token | ~/.codex/auth.json | 每個 profile 切換 |
| 設定、hooks | ~/.codex/config.toml、hooks.json | 共用 |
sessions、/resume 歷史、sqlite 狀態 | ~/.codex/ | 共用 |
| skills、plugins | ~/.codex/ | 共用 |
auth.json(帳號 token)會切換,其餘全部共用。你透過 codex(wrapper)啟動時用的是一般的 ~/.codex,所以對話、/resume、設定在各帳號間都共用。cx login 會在一個獨立的暫時環境登入,完全不碰其他已存帳號——所以多個帳號(含同一個 ChatGPT 帳號下的多個 workspace)能並存、不會互相把對方登出。
按 Win + X,選「Windows PowerShell」或「終端機」,將以下指令完整複製並貼上(Ctrl+V),按 Enter。
PS> irm https://raw.githubusercontent.com/yazelin/codex-auth-switcher/main/install-oneliner.ps1 | iex
安裝完成後,終端機會自動印出後續步驟說明。
如果你的電腦已經登入過 Codex,執行這行把現有登入狀態存成叫做「main」的 profile:
PS> cx import main
「main」只是名稱,你也可以用自己的名字或帳號暱稱。
執行 cx login 加上你想取的名稱,Codex 的登入視窗就會開啟:
PS> cx login work
# 登入完成後,work profile 就儲存好了
PS> cx list
CURRENT PROFILE LOGIN EMAIL PLAN LIMIT
* main ok ma***@gmail.com plus -
work ok wo***@company.com team -
* 號代表目前使用中的帳號。
這是最推薦的切換方式——會自動先關掉正在跑的 Codex,再切換:
PS> cx switch
PS> codex
以後就用 codex(不是直接執行原本的 codex.exe)來啟動,這樣切換才會生效。
$ bash <(curl -fsSL https://raw.githubusercontent.com/yazelin/codex-auth-switcher/main/install-oneliner.sh)
$ source ~/.bashrc
# zsh 用戶請改為:source ~/.zshrc
$ cx import main # 儲存現有帳號
$ cx login work # 新增第二個帳號
$ cx use work # 切換到 work 帳號
$ codex # 啟動 Codex
藍色反白 = 目前選到的帳號 / * = 目前使用中 / !hit = 達到用量上限
| 指令 | 功能說明 |
|---|---|
cx switch [--live]NEW | 互動選單切換帳號,自動先關閉 Codex;--live 會先更新用量 |
cx killNEW | 立即關閉所有正在運行的 Codex 程序 |
cx import <名稱> | 把目前登入狀態存成 profile |
cx login <名稱> | 開啟 Codex 登入,存成新 profile |
cx use <名稱> | 切換共用的 active profile |
cx list [--live] | 列出所有 profile 及其狀態;--live 會先更新用量 |
cx usage [name|--all] | 更新 live usage;不帶參數時更新全部 profile |
cx info [名稱] | 顯示單一 profile 詳細資訊 |
cx current | 顯示目前使用中的 profile 名稱 |
cx remove <名稱> | 刪除一個 profile |
cx ps | 顯示目前偵測到的 Codex 程序 |
cx doctor | 診斷工具,顯示路徑、程序狀態、profile 概覽 |
cx export profiles.tgz | 將所有 profile 備份成壓縮檔 |
cx restore profiles.tgz | 從壓縮檔還原 profile |
cx ok <名稱> | 手動清除某 profile 的用量限制標記 |
cx help | 顯示內建指令說明 |
codex | 在目前 profile 下啟動 Codex |
Windows:在 PowerShell 輸入:
安裝完後關掉 PowerShell 再重開,就有 git 了。
Linux(Ubuntu/Debian):
macOS:在終端機輸入 git,macOS 會自動提示安裝 Xcode Command Line Tools。
Windows 有時會封鎖 PowerShell 腳本的執行。先執行這行解除限制,再重貼安裝指令:
安裝指令會把設定加到你的 PowerShell profile,但需要重新開啟 PowerShell 才生效。如果還是不行,確認 profile 檔案裡有這行:
裡面應該有一行 . "C:\Users\你的名字\codex-auth-switcher\shell\powershell.ps1"。沒有的話,手動加上去存檔,再重開 PowerShell。
cx switch 需要在互動式終端機視窗裡執行(Windows Terminal、PowerShell 視窗等),不能在 VS Code 的 Output 面板或 CI 環境中使用。
替代方案:直接用 cx use <名稱> 來切換。
可以。透過 codex wrapper 啟動時,Codex 會使用一般的 ~/.codex,所以同一個 active profile 可以雙開或三開,也會共用 /resume 歷史。cx use 和 cx login 這類會改 auth.json 的操作會在 Codex 執行中拒絕,避免跑到一半被切換帳號。
不會。所有 auth token 只存在你自己電腦的 ~/.codex_auth_profiles/ 資料夾裡,不會傳送到任何伺服器。這個工具完全在本機運行。
請勿把 ~/.codex_auth_profiles/ 資料夾 commit 到 Git 倉庫。
這個帳號已達到 Codex 的使用上限,顯示的時間是重置時間。重置後 cx list 會自動清掉這個標記。
如果確定已經重置但標記還在,可以手動清除:cx ok <名稱>