【环境配置】卸载 Codex++ 后 Codex 仍显示 custom:恢复官方登录的解决方法 卸载 Codex 后 Codex 仍显示 custom恢复官方登录的解决方法问题背景之前在 Windows 上使用过 Codex用于配置自定义模型或第三方服务。后来卸载 Codex准备恢复 Codex 官方登录。但是卸载完成后重新打开 Codex左下角仍然显示custom界面没有恢复到正常的 ChatGPT 官方账号状态。这说明 Codex 虽然已经被卸载但它写入的 Codex 配置、认证信息或环境变量仍然存在。Codex 官方应用启动后继续读取这些残留配置因此仍然显示custom。最终通过以下方式解决关闭 Codex 相关进程备份.codex目录删除config.toml和auth.json并清除自定义服务相关环境变量。一、问题现象卸载 Codex 后打开 Codex左下角仍然显示custom点击后只能看到类似以下选项显示宠物 设置没有正常显示 ChatGPT 官方账号或工作区。同时在 PowerShell 中运行Get-Commandcodex-All可能会提示无法将“codex”项识别为 cmdlet、函数、脚本文件或可运行程序的名称运行where.exe codex也可能提示找不到文件。不过这并不是本次问题的关键。PowerShell 中的codex命令对应独立安装的 Codex CLI。没有安装 Codex CLI并不影响 ChatGPT 桌面应用中集成的 Codex 功能。本次问题的真正原因是.codex配置和环境变量中仍然保留着 Codex 使用过的自定义 Provider 信息。二、最终有效的解决方案使用 PowerShell 执行以下脚本Get-ProcessChatGPT,Codex,CodexPlusPlus-ErrorAction SilentlyContinue|Stop-Process-Force$stampGet-Date-FormatyyyyMMdd-HHmmss$codexDir$HOME\.codex$backupDir$HOME\.codex-backup-$stamp# 完整备份防止本地会话或设置丢失if(Test-Path$codexDir){Copy-Item$codexDir$backupDir-Recurse-ForceWrite-Host备份位置$backupDir}# 仅移除登录和自定义提供商配置Remove-Item$codexDir\config.toml-Force-ErrorAction SilentlyContinueRemove-Item$codexDir\auth.json-Force-ErrorAction SilentlyContinue# 清除可能的自定义服务地址$vars (CODEX_HOME,CODEX_ACCESS_TOKEN,CODEX_API_KEY,OPENAI_BASE_URL,OPENAI_API_BASE)foreach($namein$vars){Remove-ItemEnv:$name-ErrorAction SilentlyContinue[Environment]::SetEnvironmentVariable($name,$null,User)}Write-Host自定义 Codex 配置已清理。执行完成后关闭当前 PowerShell 窗口。重新打开 ChatGPT 或 Codex。按照提示使用 ChatGPT 官方账号重新登录。检查左下角是否还显示custom。在我的环境中执行以上脚本后Codex 成功恢复了正常的官方登录状态。三、脚本具体做了什么1. 关闭相关进程脚本首先执行Get-ProcessChatGPT,Codex,CodexPlusPlus-ErrorAction SilentlyContinue|Stop-Process-Force它会尝试关闭以下进程ChatGPT Codex CodexPlusPlus这是为了防止配置文件正在被应用占用。如果不先关闭应用删除配置后正在运行的程序可能重新写回旧配置或者继续使用内存中已加载的自定义配置。参数-ErrorAction SilentlyContinue表示某个进程不存在时不显示错误因此可以直接执行。2. 创建带时间戳的备份目录脚本生成当前时间$stampGet-Date-FormatyyyyMMdd-HHmmss例如20260728-103500然后设置 Codex 配置目录$codexDir$HOME\.codex通常对应C:\Users\你的用户名\.codex备份目录则类似C:\Users\你的用户名\.codex-backup-20260728-103500这样每次执行脚本都会生成一个新的备份不会直接覆盖旧备份。3. 完整备份.codex目录脚本执行if(Test-Path$codexDir){Copy-Item$codexDir$backupDir-Recurse-ForceWrite-Host备份位置$backupDir}如果.codex目录存在就将整个目录复制到带时间戳的备份目录中。这一步很重要因为.codex目录除了保存登录和 Provider 配置外还可能包含Codex 偏好设置会话状态项目配置日志本地缓存其他用户配置先备份再清理指定文件可以避免误操作造成不可恢复的数据丢失。4. 删除config.toml脚本删除Remove-Item$codexDir\config.toml-Force-ErrorAction SilentlyContinueconfig.toml通常用于保存 Codex 的配置包括当前使用的模型模型提供商自定义 Provider第三方接口地址API Base URL环境变量名称其他运行参数Codex 可能会在该文件中加入类似下面的配置model_provider custom或者[model_providers.custom] base_url https://example.com/v1 env_key CODEX_API_KEY即使 Codex 已经卸载只要config.toml中仍然指定了customProvider官方 Codex 启动后仍然可能显示custom。删除该文件后Codex 会在下次启动时重新使用默认配置或者重新生成配置文件。5. 删除auth.json脚本删除Remove-Item$codexDir\auth.json-Force-ErrorAction SilentlyContinueauth.json可能保存登录状态访问令牌API Key 认证信息自定义服务认证信息旧的账号会话如果文件中仍保存着 Codex 或第三方 Provider 的认证数据仅删除config.toml可能还不够。删除auth.json后Codex 会要求重新登录从而重新建立官方 ChatGPT 认证状态。6. 清除当前 PowerShell 会话中的环境变量脚本定义了以下变量$vars (CODEX_HOME,CODEX_ACCESS_TOKEN,CODEX_API_KEY,OPENAI_BASE_URL,OPENAI_API_BASE)这些变量可能影响 Codex 的配置目录、认证方式或接口地址。循环中的这一行Remove-ItemEnv:$name-ErrorAction SilentlyContinue用于删除当前 PowerShell 会话中的对应环境变量。例如如果当前终端中存在OPENAI_BASE_URLhttps://example.com/v1Codex 可能继续连接第三方接口而不是 OpenAI 官方服务。7. 清除用户级永久环境变量脚本还执行[Environment]::SetEnvironmentVariable($name,$null,User)这一步用于清除 Windows 用户级环境变量。只删除当前终端中的Remove-ItemEnv:OPENAI_BASE_URL是不够的因为重新打开 PowerShell 或重新启动应用后Windows 仍然可能从用户环境变量中加载该值。设置为$null后对应用户级变量会被删除。四、需要清除的环境变量说明CODEX_HOMECODEX_HOME用来指定 Codex 的配置根目录。默认情况下Codex 可能读取C:\Users\用户名\.codex但如果设置了CODEX_HOMED:\CustomCodex即使已经清理了默认的.codex目录Codex 仍然会从其他目录加载旧配置。因此需要清除该变量。CODEX_ACCESS_TOKEN该变量可能保存 Codex 的访问令牌。如果仍然存在旧令牌应用可能继续使用原来的认证状态。CODEX_API_KEY该变量可能用于自定义 Codex Provider 的 API Key 认证。清除后可以避免 Codex 自动使用第三方 API Key。OPENAI_BASE_URL该变量可能将请求重定向到自定义服务例如https://example.com/v1如果它仍然存在即使界面是官方 Codex请求也可能不会发送到 OpenAI 官方接口。OPENAI_API_BASE这是另一种常见的自定义接口地址变量。部分工具使用OPENAI_BASE_URL另一些工具使用OPENAI_API_BASE因此脚本同时清理两者。五、为什么卸载 Codex 后问题仍然存在原因在于卸载程序和清除用户配置是两件不同的事情。Codex 被卸载后以下内容可能仍然保留C:\Users\用户名\.codex\config.toml C:\Users\用户名\.codex\auth.json以及用户环境变量CODEX_HOME CODEX_ACCESS_TOKEN CODEX_API_KEY OPENAI_BASE_URL OPENAI_API_BASE卸载 Codex 通常只删除Codex 程序本体启动器部分补丁文件部分应用组件为了避免用户配置和认证信息意外丢失卸载程序一般不会主动删除整个.codex目录也未必会清理 Windows 用户环境变量。因此会出现这种情况Codex 已卸载 ↓ 自定义配置仍然存在 ↓ 官方 Codex 启动 ↓ 继续读取 custom Provider ↓ 界面仍然显示 custom六、执行脚本后的正确操作脚本执行完成后建议关闭当前 PowerShell 窗口。这是因为环境变量修改后已经运行的程序不会自动刷新环境。关闭并重新打开应用可以确保它读取最新的环境变量状态。推荐步骤执行清理脚本 → 关闭 PowerShell → 确认 ChatGPT/Codex 已完全退出 → 重新启动 ChatGPT → 进入 Codex → 使用官方 ChatGPT 账号登录如果任务栏中仍有旧的 Codex 快捷方式也应删除旧快捷方式从 Windows 开始菜单重新启动官方 ChatGPT 应用。