codex启动异常、登录失败或界面持续显示custom,主因是残留旧环境变量干扰;需在windows用powershell清除user级codex/openai/anthropic相关变量,macos/linux则从shell配置文件中删除对应export行,并重启终端或执行source生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex启动异常、登录失败或界面持续显示custom,往往不是程序本身损坏,而是系统中残留的旧环境变量仍在被读取,导致新版应用加载错误配置或跳过正常认证流程。
Windows系统:用PowerShell精准定位并清除
打开Windows PowerShell(管理员),直接执行以下命令查看所有含Codex或相关关键词的环境变量:
Get-ChildItem Env: | Where-Object {$_.Name -like "*CODEX*" -or $_.Name -like "*OPENAI*" -or $_.Name -like "*ANTHROPIC*"} | Format-Table Name,Value -AutoSize
这一步必须做,因为Codex桌面版、CLI、Codex++、Claude Code等工具会共用相似变量名,仅靠记忆删除极易遗漏。输出结果中每一行Name就是待清理项。
逐个清除用户级变量(推荐先只清用户级,避免误动系统级):
[Environment]::SetEnvironmentVariable("CODEX_CONFIG_DIR", $null, "User")
[Environment]::SetEnvironmentVariable("OPENAI_API_BASE", $null, "User")
[Environment]::SetEnvironmentVariable("CRS_OAI_KEY", $null, "User")
如果不确定具体变量名,可批量清除所有匹配项:
$vars = Get-ChildItem Env: | Where-Object {$_.Name -match "CODEX|OPENAI|ANTHROPIC|CLAUDE"} | ForEach-Object {$_.Name}
foreach($v in $vars) { [Environment]::SetEnvironmentVariable($v, $null, "User") }
【执行后必须重启PowerShell或终端窗口,否则新环境变量不会生效】
macOS/Linux:从shell配置文件中剥离
环境变量通常写在 ~/.zshrc、~/.bash_profile 或 ~/.profile 中。先检查哪些文件实际包含Codex相关配置:
grep -n "CODEX\|OPENAI\|ANTHROPIC" ~/.zshrc ~/.bash_profile ~/.profile 2>/dev/null
若输出类似 ~/.zshrc:42:export CODEX_HOME="$HOME/.codex",说明第42行存在定义。用文本编辑器打开对应文件,手动删除整行。
常见需删的典型行包括:
export CODEX_HOME="$HOME/.codex"
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_BASE_URL="https://api.anthropic.com"
改完保存后,立即执行 source ~/.zshrc(或你实际修改的文件名)使变更生效。不执行source,终端仍沿用旧变量。
通用验证:确认是否真正清空
方法一:终端中逐个检查关键变量是否返回空值
echo $CODEX_CONFIG_DIR
echo $OPENAI_API_BASE
echo $ANTHROPIC_AUTH_TOKEN
三者均应无任何输出(即为空)。若有内容,说明某处配置未删净。
方法二:启动Codex前,在终端运行 env | grep -i "codex\|openai\|anthropic",确认无任何返回结果。
方法三(Windows):在新打开的PowerShell中运行 [Environment]::GetEnvironmentVariables("User") | Where-Object {$_.Key -match "CODEX|OPENAI|ANTHROPIC"},应无输出。











