ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

手贱把 Codex 切到 WSL 后,我花了大半天修复它:config.toml 与 CODEX_CLI_PATH 排查实录

手贱把 Codex 切到 WSL 后,我花了大半天修复它:config.toml 与 CODEX_CLI_PATH 排查实录 1. 手贱切到 WSL 之后Codex 为什么直接打不开了先说结论Codex 在 Windows 上跑得好好的一旦把 Agent 运行环境切到 WSL它就会去 WSL 里找 Codex CLI 的可执行文件。WSL 里没装路径对不上启动流程直接卡死。表现就是双击图标没反应或者闪一下就退日志里大概率能看到CODEX_CLI_PATH相关的报错。这个坑的迷惑性在于切换选项的文案看起来像是「让 Codex 在 WSL 里运行」实际上它改的是 Agent 的运行环境指向而不是帮你把 CLI 装进 WSL。我当时的项目工作路径确实在 WSL 里环境变量比如数据库连接串也都在 WSL 的 shell 里所以看到那个选项就以为能一劳永逸结果重启后 Codex 直接打不开。这篇文章适合两类人一是已经在 Windows 上用 Codex、项目却在 WSL 里开发的二是手滑切了环境、现在 Codex 起不来的。我会把config.toml的骨架、CODEX_CLI_PATH的校验命令、以及怎么用 TaoToken 的统一 Key 通道做一次调用验证完整走一遍。修复思路不是重装而是把路径和配置改回一致。先明确一个概念Codex 的启动依赖两个东西——一个是 CLI 可执行文件的实际路径一个是config.toml里的功能开关和运行环境声明。切换 WSL 之所以炸是因为这两者被改成了 WSL 视角但 WSL 里既没有 CLI也没有对应的插件缓存。所以修复的核心就是让路径重新指向 Windows 下真实存在的可执行文件同时把config.toml里被改乱的字段改回来。2. 修复前先把 TaoToken 的 Key 和通道准备好路径修好只是第一步Codex 能不能真正跑起来还得看模型调用通道通不通。我这边统一用 TaoToken 做 Key 和 API 通道管理好处是 Codex、Claude Code、以及其它 Agent 工具可以共用一套 Key不用每个工具单独配一遍。你需要先拿到一个可用的 Key。登录 TaoToken 控制台在 API Keys 页面创建一个复制出来备用。地址是 https://taotoken.net/api 控制台入口在 https://taotoken.net/console 。创建 Key 的页面是 https://taotoken.net/api-keys 。拿到 Key 之后Codex 的模型请求走 TaoToken 的 API 端点。这样即使你后面在 WSL 和 Windows 之间来回切只要 Key 和端点不变调用层就不会成为新的故障点。这一步的意义在于把「路径问题」和「通道问题」分开排查避免修好一个又被另一个绊住。如果你还没决定用哪个模型可以先去模型对话页面试一下通道是否正常https://taotoken.net/models 。确认能正常返回再回到 Codex 这边配。3. config.toml 骨架与 CODEX_CLI_PATH 的可复制配置Codex 的配置文件在 Windows 下通常位于用户目录的.codex文件夹里文件名是config.toml。切换 WSL 后出问题的字段主要集中在运行环境和 CLI 路径上。下面是一份可以直接对照的骨架重点看cli_path和功能开关部分。# config.toml 骨架示例 # 路径请替换成你本机真实存在的 Codex CLI 可执行文件 [core] # 运行环境切回 windows不要留 wsl runtime windows # Codex CLI 可执行文件的绝对路径 # Windows 下一般是 exe注意用双反斜杠或正斜杠 cli_path C:/Users/你的用户名/AppData/Local/Programs/codex/codex.exe # 模型调用通道指向 TaoToken 的 API 端点 api_base https://taotoken.net/api api_key 你的_TaoToken_Key [features] # 这些开关被 WSL 切换改乱后插件和 Computer Use 会失效 javascript_runtime true computer_use true plugins true [cache] # 插件缓存目录切回 Windows 后要指向 Windows 下的路径 plugin_cache C:/Users/你的用户名/.codex/plugins关键点有三个。第一runtime必须是windows如果这里还写着wslCodex 启动时会去 WSL 里找 CLI必然失败。第二cli_path必须是 Windows 下真实存在的 exe 路径不能是 WSL 的/home/xxx/...这种 Linux 路径。第三api_base和api_key指向 TaoToken保证模型调用不依赖本地环境。改完配置后用命令行校验一下路径是否真的存在。在 PowerShell 里执行# 校验 CODEX_CLI_PATH 指向的文件是否存在 $path C:\Users\你的用户名\AppData\Local\Programs\codex\codex.exe Test-Path $path # 如果返回 True说明路径有效 # 如果返回 False说明路径写错了需要重新找 codex.exe 的位置如果Test-Path返回False用下面这条命令在常见安装目录里搜一下# 在用户目录下搜索 codex.exe Get-ChildItem -Path $env:USERPROFILE -Recurse -Filter codex.exe -ErrorAction SilentlyContinue | Select-Object FullName找到真实路径后把它填回config.toml的cli_path同时把 Windows 环境变量CODEX_CLI_PATH也设成同一个值。环境变量和配置文件两处要一致否则 Codex 可能读到一个、用另一个。# 设置 Windows 用户级环境变量 [Environment]::SetEnvironmentVariable(CODEX_CLI_PATH, C:\Users\你的用户名\AppData\Local\Programs\codex\codex.exe, User) # 设置后需要重启 Codex 或重新打开终端才能生效4. 验证请求用 TaoToken 通道跑一次调用确认修复生效配置改完、路径校验通过之后别急着开图形界面先用命令行跑一次最小调用确认通道和 CLI 都能正常工作。这一步能把「路径问题」和「模型调用问题」彻底分开。# 用 Codex CLI 发起一次最小请求 # 确认 CLI 能启动并且能通过 TaoToken 通道拿到模型返回 codex --api-base https://taotoken.net/api --api-key 你的_TaoToken_Key 回复一句通道正常如果返回了模型输出说明三件事同时成立CLI 可执行文件路径正确、config.toml被正确读取、TaoToken 通道可用。这时候再打开 Codex 图形界面启动流程就不会再卡在路径检测上。实测下来切换 WSL 后打不开的情况九成以上是cli_path和runtime这两个字段没改回来。剩下的一成是插件缓存目录还指向 WSL 路径导致启动时读缓存失败。如果你在图形界面里看到插件和 Skill 报错把plugin_cache也改成 Windows 路径然后重启。对于需要长期跑编码任务或 Agent 的场景可以考虑用 Coding Plan 把调用额度固定下来避免每次调试都担心 Key 的额度问题https://taotoken.net/coding-plan 。接入文档在 https://taotoken.net/doc 里面有各工具的配置示例。5. 本篇常见错排查路径、缓存、插件三类问题修复过程中我踩过的坑基本可以归成三类。下面按报错现象倒推原因方便你对照。第一类是启动直接失败没有任何界面。原因通常是runtime还是wsl或者cli_path指向了不存在的文件。排查方法就是上面那条Test-Path命令先确认文件在不在再看config.toml里写的是不是同一个路径。注意 Windows 路径里的反斜杠在 TOML 里要转义或者直接用正斜杠两种写法都行但别混着写。第二类是能启动但项目列表和历史记录消失。这个不是数据丢了而是项目路径和历史会话之间的索引映射断了。解决办法是重新添加原来的工作路径索引重建后历史记录会回来。我试过把.codex-global-state.json改成.old让 Codex 重新生成结果新文件里的路径仍然指向 WSL问题没解决最后还是靠重新添加路径恢复的。第三类是插件和 Computer Use 无法使用。这类问题的根源在插件缓存。切换 WSL 后缓存目录指向了 WSL 里的路径但 WSL 里没有对应的插件文件所以加载失败。处理方式是先把旧的plugins目录改名备份重启 Codex 让它重新生成然后重新下载 Chrome 和 Computer Use 插件。注意不要直接删除改名成.old更稳妥万一新生成的还有问题可以改回来对比。报错现象可能原因排查命令/操作启动无界面runtime 仍为 wsl检查 config.toml 的 runtime 字段启动闪退cli_path 指向不存在文件Test-Path $path项目列表消失路径索引映射断裂重新添加原工作路径插件加载失败插件缓存指向 WSL备份并重建 plugins 目录Computer Use 不可用功能开关被改乱检查 features 段开关还有一点如果让 Codex 自己去修复自己一定要在指令里加上「禁止自行重启」和「不要卸载自己」。我见过有人的 Codex 在自我修复过程中把自己删了最后只能重装。修复类操作尽量在命令行层面手动做可控性更高。6. 把 Key 和路径都固定下来别再手贱切环境整件事的教训其实很简单Agent 工具的运行环境切换改的不只是一个开关而是路径、缓存、插件、环境变量一整条链路。切之前最好先确认目标环境里有没有对应的 CLI 和缓存没有就别切。修复完成后建议把config.toml和CODEX_CLI_PATH两处路径固定成同一个值并且把 TaoToken 的 Key 和 API 端点也写进配置这样即使以后误操作改了环境只要把runtime和cli_path改回来通道层不用重新配。需要新建或轮换 Key 的时候去 https://taotoken.net/api-keys 操作就行。如果你也在用 Claude Code 或其它 Agent 工具接入方式可以参考 https://taotoken.net/claude-code 思路是一样的路径归路径通道归通道分开排查别让一个手滑的操作把整条链路都带崩。
返回列表