乐于分享
好东西不私藏

一台电脑同时使用个人版和公司版 Codex,我的完整配置公开

一台电脑同时使用个人版和公司版 Codex,我的完整配置公开
Codex · 多环境配置实战

 ——不用反复退出登录,也不依赖额外工具,一套 Windows 通用方案

我现在一台电脑上,可以同时使用三套互不影响的 Codex 环境:

最终启动方式
codexcodex-personalcodex-company
启动命令
用途
配置目录
codex
日常默认环境
.codex
codex-personal
第二账号或配置实验
.codex-personal
codex-company
公司账号和公司项目
.codex-company
🧩 先说结论
我没有安装三遍 Codex。整套方案只用了 Codex CLI、两个 Windows 启动脚本和官方支持的 CODEX_HOME。只要你的电脑已经能运行 codex,就能照着本文配置。
——✦ ✦ ✦——
💠 01 · WHY

为什么我要把 Codex 分开

最开始,我只使用自己的 ChatGPT Plus 账号。后来公司也开始使用 Codex,但公司的接入方式完全不同:

🔀 两套完全不同的使用环境
个人环境:ChatGPT 账号 + 默认模型服务
公司环境:公司 API Key + 内部模型网关

我原本以为,切换时退出一个账号,再登录另一个账号就行。真正用起来才发现,问题不只是登录麻烦。

⚠️ 共用默认目录后,我遇到的问题
公司登录可能覆盖个人登录;公司模型地址会影响个人环境;两边的 MCP、Skills 和历史会话混在一起;公司内网请求还可能错误地经过个人代理。

我真正要分开的,不只是账号,而是整套开发环境

——✦ ✦ ✦——
💠 02 · SCENARIO

哪些人适合这样配置

如果你只有一个账号,也只开发一种类型的项目,直接使用默认 Codex 就够了。下面这些情况,才值得做多环境隔离:

💼 公司与个人项目共用一台电脑
白天处理公司需求,晚上维护个人项目。两边的账号、代码仓库、规范和工具完全不同。
🔑 两边的认证方式不同
个人使用 ChatGPT 登录,公司使用 API Key 或 ChatGPT 企业工作区账号。
🌐 公司通过内部模型网关访问
公司需要单独的 base_url、模型名称和网络规则,个人环境继续使用默认服务。
🧪 需要一个安全的配置实验区
想测试新模型、MCP 或 Skill,又不想弄坏每天使用的默认环境。

我保留三套环境,是因为默认 .codex 已经长期用于日常开发;personal 作为第二账号和实验区,company 则只处理公司项目。

——✦ ✦ ✦——
💠 03 · ROUTE

完整配置只需要五步

🧭 五分钟先看懂整条路线
① 确认 codex 命令可以使用
② 创建 .codex-personal 和 .codex-company
③ 创建 codex-personal.cmd 和 codex-company.cmd
④ 分别完成个人账号和公司账号登录
⑤ 把脚本目录加入 PATH 并验证

如果公司还使用内部模型网关或者特殊代理,再增加对应配置。没有公司网关的读者,可以直接跳过可选部分。

——✦ ✦ ✦——
💠 04 · CORE

核心原理:CODEX_HOME

Codex 默认将本地状态保存在:

默认目录
%USERPROFILE%\.codex

里面通常包括配置、认证、历史会话、Skills 和日志。Codex 支持通过环境变量 CODEX_HOME 修改本次启动使用的目录。

切换到公司环境的原始写法
set "CODEX_HOME=%USERPROFILE%\.codex-company"codex

所以,我最终准备了三个目录:

目录结构
C:\Users\你的用户名\├── .codex├── .codex-personal└── .codex-company
💡 关键理解
后面的两个新命令并没有修改 Codex 本身,只是启动前自动切换 CODEX_HOME。目录不同,认证、配置和会话自然就分开了。
——✦ ✦ ✦——
💠 05 · PREPARE

确认 CLI 并创建独立目录

先打开 CMD 或 PowerShell,确认 Codex CLI 可以正常使用:

检查 Codex CLI
codex --versionwhere codex

能看到版本号后,在 PowerShell 中创建两个独立目录:

PowerShell
New-Item -ItemType Directory `  "$env:USERPROFILE\.codex-personal" `  -ForceNew-Item -ItemType Directory `  "$env:USERPROFILE\.codex-company" `  -Force

然后分别在两个新目录中创建 config.toml,基础内容先保持简单:

config.toml
cli_auth_credentials_store = "file"
🔐 为什么加这一行
它会让文件形式的认证信息保存在当前 CODEX_HOME 下。个人和公司会分别生成自己的 auth.json,更容易确认认证是否真正隔离。
⚠️ 注意
auth.json 包含敏感认证信息,不要提交到 Git,不要发给别人,也不要截图公开。
——✦ ✦ ✦——
💠 06 · SCRIPT

创建两个通用启动脚本

我创建了一个专门保存脚本的目录:

脚本目录
D:\Tools\codex-profiles\bin├── codex-personal.cmd└── codex-company.cmd

路径可以换成你自己的位置。先创建 codex-personal.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

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 %*
🧰 %* 有什么用
它会把命令后面的参数原样交给 Codex。因此 login、resume、--version 和 --model 等原有参数仍然可以正常使用。
——✦ ✦ ✦——
💠 07 · PATH

把脚本目录加入 PATH

Windows 中依次打开“编辑系统环境变量 → 环境变量 → 当前用户的 Path → 编辑 → 新建”,加入:

加入用户 PATH
D:\Tools\codex-profiles\bin

保存后关闭旧终端,重新打开,再验证:

检查脚本是否生效
where codex-personalwhere codex-companycodex-personal --versioncodex-company --version

如果两个命令都能找到脚本并输出版本号,启动入口就打通了。

——✦ ✦ ✦——
💠 08 · LOGIN

分别登录个人账号和公司账号

个人环境直接执行:

登录个人环境
codex-personal logincodex-personal login status

如果公司提供的是 ChatGPT 企业工作区账号,也可以使用相同的浏览器登录流程:

公司使用 ChatGPT 工作区账号
codex-company logincodex-company login status

我的公司环境使用 API Key,所以我先将它保存到单独的环境变量:

CMD
setx COMPANY_OPENAI_API_KEY "替换成你的公司Key"

执行后要关闭当前终端并重新打开,然后登录:

使用公司 API Key 登录
echo %COMPANY_OPENAI_API_KEY% | codex-company login --with-api-keycodex-company login status
🔒 Key 不写进 config.toml
config.toml 只保存服务配置;Key 通过登录流程写入独立公司环境。这样配置可以分享,密钥不会跟着配置文件一起泄露。
——✦ ✦ ✦——
💠 09 · GATEWAY

可选:配置公司内部模型网关

如果公司直接使用官方服务,这一节可以跳过。我的公司通过内部模型网关访问,所以需要编辑:

公司配置位置
%USERPROFILE%\.codex-company\config.toml
公司 config.toml(脱敏示例)
model_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
📝 不能直接照抄的部分
不同公司的模型名称、网关地址、接口协议和认证方式可能都不一样。尤其是 base_url 是否包含 /v1,必须以公司的实际服务为准。
——✦ ✦ ✦——
💠 10 · NETWORK

可选:公司内网不走个人代理

我之前遇到过一个问题:桌面端访问公司服务比较稳定,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"
🌐 NO_PROXY 填什么
示例中的 gateway.company.example 是脱敏占位域名,请替换成自己公司的网关主机名或 IP,不要填写完整 URL。如果公司服务本身要求通过代理访问,就不要清空 HTTP_PROXY 和 HTTPS_PROXY。
——✦ ✦ ✦——
💠 11 · USAGE

配置完成后怎么使用

进入个人项目:

个人项目
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
📚 会话也会自然分开
个人项目只看到个人会话,公司项目只看到公司会话。对我来说,这比单纯分开登录状态更有价值。
——✦ ✦ ✦——
💠 12 · VERIFY

怎么确认自己没有进错环境

两个脚本启动时,都会先打印当前环境:

启动时的提示
[Codex] Company[Codex] CODEX_HOME=C:\Users\你的用户名\.codex-company

还可以分别检查登录状态:

验证三套认证
codex login statuscodex-personal login statuscodex-company login status

如果两个脚本打印的 CODEX_HOME 不同,并且登录状态符合预期,说明隔离已经生效。

——✦ ✦ ✦——
💠 13 · TROUBLE

三个最容易踩的坑

① 修改 Key 后没有生效
setx 设置的变量通常只对新启动的进程生效。关闭旧终端,重新打开;仍使用旧认证时,先执行 codex-company logout,再重新登录。
② /model 中看不到公司模型
我遇到过列表中没有预期模型,但使用 codex-company --model gpt-5.6-sol 可以正常进入的情况。显式指定是否成功,最终仍取决于公司网关是否真正支持。
③ 启动后还是错误账号
先看脚本打印的 CODEX_HOME,再执行 login status。若两个脚本都指向默认 .codex,说明启动脚本没有正确设置环境变量。
——✦ ✦ ✦——
💠 14 · CHECK

最后做一次完整检查

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

——✦ ✦ ✦——
💠 15 · FINAL

同一个 Codex,三个互不干扰的家

这套配置看起来步骤不少,真正完成以后,我日常只需要记住三个入口:

最终使用方式
codexcodex-personalcodex-company
🏠 三套环境的最终分工
默认环境:保持稳定,日常使用
个人环境:第二账号和配置实验
公司环境:公司认证、公司网关和公司项目

我不再需要反复退出登录,也不用每次修改 config.toml。个人和公司的账号、MCP、Skills、会话历史、模型配置和网络环境,也不会再混在一起。

💠

不同账号如果还对应不同的配置、工具和网络环境,就不要让它们共用同一个 CODEX_HOME。

UU的技术漫游 · AI开发实战