 安装 Codex 并配 TaoToken:settings.json 骨架与连通性验证)
1. 为什么要在 WSL2 里跑 Codex而不是 Windows 原生如果你在 Windows 上直接装 Codex CLI大概率会遇到两类麻烦一是路径分隔符和 shell 环境差异Codex 执行git、python、node这类命令时经常找不到二是项目文件散落在C:\Users\...下权限和换行符CRLF/LF问题会让 diff 变得很难看。我自己的做法是把 Codex 完全放进 WSL2 的 Ubuntu 24.04 里跑Windows 只留一个 VS Code 当图形编辑器这样命令行工具链、Git、Python、Node 全在 Linux 侧行为可预期。这篇要解决的核心问题是在 Windows 宿主机 WSL2 Ubuntu 24.04 环境下把 Codex 装好并且让它通过 TaoToken 的统一 Key/API 通道发请求最后在 VS Code 里稳定调用。适合已经在用 WSL2、想搭本地 AI 编码工具链的人。全文会给一份可复制的settings.json骨架、WSL2 内的环境变量与网络检查步骤以及一次最小请求验证连通性的动作。Codex 本身是命令行编码代理能读写项目文件、跑命令、做重构TaoToken 在这里承担的是统一模型入口的角色把 Key 和 API 地址收敛到一处换模型时不用改一堆配置。需要先明确一点Codex 运行在 Ubuntu 命令行里VS Code 只是通过 WSL 远程连接去编辑同一批文件。所以下面所有安装、配置、验证动作默认都在 Ubuntu 终端里执行Windows PowerShell 只在检查 WSL 状态时用一下。2. TaoToken 前置拿 Key、认地址、理清通道在动 Codex 之前先把 TaoToken 这一侧准备好。它的作用是给你一个统一的 API 入口和 KeyCodex 通过这个入口去请求模型而不是每个工具各配一套凭证。你需要拿到两样东西一个 API Key以及 API 基地址。基地址是https://taotoken.net/api注意这个地址后面不加任何查询参数。Key 在控制台的 API Keys 页面创建创建后只显示一次复制到安全的地方。创建 Key 的入口在这里https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2如果你还没注册官网入口是https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2关于模型选择Codex 这类编码代理对推理强度比较敏感建议在 TaoToken 侧确认你要用的模型名后面写进配置。如果你只是想先验证通道通不通用模型对话页面发一条消息最快https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2长期在 Codex 里做编码和 Agent 任务的话可以关注 Coding Plan它更适合高频调用场景https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2接入文档在这里配置字段有疑问时对照它https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2把 Key 和基地址准备好之后先别急着写进 Codex 配置下一步先在 WSL2 里确认网络能通到 TaoToken否则后面报错你会分不清是配置问题还是网络问题。3. 可复制配置WSL2 环境变量 Codex settings.json 骨架3.1 先确认 WSL2 状态和网络模式在 Windows PowerShell 里看一眼发行版和版本wsl -l -v正常应该看到Ubuntu-24.04且VERSION为2。如果不是 2执行wsl --set-version Ubuntu-24.04 2转换。然后进入 Ubuntuwsl -d Ubuntu-24.04WSL2 默认是 NAT 网络模式Ubuntu 里的127.0.0.1指向 Ubuntu 自己不是 Windows。如果你在 Windows 侧有本地网络工具监听端口WSL 里是访问不到的。推荐开启 mirrored 网络模式让 WSL 和 Windows 共享网络栈。在 PowerShell 里编辑.wslconfignotepad $env:USERPROFILE\.wslconfig写入[wsl2] networkingModemirrored dnsTunnelingtrue autoProxytrue firewalltrue保存后重启 WSLwsl --shutdown wsl -d Ubuntu-24.043.2 在 Ubuntu 里设置 TaoToken 环境变量进入 Ubuntu 后把 Key 和基地址写进 shell 配置。编辑~/.bashrcnano ~/.bashrc在末尾追加把sk-你的Key换成实际值export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api export OPENAI_API_KEY$TAOTOKEN_API_KEY export OPENAI_BASE_URL$TAOTOKEN_BASE_URL保存后生效source ~/.bashrc这里同时导出OPENAI_*变量是因为不少 CLI 工具默认读这两个名字。Codex 的配置我们单独用文件管理环境变量作为兜底。3.3 Codex 的 settings.json 骨架Codex 的配置目录在~/.codex/。先建目录mkdir -p ~/.codex然后创建~/.codex/settings.json这是一份可直接复制的骨架{ model: gpt-5.5, model_reasoning_effort: high, api_base: https://taotoken.net/api, api_key_env: TAOTOKEN_API_KEY, approval_policy: on-request, sandbox_mode: workspace-write, projects: { /home/你的用户名/workspace: { trust_level: trusted } }, tui: { status_line: [ model-with-reasoning, context-remaining, current-dir, git-branch, codex-version ] } }几个字段说明一下。api_base指向 TaoToken 的 API 地址api_key_env告诉 Codex 从哪个环境变量读 Key这样 Key 不落盘到配置文件里更安全。sandbox_mode设为workspace-write允许 Codex 在工作区内写文件但不会乱动系统目录。projects里把你实际的工作目录加进去并标为trusted避免每次操作都弹确认。如果你更习惯用 TOML 格式Codex 也支持~/.codex/config.toml等价写法是model gpt-5.5 model_reasoning_effort high api_base https://taotoken.net/api api_key_env TAOTOKEN_API_KEY approval_policy on-request sandbox_mode workspace-write [projects./home/你的用户名/workspace] trust_level trusted [tui] status_line [model-with-reasoning, context-remaining, current-dir, git-branch, codex-version]两种格式选一种即可不要同时维护否则容易互相覆盖。3.4 安装 Codex CLI 与基础依赖先装基础依赖sudo apt update sudo apt install -y curl git ca-certificates build-essential unzip zip jq bubblewrap然后安装 Codex。用官方 standalone 安装脚本curl -fsSL https://chatgpt.com/codex/install.sh | sh装完检查which codex codex --version正常会输出类似/home/你的用户名/.local/bin/codex和版本号。如果which codex找不到把~/.local/bin加进 PATHecho export PATH$HOME/.local/bin:$PATH ~/.bashrc source ~/.bashrc3.5 VS Code 侧配置在 Ubuntu 项目目录里执行code .VS Code 会以 WSL 远程模式打开。左下角应显示WSL: Ubuntu-24.04。然后按Ctrl Shift P搜索Preferences: Open User Settings (JSON)加入{ chatgpt.runCodexInWindowsSubsystemForLinux: true }如果文件里已有其他配置注意加逗号。这一步是让 VS Code 里的 Codex 扩展知道要去 WSL 里找 CLI而不是在 Windows 侧找。4. 验证请求一次最小连通性测试配置写完先别急着让 Codex 改代码做一次最小验证。4.1 先验证网络到 TaoToken在 Ubuntu 里直接 curl 一下 API 地址确认能建立连接curl -sS -o /dev/null -w %{http_code}\n https://taotoken.net/api如果返回 4xx 也说明网络通了只是没带凭证返回 000 或超时才是网络问题。接着带 Key 发一个最小请求curl -sS https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ | head -c 500能返回模型列表 JSON说明 Key 和基地址都对。4.2 在 Codex 里验证进入一个测试项目mkdir -p ~/workspace/codex-demo cd ~/workspace/codex-demo git init codex启动后输入/status看当前模型、目录、权限是否正确。再输入/debug-config确认配置文件被读取、api_base指向 TaoToken。然后发一条最简单的指令比如「列出当前目录下的文件」观察它是否正常调用模型并返回结果。如果底部状态栏显示类似gpt-5.5 high · Context 99% left · ~/workspace/codex-demo · master说明模型、推理强度、工作目录、Git 分支都识别到了。这时候通道就算打通了。4.3 在 VS Code 里验证在项目目录执行code .打开 VS Code调出 Codex 面板发一条同样的指令。如果 WSL 侧能返回结果说明 VS Code 到 WSL 的调用链也通了。这一步很关键因为很多人 CLI 能跑但 VS Code 扩展找不到 CLI就是runCodexInWindowsSubsystemForLinux没设对。5. 本篇常见错排查5.1wsl: 检测到 localhost 代理配置但未镜像到 WSL这是启动 WSL 时的提示不是致命错误。意思是 Windows 侧的本地网络工具监听在127.0.0.1而 NAT 模式下 WSL 的127.0.0.1是它自己。解决办法就是第 3.1 节开启 mirrored 模式或者手动在 Ubuntu 里设置指向 Windows 宿主 IP 的代理变量。开启 mirrored 后重启 WSL这个提示会消失。5.2 Codex 报 401 或鉴权失败先确认环境变量在当前 shell 里真的存在echo $TAOTOKEN_API_KEY如果为空说明~/.bashrc没生效或写错了。注意settings.json里用的是api_key_env它读的是环境变量名不是 Key 本身。如果你把 Key 直接写进api_key字段要确保没有多余空格和换行。5.3 Codex 找不到命令或版本混乱如果你之前用 npm 装过 Codex可能出现 standalone 版和 npm 版混用。检查which -a codex如果出现多个路径建议卸载 npm 版只保留~/.local/bin/codex。升级也统一用安装脚本重跑不要用npm install -g。5.4 VS Code 里 Codex 不工作先确认左下角是WSL: Ubuntu-24.04不是本地 Windows。然后在 WSL 终端里确认codex --version能跑。如果 CLI 正常但扩展不工作检查settings.json里chatgpt.runCodexInWindowsSubsystemForLinux是否为true以及有没有 JSON 语法错误多余逗号最常见。5.5 项目放在/mnt/c下出现权限或换行符问题不建议直接在/mnt/c/Users/...下跑 Codex。Windows 文件系统在 WSL 里挂载后权限模型和换行符处理都和 Linux 原生不同Git diff 会很难看。正式项目复制一份到~/workspace下再操作处理完再同步回去。6. 稳定调用后的日常流程与入口跑通之后日常流程可以固定下来打开 Ubuntucd ~/workspace/你的项目code .打开 VS Code再在终端里codex启动。重要修改前先git add . git commit -m before codex changes改完用git diff看差异不满意git restore .回滚。这套习惯能让你在享受 Codex 自动改代码的同时随时能退回去。如果你在排障或接入阶段卡住优先看 API Keys 和接入文档https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2只是想快速验证某个模型能不能用去模型对话页面发一条消息最直接https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2长期在 Codex 里做编码和 Agent 任务、调用频率高的话Coding Plan 更合适https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcodex_wsl2最后提醒一个实操细节~/.codex/settings.json和~/.codex/config.toml不要同时维护Codex 读取优先级可能让你改了 A 文件却生效的是 B 文件。选一种格式改完用/debug-config确认生效再开始正式编码。