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 將次要權杖放在應用程式實際讀取的路徑中。
啟動規則(經驗證)
- 請勿從
WindowsApps路徑執行執行檔(會出現拒絕存取)。請先複製ChatGPT.exe。 - 進入點必須是
ChatGPT.exe。Codex.exe會直接結束(exit 1)。 Get-AppxPackage.InstallLocation可能為空白 — 建議優先使用本機已存在的複製檔。- 設定
CODEX_ELECTRON_USER_DATA_PATH與--user-data-dir兩者至設定檔根目錄。 - 請勿依賴
Start-Process繼承$env:CODEX_HOME。請撰寫.cmd批次檔,使用set與start。 - PowerShell 5.1 的
Set-Content -Encoding UTF8會寫入 BOM。這可能導致config.toml無效。請改用[IO.File]::WriteAllText(..., UTF8Encoding $false)。 - 永遠不要設定永久性的使用者層級
CODEX_HOME。 - 永遠不要在不同機器之間複製
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
代理工作流程
- 「切換帳號 / 保留我的資料」→ 使用
Launch-CodexProfile.ps1進行 AuthSwap。 - 「建立另一個設定檔」→
-Action new,然後使用Launch-CodexProfile.ps1啟動。 - UI 中出現錯誤帳號 → 比對兩個
auth.json檔案中的電子郵件;修正啟動方式(cmd 包裝);若設定檔驗證仍有效,請勿要求使用者重新登入。 - 存取被拒 / 路徑為空白 / exit 1 → 複製
ChatGPT.exe,永遠不要使用WindowsApps路徑,永遠不要使用空白的InstallLocation。 - 編輯腳本後,將
CodexMultiProfile.psm1以及啟動器複製到%LOCALAPPDATA%\CodexParallelDesktop以及此技能中的scripts\資料夾。啟動器會從$PSScriptRoot匯入模組。 - 「是否已安裝 / 哪個帳號正在活動?」→
-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