9Router:把 Claude Code、Codex、Cursor 接到同一个 AI 路由器

整理 9Router 的定位、核心功能、安装方式和适用场景:它可以把 Claude Code、Codex、Cursor、Cline 等工具接入同一个本地 AI 路由器,并提供 token 压缩、模型 fallback 和多账号路由。

9Router 是一个面向 AI 编程工具的本地路由器。它把 Claude Code、Codex、Cursor、Cline、Copilot、OpenCode、OpenClaw 等工具统一接到一个 OpenAI-compatible endpoint,再由 9Router 负责转发到不同模型和服务商。

它的目标不是再做一个聊天客户端,而是放在 AI 编程工具和模型服务之间,解决几个实际问题:

  • 不同工具的 API 格式不一致。
  • 订阅额度、免费额度和便宜 API 需要手动切换。
  • git diffgreplstree 等工具输出会快速消耗 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 和优先级。

默认本地地址是:

1
http://localhost:20128/v1

Dashboard 地址通常是:

1
http://localhost:20128/dashboard

快速安装

如果只是本机使用,可以直接通过 npm 安装:

1
2
npm install -g 9router
9router

启动后,Dashboard 会在本地打开。项目文档中的默认端口是 20128

如果想从源码运行:

1
2
3
4
5
git clone https://github.com/decolua/9router.git
cd 9router
cp .env.example .env
npm install
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev

生产模式可以先构建再启动:

1
2
npm run build
PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start

npm 包当前要求 Node.js >=18.0.0。如果是部署到 VPS 或 Docker,建议按项目 README 配置 JWT_SECRETINITIAL_PASSWORDDATA_DIRAPI_KEY_SECRET 等环境变量,不要直接暴露默认配置。

接入 AI 编程工具

9Router 对外提供 OpenAI-compatible API,因此大多数支持自定义 OpenAI endpoint 的工具都能接。

常见配置大致如下:

1
2
3
Base URL: http://localhost:20128/v1
API Key: 从 9Router Dashboard 复制
Model: 在 9Router 中配置的模型名或 combo 名

以 Codex CLI 为例,可以使用环境变量:

1
2
3
4
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-9router-api-key"

codex "your prompt"

以 Cline、Continue、RooCode 这类工具为例,通常选择 OpenAI Compatible provider,然后填入:

1
2
3
Base URL: http://localhost:20128/v1
API Key: your-9router-api-key
Model: cc/claude-opus-4-7

模型名取决于你在 9Router 中连接了哪些 provider。README 中示例包括 cc/cx/gh/glm/minimax/kr/vertex/ 等前缀。

RTK Token Saver 的意义

AI 编程工具消耗 token 最快的地方,往往不是普通对话,而是工具输出。

例如:

  • git diff
  • git status
  • grep
  • find
  • ls
  • tree
  • 日志片段
  • 大段文件列表

9Router 内置 RTK Token Saver,会在请求发给模型前压缩这类工具输出。项目说明称,它可以在很多请求中节省 20%-40% input tokens。

这个功能的价值在于:它不要求你更换模型,也不改变上层工具使用习惯,而是在路由层减少无效上下文。对经常让 AI 读 diff、搜代码、看目录结构的人来说,这比单纯换一个更便宜的模型更直接。

不过它不是万能压缩。涉及关键上下文、完整日志或长文件内容时,仍然要留意是否需要保留原始信息。更稳妥的做法是先在本地开发环境里试用,确认回答质量没有明显下降,再把它放到长期工作流里。

自动 fallback 怎么用

9Router 的另一个重点是三层 fallback。你可以把模型按优先级组合起来:

1
2
3
1. 订阅模型
2. 便宜 API
3. 免费 provider

当第一层额度用完、限流或出错时,9Router 自动切到下一层。这样做的好处是减少手动切换模型的次数,也能避免写代码写到一半突然停住。

一个常见组合可以是:

1
2
3
1. cc/claude-opus-4-7
2. glm/glm-5.1
3. kr/claude-sonnet-4.5

如果你追求稳定,可以把付费或订阅模型放前面,把便宜模型作为备用;如果你追求低成本,可以把免费 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 运行时可以参考项目文档,把数据目录挂载出来:

1
2
3
4
5
6
7
docker run -d \
  --name 9router \
  -p 20128:20128 \
  --env-file ./.env \
  -v 9router-data:/app/data \
  -v 9router-usage:/root/.9router \
  9router

如果只是个人开发机使用,没有必要一上来就公网部署。先在本地跑通 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 值得试试。

参考资料

记录并分享
使用 Hugo 构建
主题 StackJimmy 设计