Communitygithub.com

Hung2124/codex-multi-profile

Windows Codex Desktop 多帳號管理工具(透過 AuthSwap)。共享工作區,但分別使用各自的 ChatGPT 登入。

codex-multi-profile 是什麼?

這是一個專為 Windows 版 Codex Desktop 設計的非官方輔助工具,讓使用者能夠在同一台電腦上建立多個 ChatGPT 帳號的獨立設定檔,同時仍能共用同一個工作區(包括 Sessions、Skills、MCP、記憶體與專案)。其核心機制為「AuthSwap」:每次啟動設定檔時,會將該帳號的驗證資訊(auth.json)交換到 Codex 實際讀取的路徑,避免因主應用程式忽略 CODEX_HOME 環境變數而導致的帳號混亂。工具支援 PowerShell 指令啟動、管理與還原,並內建守護程式在關閉時自動保存次要驗證資訊。注意事項包括:不可從 WindowsApps 路徑執行執行檔、必須使用 ChatGPT.exe 作為進入點、以及避免在 Windows PowerShell 5.1 中使用 Set-Content -Encoding UTF8 寫入 config.toml 以避免 BOM 問題。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add Hung2124/codex-multi-profile

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Codex 多設定檔(Windows)

非官方輔助工具,專為 Windows 版 Codex Desktop 設計,當你需要多個 ChatGPT 登入帳號,但仍希望共用同一個工作區時使用。

預設:ShareLive + AuthSwap

項目存放位置
Sessions、Skills、MCP、記憶體、專案一律在 %USERPROFILE%\.codex
帳號profiles\<名稱>\auth.json,啟動時交換至 ~\.codex\auth.json
關閉時監看程式將次要驗證資訊儲存回原處,再還原主要的 auth.json
Electron UI--user-data-dir=profiles\<名稱>(設定檔根目錄,非巢狀的 electron\ 資料夾)

請勿同時開啟主 Store Codex 與任何設定檔。

為什麼使用 AuthSwap(而非第二個 CODEX_HOME)

桌面版應用程式-伺服器有時會忽略 CODEX_HOME,而仍讀取 ~\.codex\auth.json。此時使用第二個主目錄會顯示主要帳號。AuthSwap 將次要權杖放在應用程式實際讀取的路徑中。

啟動規則(經驗證)

  1. 請勿從 WindowsApps 路徑執行執行檔(會出現拒絕存取)。請先複製 ChatGPT.exe。
  2. 進入點必須是 ChatGPT.exe。Codex.exe 會直接結束(exit 1)。
  3. Get-AppxPackage.InstallLocation 可能為空白 — 建議優先使用本機已存在的複製檔。
  4. 設定 CODEX_ELECTRON_USER_DATA_PATH 與 --user-data-dir 兩者至設定檔根目錄。
  5. 請勿依賴 Start-Process 繼承 $env:CODEX_HOME。請撰寫 .cmd 批次檔,使用 set 與 start。
  6. PowerShell 5.1 的 Set-Content -Encoding UTF8 會寫入 BOM。這可能導致 config.toml 無效。請改用 [IO.File]::WriteAllText(..., UTF8Encoding $false)。
  7. 永遠不要設定永久性的使用者層級 CODEX_HOME。
  8. 永遠不要在不同機器之間複製 auth.json,也不要將其納入 git 版本控制。

路徑

項目路徑
安裝根目錄%LOCALAPPDATA%\CodexParallelDesktop
共用模組CodexMultiProfile.psm1
設定檔啟動器Launch-CodexProfile.ps1
還原主要Launch-CodexMain.ps1
管理員CodexProfile.ps1(new、list、stop、shortcut、launch)
設定檔...\profiles\<名稱>\
複製檔...\versions\<版本>\app\ChatGPT.exe
共用主目錄%USERPROFILE%\.codex

指令

$root = "$env:LOCALAPPDATA\CodexParallelDesktop"

# 建議的啟動方式(AuthSwap)
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\Launch-CodexProfile.ps1" -Name codex1

# 還原主 Store Codex
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\Launch-CodexMain.ps1"

# 管理員
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action new -Name codex2
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action list
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action status
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action verify
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action stop -Name codex1

代理工作流程

  1. 「切換帳號 / 保留我的資料」→ 使用 Launch-CodexProfile.ps1 進行 AuthSwap。
  2. 「建立另一個設定檔」→ -Action new,然後使用 Launch-CodexProfile.ps1 啟動。
  3. UI 中出現錯誤帳號 → 比對兩個 auth.json 檔案中的電子郵件;修正啟動方式(cmd 包裝);若設定檔驗證仍有效,請勿要求使用者重新登入。
  4. 存取被拒 / 路徑為空白 / exit 1 → 複製 ChatGPT.exe,永遠不要使用 WindowsApps 路徑,永遠不要使用空白的 InstallLocation。
  5. 編輯腳本後,將 CodexMultiProfile.psm1 以及啟動器複製到 %LOCALAPPDATA%\CodexParallelDesktop 以及此技能中的 scripts\ 資料夾。啟動器會從 $PSScriptRoot 匯入模組。
  6. 「是否已安裝 / 哪個帳號正在活動?」→ -Action status(電子郵件會遮罩)然後 -Action verify。

設定檔驗證受損

如果使用者在設定檔仍在執行時開啟 Codex 主程式,還原動作可能會將主要權杖寫入 profiles\<名稱>\auth.json。

腳本中已包含防護措施:

  • 監看程式 / Launch-CodexMain 僅在活動中電子郵件不同於 auth.json.__main__ 時才儲存設定檔驗證
  • 保留 auth.json.secondary.bak
  • 若設定檔驗證遺失或等於主要驗證 → 引導登入(清除活動中驗證,強制次要登入)

請勿

  • 複製或提交 auth.json
  • 同時開啟主要 + 設定檔 ShareLive
  • 啟動 Codex.exe 或 WindowsApps 路徑
  • 使用沒有明確 cmd/CODEX_HOME 的 Start-Process
  • 在 Windows PowerShell 5.1 中使用 Set-Content -Encoding UTF8 寫入 config.toml

詳細資訊:docs/architecture.md、docs/troubleshooting.md。

相關技能