9Router 是一个面向 AI 编程工具的本地路由器。它把 Claude Code、Codex、Cursor、Cline、Copilot、OpenCode、OpenClaw 等工具统一接到一个 OpenAI-compatible endpoint,再由 9Router 负责转发到不同模型和服务商。
它的目标不是再做一个聊天客户端,而是放在 AI 编程工具和模型服务之间,解决几个实际问题:
- 不同工具的 API 格式不一致。
- 订阅额度、免费额度和便宜 API 需要手动切换。
git diff、grep、ls、tree等工具输出会快速消耗 token。- 某个模型限流或额度耗尽时,编码流程容易中断。
- 多账号、多 provider、多模型组合管理成本高。
根据项目说明,9Router 支持 40+ provider 和 100+ 模型,并提供 RTK Token Saver、自动 fallback、额度追踪、多账号轮询、格式转换和请求日志等功能。项目使用 JavaScript 编写,技术栈包括 Node.js、Next.js、React、Tailwind CSS 和 LowDB,许可证为 MIT。
它适合解决什么问题
9Router 最适合的场景,是你同时使用多个 AI 编程工具和多个模型来源。
比如:
- Claude Code 用订阅账号。
- Codex 或 Cursor 需要接自定义 OpenAI endpoint。
- Cline、Continue、RooCode 需要 OpenAI-compatible API。
- 免费 provider 作为日常尝试。
- GLM、MiniMax、Kimi 等便宜 API 作为备用。
- 某些高质量模型只在复杂任务时使用。
没有 9Router 时,这些配置往往分散在不同工具里。每个工具都要单独写 endpoint、API key、模型名和 fallback 策略。9Router 的思路是让工具都访问同一个本地地址,再在路由器里配置 provider、combo 和优先级。
默认本地地址是:
|
|
Dashboard 地址通常是:
|
|
快速安装
如果只是本机使用,可以直接通过 npm 安装:
|
|
启动后,Dashboard 会在本地打开。项目文档中的默认端口是 20128。
如果想从源码运行:
|
|
生产模式可以先构建再启动:
|
|
npm 包当前要求 Node.js >=18.0.0。如果是部署到 VPS 或 Docker,建议按项目 README 配置 JWT_SECRET、INITIAL_PASSWORD、DATA_DIR、API_KEY_SECRET 等环境变量,不要直接暴露默认配置。
接入 AI 编程工具
9Router 对外提供 OpenAI-compatible API,因此大多数支持自定义 OpenAI endpoint 的工具都能接。
常见配置大致如下:
|
|
以 Codex CLI 为例,可以使用环境变量:
|
|
以 Cline、Continue、RooCode 这类工具为例,通常选择 OpenAI Compatible provider,然后填入:
|
|
模型名取决于你在 9Router 中连接了哪些 provider。README 中示例包括 cc/、cx/、gh/、glm/、minimax/、kr/、vertex/ 等前缀。
RTK Token Saver 的意义
AI 编程工具消耗 token 最快的地方,往往不是普通对话,而是工具输出。
例如:
git diffgit statusgrepfindlstree- 日志片段
- 大段文件列表
9Router 内置 RTK Token Saver,会在请求发给模型前压缩这类工具输出。项目说明称,它可以在很多请求中节省 20%-40% input tokens。
这个功能的价值在于:它不要求你更换模型,也不改变上层工具使用习惯,而是在路由层减少无效上下文。对经常让 AI 读 diff、搜代码、看目录结构的人来说,这比单纯换一个更便宜的模型更直接。
不过它不是万能压缩。涉及关键上下文、完整日志或长文件内容时,仍然要留意是否需要保留原始信息。更稳妥的做法是先在本地开发环境里试用,确认回答质量没有明显下降,再把它放到长期工作流里。
自动 fallback 怎么用
9Router 的另一个重点是三层 fallback。你可以把模型按优先级组合起来:
|
|
当第一层额度用完、限流或出错时,9Router 自动切到下一层。这样做的好处是减少手动切换模型的次数,也能避免写代码写到一半突然停住。
一个常见组合可以是:
|
|
如果你追求稳定,可以把付费或订阅模型放前面,把便宜模型作为备用;如果你追求低成本,可以把免费 provider 放前面,把便宜 API 放在后面兜底。
这里要注意:fallback 会影响输出一致性。不同模型的代码风格、推理强度和上下文处理能力不同。对需要严格一致性的任务,比如大型重构、协议实现、数据库迁移,最好固定主模型,只有失败时再手动切换。
免费 provider 要谨慎理解
项目 README 强调 Kiro、OpenCode Free、Vertex 等免费路径,并且提到部分历史免费层已经变化或不再推荐。
这类信息变化很快,使用时要按当时 provider 的官方政策确认:
- 是否真的免费。
- 是否有区域、账号或使用场景限制。
- 是否允许接入第三方工具。
- 是否可能触发封号或限流。
- 免费额度是否有到期时间。
9Router 可以帮你管理路由和 fallback,但不能改变上游 provider 的服务条款。尤其是把个人订阅、OAuth token 或免费额度接给自动化工具时,最好只在自己可控的本机环境里使用,并定期检查账号安全。
本地运行和部署建议
本机使用时,最简单的方式是只监听 localhost。这样 Claude Code、Codex、Cursor、Cline 等本地工具可以访问 9Router,但外部网络不能直接连进来。
如果要部署到 VPS 或局域网服务器,建议至少做到:
- 修改默认登录密码。
- 设置强
JWT_SECRET。 - 设置
API_KEY_SECRET。 - 开启访问控制或反向代理认证。
- 避免把 Dashboard 裸露到公网。
- 对
/v1/*接口启用 Bearer API key。 - 定期备份
DATA_DIR下的配置和用量数据。
Docker 运行时可以参考项目文档,把数据目录挂载出来:
|
|
如果只是个人开发机使用,没有必要一上来就公网部署。先在本地跑通 provider、combo、工具接入和日志,再决定是否迁移到服务器。
适合谁用
9Router 更适合这些用户:
- 同时使用多个 AI 编程工具。
- 同时有订阅、免费额度和付费 API。
- 经常被 provider 限流或额度耗尽打断。
- 想把模型 fallback 做成统一配置。
- 想减少工具输出带来的 token 浪费。
- 愿意自己维护本地代理和 provider 凭据。
如果你只用一个工具、一个模型,而且额度足够,9Router 可能会增加一层不必要的复杂度。它真正有价值的地方,是把“多工具、多模型、多账号、多价格层”的混乱收进一个本地路由层里。
小结
9Router 可以理解为 AI 编程工具的本地网关。它把 Claude Code、Codex、Cursor、Cline 等工具统一接到 http://localhost:20128/v1,再由路由器处理模型选择、格式转换、token 压缩、额度追踪和 fallback。
它适合重度 AI 编程用户,尤其适合已经在多个 provider 之间来回切换的人。最稳妥的使用方式是先本地安装,接入一个常用工具和一个 provider,确认请求、日志、模型名和 fallback 都正常后,再逐步增加账号和模型组合。
如果你只是想省心,单一官方客户端仍然更简单。
如果你想把 AI 编程工具变成一套可配置、可切换、可兜底的工作流,9Router 值得试试。