9Router 与 OpenAI Codex CLI 集成指南:通过 cx/ 模型前缀接入智能路由,解锁免费 AI 编程
9Router 与 OpenAI Codex CLI 集成指南通过 cx/ 模型前缀接入智能路由解锁免费 AI 编程【免费下载链接】9routerUnlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40 providers. Auto-fallback, RTK -40% tokens, never hit limits.项目地址: https://gitcode.com/GitHub_Trending/9r/9router9Router 是一个运行在本地的 OpenAI 兼容智能路由器可以将 Codex、Claude Code、Cursor、Cline 等 CLI 工具的 API 请求统一转发到 40 上游提供商并自动完成格式转换、配额追踪、Token 刷新与多级回退。本文以 Codex CLI 为切入点完整讲解如何配置环境变量与~/.codex/config.json使用cx/前缀模型完成代码生成、代码解释等日常任务并结合仓库源码剖析 9Router 内部为 Codex 专门实现的 Responses API 转换、会话缓存、SSE 错误重试与账户绑定等底层机制。读完本文你将掌握一套可直接复制运行的 Codex 9Router 接入方案并理解请求在路由器内部被如何规范化与兜底。前置要求在开始之前请确认以下三项已就绪已安装 OpenAI Codex CLIcodex命令可用9Router 正在本机运行默认端口20128或已配置可用的云端 endpoint已从 9Router 仪表盘Dashboard获取 API Key。9Router 的默认运行端口与路由入口在仓库多处得到确认.env.example 中定义了PORT20128、BASE_URLhttp://localhost:20128README.zh-CN.md 也明确指出默认 URL 为控制面板http://localhost:20128/dashboardOpenAI 兼容 APIhttp://localhost:20128/v1。从源码本地启动时cp .env.example .env npm install PORT20128 NEXT_PUBLIC_BASE_URLhttp://localhost:20128 npm run dev生产模式可运行npm run build PORT20128 HOSTNAME0.0.0.0 npm run start。第一步通过环境变量接入 9Router9Router 对外暴露的是 OpenAI 兼容 API因此 Codex CLI 只需把OPENAI_BASE_URL指向 9Router 的/v1端点即可完成对接。在 shell 配置文件~/.bashrc、~/.zshrc或~/.bash_profile中追加# 9Router 的 Base URL export OPENAI_BASE_URLhttp://localhost:20128/v1 # 来自 9Router 仪表盘的 API Key export OPENAI_API_KEYyour-9router-api-key重新加载 shell 配置source ~/.zshrc # 或 ~/.bashrc验证环境变量是否设置正确echo $OPENAI_BASE_URL echo $OPENAI_API_KEY注意仓库 README.zh-CN.md 的 CLI 集成一节给出的写法是export OPENAI_BASE_URLhttp://localhost:20128不带/v1。两种写法在 Codex CLI 的多数版本中均可工作但推荐统一使用带/v1的完整路径与 OpenAI 官方 Base URL 语义保持一致避免客户端拼接路径时出现双/v1问题。第二步通过配置文件接入推荐环境变量适合临时验证长期使用建议直接写入 Codex CLI 的配置文件。创建或编辑~/.codex/config.json{ baseUrl: http://localhost:20128/v1, apiKey: your-9router-api-key, defaultModel: cx/gpt-5.2-codex }配置文件方式的好处是defaultModel可以直接固定为 9Router 的cx/前缀模型日常执行codex prompt时无需每次手动携带--model参数。可用模型cx/ 前缀命名约定9Router 中所有 Codex 相关模型统一使用cx/前缀。这一约定与 provider 注册表完全对应在 open-sse/providers/registry/codex.js 中provider 的id为codex、alias与uiAlias均为cx模型 ID 即由alias / 上游模型名组成。文档给出的两个核心模型模型 ID描述cx/gpt-5.2-codexGPT-5.2 Codex - 最新版本cx/gpt-5.1-codex-maxGPT-5.1 Codex Max - 扩展上下文README.zh-CN.md 的可用模型清单进一步表明cx/家族会随上游迭代持续扩展例如cx/gpt-5.5、cx/gpt-5.4、cx/gpt-5.3-codex。在 9Router 仪表盘连接好 OpenAI 账户支持 OAuth 登录后即可通过cx/模型名的形式调用9Router 会自动完成身份凭证刷新与配额管理。使用示例基础用法# 使用 GPT-5.2 Codex codex --model cx/gpt-5.2-codex Write a function to sort an array # 使用 GPT-5.1 Codex Max codex --model cx/gpt-5.1-codex-max Explain this complex algorithm代码生成codex --model cx/gpt-5.2-codex Create a REST API endpoint for user authentication代码解释codex --model cx/gpt-5.1-codex-max Explain what this code does: $(cat myfile.js)在配置文件中设置了defaultModel之后可以省略--model参数直接执行codex your prompt9Router 会按组合Combo或多级回退策略路由到可用上游从而避免单一订阅配额耗尽时中断工作流。源码视角Codex 请求在 9Router 内部经历了什么理解底层实现有助于排查问题和调优。Codex 的请求由 open-sse/executors/codex.js 中的CodexExecutor专门处理它在BaseExecutor之上做了多项针对 Codex Responses API 的适配协议规范化Codex 使用 OpenAI Responses API 格式transformRequest会通过normalizeResponsesInput将字符串 input 转为数组格式强制streamtrue、storefalse并把system角色转为developer以保持可缓存的 prompt 前缀convertSystemToDeveloperRole。会话与提示缓存通过resolveCacheSessionId解析出跨请求稳定的session_id并注入prompt_cache_key让 Codex 上游可以复用提示缓存、降低 token 消耗相关策略在 tests/unit/antigravity-cache.test.js 中有对比验证。工具白名单过滤normalizeCodexTools会将 Chat-Completions 形状的函数工具扁平化为 Responses 格式过滤掉上游不支持的 hosted tool 类型RESPONSES_API_ALLOWLIST白名单会剥离temperature、top_p、max_tokens、user、metadata等 Codex 不接受的字段避免触发上游routing_unsupported错误。多账户绑定buildHeaders会注入originator: codex_cli_rs标识客户端类型并优先使用workspaceId/chatgptAccountId写入ChatGPT-Account-ID头防止多个 Codex 账户之间请求串号。SSE 错误重试与容量兜底_peekSseTransientError会读取响应流前 256KB识别server_is_overloaded、service_unavailable_error等瞬态错误并按 503 重试配置自动重试遇到selected model is at capacity等容量错误则交由账户回退机制处理避免中断对应测试见 tests/unit/codex-fast-capacity.test.js。配额与过期解析parseError专门解析 429 响应中的usage_limit_reached提取resets_at/resets_in_seconds计算精确的恢复时间OAuth 凭证的预刷新由 open-sse/services/oauthCredentialManager.js 支撑tests/unit/codex-refresh-token.test.js 对 5 天提前刷新窗口做了断言。这也是为什么 Codex CLI 只需要指向 9Router 的/v1地址上游协议差异、凭证刷新、限流重试等复杂度全部被收敛在路由器内部。故障排除认证错误在 9Router 仪表盘中确认 API Key 正确检查OPENAI_API_KEY环境变量是否已设置确认 API Key 未过期Codex 的 OAuth 凭证由 9Router 自动刷新若手动换过账户需重新连接。连接问题确认 9Router 正在运行curl http://localhost:20128/health检查环境变量设置是否正确尤其是OPENAI_BASE_URL是否带/v1确保防火墙没有阻止 20128 端口。模型不可用出现 model not available 错误时确认模型名与 9Router 配置一致注意cx/前缀与大小写检查 9Router 仪表盘中 OpenAI/Codex 提供商连接是否处于激活状态确认该模型存在于已连接的提供商账户中模型清单可参考 open-sse/providers/registry/codex.js 与仪表盘。使用云端 Endpoint如果 9Router 部署在云端而不是本机只需替换 Base URLexport OPENAI_BASE_URLhttps://9router.com并确保已在 9Router 云端仪表盘中配置 API Key。其余用法与本机部署完全一致。高级配置自定义超时export OPENAI_TIMEOUT60 # 秒长上下文或复杂 agent 任务可适当调大超时避免请求被提前中断。Debug 模式启用 debug 模式查看详细的请求/响应日志export CODEX_DEBUGtrue codex --model cx/gpt-5.2-codex Your prompt结合 9Router 侧的请求日志ENABLE_REQUEST_LOGStrue时输出到仓库logs/目录可以完整追踪一次请求从 CLI 到上游 provider 再到响应的全过程是定位模型路由与配额问题的利器。延伸阅读本文对应的英文/中文文档见 gitbook/content/zh-CN/integration/codex.md多语言版本位于 gitbook/content/9Router 整体架构与快速开始见 README.zh-CN.mdCodex 专用执行器实现见 open-sse/executors/codex.jsprovider 注册与模型定义见 open-sse/providers/registry/codex.js相关单元测试tests/unit/codex-fast-capacity.test.js、tests/unit/codex-image-fetch.test.js、tests/unit/codex-refresh-token.test.js。至此你已经完成 Codex CLI 与 9Router 的完整接入环境变量或~/.codex/config.json二选一即可生效cx/前缀模型可直接使用遇到容量、认证、连接类问题也有明确的排查路径。将cx/模型加入 9Router 的组合Combo后还能与 Claude Code、Kiro、Vertex 等免费或低价层形成多级回退链实现真正不中断的 AI 编程体验。【免费下载链接】9routerUnlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40 providers. Auto-fallback, RTK -40% tokens, never hit limits.项目地址: https://gitcode.com/GitHub_Trending/9r/9router创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考