——不用反复退出登录,也不依赖额外工具,一套 Windows 通用方案
我现在一台电脑上,可以同时使用三套互不影响的 Codex 环境:
codexcodex-personalcodex-companycodex | ||
codex-personal | ||
codex-company |
codex,就能照着本文配置。为什么我要把 Codex 分开
最开始,我只使用自己的 ChatGPT Plus 账号。后来公司也开始使用 Codex,但公司的接入方式完全不同:
我原本以为,切换时退出一个账号,再登录另一个账号就行。真正用起来才发现,问题不只是登录麻烦。
我真正要分开的,不只是账号,而是整套开发环境。
哪些人适合这样配置
如果你只有一个账号,也只开发一种类型的项目,直接使用默认 Codex 就够了。下面这些情况,才值得做多环境隔离:
我保留三套环境,是因为默认 .codex 已经长期用于日常开发;personal 作为第二账号和实验区,company 则只处理公司项目。
完整配置只需要五步
如果公司还使用内部模型网关或者特殊代理,再增加对应配置。没有公司网关的读者,可以直接跳过可选部分。
核心原理:CODEX_HOME
Codex 默认将本地状态保存在:
%USERPROFILE%\.codex里面通常包括配置、认证、历史会话、Skills 和日志。Codex 支持通过环境变量 CODEX_HOME 修改本次启动使用的目录。
set "CODEX_HOME=%USERPROFILE%\.codex-company"codex所以,我最终准备了三个目录:
C:\Users\你的用户名\├── .codex├── .codex-personal└── .codex-company确认 CLI 并创建独立目录
先打开 CMD 或 PowerShell,确认 Codex CLI 可以正常使用:
codex --versionwhere codex能看到版本号后,在 PowerShell 中创建两个独立目录:
New-Item -ItemType Directory ` "$env:USERPROFILE\.codex-personal" ` -ForceNew-Item -ItemType Directory ` "$env:USERPROFILE\.codex-company" ` -Force然后分别在两个新目录中创建 config.toml,基础内容先保持简单:
cli_auth_credentials_store = "file"创建两个通用启动脚本
我创建了一个专门保存脚本的目录:
D:\Tools\codex-profiles\bin├── codex-personal.cmd└── codex-company.cmd路径可以换成你自己的位置。先创建 codex-personal.cmd:
@echo offsetlocalset "CODEX_HOME=%USERPROFILE%\.codex-personal"if not exist "%CODEX_HOME%" ( mkdir "%CODEX_HOME%")echo [Codex] Personalecho [Codex] CODEX_HOME=%CODEX_HOME%echo.codex %*再创建 codex-company.cmd:
@echo offsetlocalset "CODEX_HOME=%USERPROFILE%\.codex-company"if not exist "%CODEX_HOME%" ( mkdir "%CODEX_HOME%")echo [Codex] Companyecho [Codex] CODEX_HOME=%CODEX_HOME%echo.codex %*把脚本目录加入 PATH
Windows 中依次打开“编辑系统环境变量 → 环境变量 → 当前用户的 Path → 编辑 → 新建”,加入:
D:\Tools\codex-profiles\bin保存后关闭旧终端,重新打开,再验证:
where codex-personalwhere codex-companycodex-personal --versioncodex-company --version如果两个命令都能找到脚本并输出版本号,启动入口就打通了。
分别登录个人账号和公司账号
个人环境直接执行:
codex-personal logincodex-personal login status如果公司提供的是 ChatGPT 企业工作区账号,也可以使用相同的浏览器登录流程:
codex-company logincodex-company login status我的公司环境使用 API Key,所以我先将它保存到单独的环境变量:
setx COMPANY_OPENAI_API_KEY "替换成你的公司Key"执行后要关闭当前终端并重新打开,然后登录:
echo %COMPANY_OPENAI_API_KEY% | codex-company login --with-api-keycodex-company login status可选:配置公司内部模型网关
如果公司直接使用官方服务,这一节可以跳过。我的公司通过内部模型网关访问,所以需要编辑:
%USERPROFILE%\.codex-company\config.tomlmodel_provider = "company"model = "gpt-5.6-sol"model_reasoning_effort = "high"disable_response_storage = truecli_auth_credentials_store = "file"[model_providers.company]name = "Company Gateway"base_url = "https://你的公司模型网关地址"wire_api = "responses"requires_openai_auth = true可选:公司内网不走个人代理
我之前遇到过一个问题:桌面端访问公司服务比较稳定,CLI 却有时成功、有时超时。后来发现,公司内网请求继承了个人代理。
如果公司网关不需要代理,可以在 codex-company.cmd 的 codex %* 前加入:
set "HTTP_PROXY="set "HTTPS_PROXY="set "NO_PROXY=gateway.company.example,localhost,127.0.0.1"set "no_proxy=gateway.company.example,localhost,127.0.0.1"配置完成后怎么使用
进入个人项目:
cd /d D:\Projects\my-personal-projectcodex-personal进入公司项目:
cd /d D:\Work\company-projectcodex-company原来的默认环境继续使用:
codex模型和历史会话也可以分别指定:
codex-personal --model gpt-5.6codex-company --model gpt-5.6-solcodex-personal resumecodex-company resume怎么确认自己没有进错环境
两个脚本启动时,都会先打印当前环境:
[Codex] Company[Codex] CODEX_HOME=C:\Users\你的用户名\.codex-company还可以分别检查登录状态:
codex login statuscodex-personal login statuscodex-company login status如果两个脚本打印的 CODEX_HOME 不同,并且登录状态符合预期,说明隔离已经生效。
三个最容易踩的坑
最后做一次完整检查
□codex --version 可以正常执行
□已创建 .codex-personal 和 .codex-company
□两个目录中分别存在 config.toml
□两份配置都设置 cli_auth_credentials_store = "file"
□已创建 codex-personal.cmd 和 codex-company.cmd
□脚本目录已经加入用户 PATH
□codex-personal login status 正常
□codex-company login status 正常
□两个脚本打印的 CODEX_HOME 不同
□公司内网没有错误地经过个人代理
□auth.json 和 API Key 没有放进 Git
同一个 Codex,三个互不干扰的家
这套配置看起来步骤不少,真正完成以后,我日常只需要记住三个入口:
codexcodex-personalcodex-company我不再需要反复退出登录,也不用每次修改 config.toml。个人和公司的账号、MCP、Skills、会话历史、模型配置和网络环境,也不会再混在一起。
不同账号如果还对应不同的配置、工具和网络环境,就不要让它们共用同一个 CODEX_HOME。
夜雨聆风