Communitygithub.com

Codex 多用户配置文件(Windows)

Windows Codex Desktop 多账户管理工具,通过 AuthSwap 机制实现共享工作区与独立 ChatGPT 登录。

Codex 多用户配置文件(Windows) 是什么?

这个技能为 Windows 平台上的 Codex Desktop 用户提供了一种非官方的多账户管理方案。核心需求是在共享同一工作区(技能、MCP 配置、记忆、项目等)的同时,能够使用多个不同的 ChatGPT 登录账户。它通过一种称为“AuthSwap”的机制实现,即在启动不同配置文件时,将对应账户的认证文件 `auth.json` 交换到 Codex 实际读取的路径(`~\ .codex\auth.json`),以此绕过 Codex 应用程序有时会忽略 `CODEX_HOME` 环境变量的问题。该技能提供了一套 PowerShell 脚本(包括启动器、管理器)来创建、列出、启动、停止和恢复配置文件。它还包含了针对 Windows Store 应用限制(如 `WindowsApps` 权限问题)的解决建议,以及处理诸如 UTF-8 BOM 编码、配置文件“中毒”等常见问题的使用规则和故障处理指导。

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

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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 将次要令牌放置在应用程序实际读取的路径中。

启动规则(已验证)

  1. 不要从 WindowsApps 运行可执行文件(访问被拒绝)。请先克隆 ChatGPT.exe。
  2. 入口点是 ChatGPT.exe。Codex.exe 会退出并返回 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\<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

代理工作流程

  1. “切换账号 / 保留我的数据” → 使用 Launch-CodexProfile.ps1 进行 AuthSwap。
  2. “创建另一个配置文件” → -Action new,然后使用 Launch-CodexProfile.ps1 启动。
  3. 界面中显示错误的账号 → 比较两个 auth.json 文件中的电子邮件;修复启动方式(cmd 包装器);如果配置文件的认证信息仍然有效,不要告诉用户重新登录。
  4. 访问被拒绝 / 路径为空 / 退出代码为 1 → 克隆 ChatGPT.exe,绝不要使用 WindowsApps,绝不要使用空的 InstallLocation。
  5. 编辑脚本后,将 CodexMultiProfile.psm1 和启动器复制到 %LOCALAPPDATA%\CodexParallelDesktop 以及此技能中的 scripts\ 目录。启动器从 $PSScriptRoot 导入模块。
  6. “它是否已安装 / 哪个账号是活动的?” → 首先使用 -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

详情:docs/architecture.md,docs/troubleshooting.md。

相关技能