Codex 多用户配置文件(Windows) 是做什么的?
当您需要一个共享工作区但多个 ChatGPT 登录账号时,这是适用于 Windows 版 Codex Desktop 的非官方辅助工具。
默认:共享工作区 + AuthSwap
| 项目 | 存放位置 |
|---|---|
| 会话、技能、MCP、记忆、项目 | 始终位于 %USERPROFILE%\.codex |
| 账户 | profiles\<name>\auth.json,启动时交换到 ~\ .codex\auth.json |
| 关闭时 | 监视器将次要认证信息保存回配置文件,然后恢复主 auth.json |
| Electron UI | --user-data-dir=profiles\<name>(配置文件根目录,而不是嵌套的 electron\ 文件夹) |
不要同时打开主商店版 Codex 和一个配置文件。
为什么选择 AuthSwap(而不是第二个 CODEX_HOME)
桌面版应用程序-服务器有时会忽略 CODEX_HOME,仍然读取 ~\ .codex\auth.json。如果使用第二个主目录,它会显示主账号。AuthSwap 将次要令牌放置在应用程序实际读取的路径中。
启动规则(已验证)
- 不要从
WindowsApps运行可执行文件(访问被拒绝)。请先克隆ChatGPT.exe。 - 入口点是
ChatGPT.exe。Codex.exe会退出并返回 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\<name>\ |
| 克隆的可执行文件 | ...\versions\<ver>\app\ChatGPT.exe |
| 共享主目录 | %USERPROFILE%\.codex |
命令
$root = "$env:LOCALAPPDATA\CodexParallelDesktop"
# 推荐的启动方式(AuthSwap)
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\Launch-CodexProfile.ps1" -Name codex1
# 恢复主商店版 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启动。 - 界面中显示错误的账号 → 比较两个
auth.json文件中的电子邮件;修复启动方式(cmd 包装器);如果配置文件的认证信息仍然有效,不要告诉用户重新登录。 - 访问被拒绝 / 路径为空 / 退出代码为 1 → 克隆
ChatGPT.exe,绝不要使用WindowsApps,绝不要使用空的InstallLocation。 - 编辑脚本后,将
CodexMultiProfile.psm1和启动器复制到%LOCALAPPDATA%\CodexParallelDesktop以及此技能中的scripts\目录。启动器从$PSScriptRoot导入模块。 - “它是否已安装 / 哪个账号是活动的?” → 首先使用
-Action status(电子邮件会被掩码处理),然后使用-Action verify。
配置文件认证中毒
如果用户在配置文件仍在运行时打开了 Codex 主版,恢复操作可能会将主账号令牌写入 profiles\<name>\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