Codex cc-switch 对接配置摘要: 本文记录了 Codex CLI 无法使用 deepseek 模型、cc-switch 拦截不到请求的故障排查全过程。核心问题是 Codex 配置目录 (C:\Users\Junbai\.codex\) 缺少config.toml文件导致 Codex 直接使用真实 API Key 直连外部 API绕过了 cc-switch 代理。解决方案是在 Codex 配置目录中创建正确的config.toml、复制模型目录文件并将auth.json中的 API Key 改为PROXY_MANAGED。修复后Codex 与 Claude 均通过 cc-switch 统一代理访问 deepseek API。日期: 2026-06-30场景: Codex CLI 无法使用 deepseek 模型cc-switch 拦截不到 Codex 的请求目录问题现象环境信息排查过程根因分析解决方案执行操作验证结果核心原理故障排查 Checklist资源文档https://my.feishu.cn/wiki/ToppwTzkdire2BkVXrXcUWkTnWd?fromfrom_copylink问题现象cc-switch 已配置 deepseek-v4-flash 模型Codex CLI 中看不到 deepseek 模型列表cc-switch 拦截不到 Codex 发出的任何 API 请求Codex 依然在直连外部 API环境信息项目值cc-switch 安装目录D:\bianchen\ccswitch\cc-switch 代理地址http://127.0.0.1:15721/v1cc-switch 运行状态✅ 运行中 (PID 17244)Codex 配置目录C:\Users\Junbai\.codex\Codex 版本v0.142.4系统Windows 11排查过程步骤 1: 检查 cc-switch 配置catD:\bianchen\ccswitch\.codex\config.tomlmodel_provider custom model deepseek-v4-flash model_reasoning_effort high disable_response_storage true model_catalog_json cc-switch-model-catalog.json [model_providers] [model_providers.custom] name deepseek base_url http://127.0.0.1:15721/v1 wire_api responses requires_openai_auth true✅ cc-switch 配置正常代理地址为localhost:15721步骤 2: 检查 cc-switch auth// D:\bianchen\ccswitch\.codex\auth.json{OPENAI_API_KEY:PROXY_MANAGED}✅PROXY_MANAGED— 鉴权由 cc-switch 统一管理步骤 3: 检查 Codex 配置目录lsC:\Users\Junbai\.codex\发现config.toml不存在Codex CLI 的标准配置目录是C:\Users\Junbai\.codex\但这个目录下没有 config.toml只有auth.json— 含真实 API Keyversion.json— 版本信息运行时数据库文件goals、logs、memories、state步骤 4: 检查 Codex auth// C:\Users\Junbai\.codex\auth.json{auth_mode:apikey,OPENAI_API_KEY:sk-cf4642e3e4124128a993de0b753e3dfe}❌ Codex 持有真实 API Key直接发往 API 服务器步骤 5: 检查 cc-switch 运行状态netstat-ano|grep15721TCP 127.0.0.1:15721 0.0.0.0:0 LISTENING 17244 TCP 127.0.0.1:15721 127.0.0.1:52619 ESTABLISHED 17244 TCP 127.0.0.1:52619 127.0.0.1:15721 ESTABLISHED 13020PID17244→cc-switch.exe代理正常监听PID13020→claude.exe当前 Claude Code 会话已连接到 cc-switch步骤 6: 检查模型目录cc-switch 的cc-switch-model-catalog.json中有deepseek-v4-flash、deepseek-v4-pro等模型定义共 127 行Codex 目录下无此文件。根因分析┌─────────────────────────────────────────────┐ │ 请求流向图修复前 │ │ │ │ Codex CLI ──auth.json 真实 Key──► API 服务器 │ │ ↑ (绕过!) │ │ │ │ │ 无 config.toml │ │ 不知道 cc-switch 的存在 │ │ │ │ cc-switch (127.0.0.1:15721) │ │ └─ 只有 Claude 连了它 │ └─────────────────────────────────────────────┘一句话根因:C:\Users\Junbai\.codex\是 Codex CLI 读取配置的目录但它缺少config.toml所以 Codex 不知道自己应该通过 cc-switch 代理发送请求。它直接使用auth.json中的 API Key 直连外部服务器cc-switch 完全拦截不到。对比 Claude正常情况:工具配置目录有 config.toml?代理地址状态Claude CodeD:\bianchen\ccswitch\.codex\✅localhost:15721✅ 正常Codex CLIC:\Users\Junbai\.codex\❌ 缺失默认直连❌ 绕过解决方案需要让 Codex CLI 也使用 cc-switch 代理方法是在C:\Users\Junbai\.codex\中创建正确的配置所需文件文件说明config.tomlCodex 核心配置指定模型提供商、代理地址、模型目录cc-switch-model-catalog.json模型定义文件从 cc-switch 复制auth.json修改 API Key 为PROXY_MANAGED执行操作操作 1: 复制模型目录cpD:/bianchen/ccswitch/.codex/cc-switch-model-catalog.json\C:/Users/Junbai/.codex/cc-switch-model-catalog.json作用: 让 Codex 能够识别 deepseek 系列模型deepseek-v4-flash、deepseek-v4-pro 等操作 2: 创建 Codex config.toml# C:\Users\Junbai\.codex\config.toml model_provider custom model deepseek-v4-flash model_reasoning_effort high disable_response_storage true model_catalog_json C:\\Users\\Junbai\\.codex\\cc-switch-model-catalog.json [model_providers] [model_providers.custom] name deepseek base_url http://127.0.0.1:15721/v1 wire_api responses requires_openai_auth true关键字段说明:字段值作用model_providercustom使用自定义提供商而非官方 OpenAI/Anthropicmodeldeepseek-v4-flash默认使用的模型需在 catalog 中存在base_urlhttp://127.0.0.1:15721/v1cc-switch 代理地址所有请求发往这里wire_apiresponsesAPI 协议格式OpenAI Responses API 兼容requires_openai_authtrue需要 OpenAI 兼容的鉴权头model_catalog_json完整路径指向模型定义文件操作 3: 更新 Codex auth.json{auth_mode:apikey,OPENAI_API_KEY:PROXY_MANAGED}作用:PROXY_MANAGED是 cc-switch 的特殊标记表示鉴权由代理处理客户端不再持有真实密钥。验证结果修复后的请求流向┌─────────────────────────────────────────────┐ │ 请求流向图修复后 │ │ │ │ Codex CLI │ │ │ │ │ │ config.toml 指向 │ │ ▼ │ │ cc-switch (127.0.0.1:15721) │ │ │ │ │ │ 代理拦截、鉴权、路由 │ │ ▼ │ │ deepseek API ◄──── 统一管理 │ │ │ │ 所有 AI 工具都经过 cc-switch │ │ └─ Claude ✅ │ │ └─ Codex ✅ (新增) │ └─────────────────────────────────────────────┘最终文件清单C:\Users\Junbai\.codex\├── config.toml# ✅ 新增 - 指向 cc-switch 代理├── cc-switch-model-catalog.json# ✅ 新增 - 模型定义 (93642 bytes)├── auth.json# ✅ 修改 - PROXY_MANAGED├── version.json# 已有├── cap_sid# 已有├── history.jsonl# 已有├── *.sqlite# 已有运行时数据库└──...核心原理cc-switch 的工作方式cc-switch 是一个本地 AI 代理/网关运行在127.0.0.1:15721。它拦截请求: 接收发往localhost:15721/v1的所有 API 请求统一鉴权: 管理所有 API Key客户端用PROXY_MANAGED占位路由转发: 根据请求中的模型名转发到对应的后端deepseek、OpenAI 等模型兼容: 通过cc-switch-model-catalog.json向客户端暴露可用模型列表配置目录分离机制工具配置目录环境变量/规则Claude Code项目.codex/或~/.codex/优先使用工作目录附近的.codex/Codex CLI~/.codex/即C:\Users\用户名\.codex\固定在用户目录Cursor项目.cursor/项目级配置教训: 不同工具的配置目录不同配置 cc-switch 时需要分别配置每个工具。故障排查 Checklist如果以后再遇到配置了代理但工具不经过代理的问题1. 代理是否正在运行 →netstat -ano | grep 端口2. 工具读取的是哪个配置目录 → 查看文档或用strace/Process Monitor3. 该目录下有没有config.toml →ls -la4.auth.json中是否有真实 API Key → 应改为PROXY_MANAGED5.config.toml中的base_url是否正确 → 应为http://127.0.0.1:15721/v16. 模型名称在 catalog 中是否存在 →grep deepseek cc-switch-model-catalog.json7. 有哪个进程连接到了代理 → 查看 ESTABLISHED 连接8. 是否为每个工具都创建了对应的配置 → Claude/Codex/Cursor 各需独立配置文档用途: 记录 Codex CLI 对接 cc-switch 代理的全过程供后续类似问题参考相关文件:C:\Users\Junbai\.codex\config.toml、C:\Users\Junbai\.codex\auth.json创建时间: 2026-06-30