你有没有遇到过这种场景:Claude Code额度用完了,切Cursor又得重新配;订阅了3个AI编程工具,每月浪费一半额度;写到一半被rate limit打断,心态直接崩了?
今天介绍一个刚在GitHub拿到 5.1k Stars 的开源神器 —— 9Router,一个面向AI编程工具的本地智能路由器。它能把你手头的Claude Code、Cursor、Codex、Cline、Copilot等工具统一接到一个本地网关,自动在订阅→低价API→免费模型之间切换,还能压缩Token省下20%-40%的花费。
一句话总结:装了9Router,AI编程永不停歇。
🔧 9Router是什么
9Router是一个本地AI模型路由网关,部署在你自己的电脑上,位于AI编程工具和模型服务之间。它对外暴露一个OpenAI兼容的API端点(http://localhost:20128/v1),所有支持自定义endpoint的AI编程工具都可以接入。
核心定位:
✅ 不是聊天客户端(它不直接跟AI对话) ✅ 是本地代理网关(统一管理和调度你的所有AI编程工具) ✅ 解决「多工具多模型多账号」的管理混乱问题
项目信息:
🎯 三大核心能力
1️⃣ 统一接入:一把钥匙开所有门
9Router最直接的价值:所有AI编程工具只需配一次。
已适配工具清单:
原则上,任何支持自定义OpenAI Endpoint的工具都能接入。配置方式统一为:
Base URL: http://localhost:20128/v1API Key: [从9Router Dashboard复制]Model: [你配置的模型ID或Combo名]Claude Code配置示例:编辑 ~/.claude/config.json:
{"anthropic_api_base": "http://localhost:20128/v1","anthropic_api_key": "sk_9router_xxxxxxxx"}Codex CLI配置示例:
export OPENAI_BASE_URL="http://localhost:20128"export OPENAI_API_KEY="sk_9router_xxxxxxxx"OpenClaw配置示例:
{"models": {"providers": {"9router": {"baseUrl": "http://127.0.0.1:20128/v1","apiKey": "sk_9router","api": "openai-completions","models": [{"id": "kr/claude-sonnet-4.5", "name": "Claude 4.5 Free"}] } } }}2️⃣ 三层智能Fallback:编程永不停歇
这是9Router最硬核的功能。你可以创建一个Combo(模型组合),设定优先级:
第1层:订阅模型(高质量,有限额) ↓ 额度用完/限流/出错,自动切换第2层:低价API(中质量,低成本) ↓ 再出问题,继续切换第3层:免费Provider(兜底保底)两种常用策略:
💰 省钱组合(几乎零成本):
kr/claude-sonnet-4.5 → Kiro免费Claude 4.5kr/glm-5 → Kiro免费GLM-5vertex/gemini-3.1-pro → Vertex $300免费额度glm/glm-5.1 → 最后才走付费,仅$0.6/1M Token🚀 订阅优先组合(不浪费订阅费):
cc/claude-opus-4-7 → Claude Pro订阅(最高优先)cc/claude-sonnet-4-6 → 订阅内降级glm/glm-5.1 → 订阅用完走付费APIminimax/MiniMax-M2.5 → 最便宜兜底,$0.2/1M Token当当前Provider返回429/配额耗尽时,9Router自动标记cooldown并切换到下一个,cooldown时间从60秒到1小时不等。
⚠️ 注意: 切换模型后输出风格可能变化(不同模型的代码风格不同),大型重构建议固定主模型,仅失败时手动切换。
3️⃣ Token压缩:20%-40%白省
AI编程工具消耗Token最快的不是你的对话,而是工具输出——git diff、grep、ls、tree这些命令的结果往往占了上下文的大头。
RTK Token Saver(输入压缩):
在请求发给模型之前,在路由层压缩 tool_result支持10+种工具输出场景:git-diff、git-status、grep、find、ls、tree、dedup-log、smart-truncate等 实测效果:节省20%-40%输入Token 如果压缩失败或反而变大,RTK会静默保留原文,不会中断请求
Caveman Mode(输出压缩):
注入特殊提示词让模型输出更简短直接 最高可减少65%输出Token ⚠️ 仅适合纯chat场景,编程Agent场景不要开(会导致Claude Code无法返回tool call)
📦 安装部署(3种方式)
方式1:npm全局安装(最快捷)
npm install -g 9router9router访问 http://localhost:20128 看到登录页即成功。
方式2:源码运行
git clone https://github.com/decolua/9router.gitcd 9routercp .env.example .envnpm installPORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev方式3:Docker部署(推荐,不污染本机环境)
docker build -t 9router .docker run -d \ --name 9router \ -p 20128:20128 \ --env-file .env \ -v 9router-data:/app/data \ -v 9router-usage:/root/.9router \ 9router装完必做:
🔐 默认密码是 123456,第一时间改密码🔐 更换默认 JWT_SECRET🔑 Dashboard → API Keys → 生成API Key( sk_9router_xxx格式)
🛠️ 5分钟完整配置流程
Step 1:添加Provider
Dashboard → 提供商 → 添加你的模型账号:
Step 2:创建Combo策略
Dashboard → Combo → 创建模型组合,按优先级排列模型。
Step 3:接入AI编程工具
在Claude Code / Cursor / Cline等工具中配置:
Endpoint: http://localhost:20128/v1API Key: sk_9router_xxxxxxxxModel: kr/claude-sonnet-4.5(或Combo名)Step 4:开启RTK Token压缩
Dashboard → Endpoint Settings → 打开RTK开关,无额外配置。
Step 5:开始写代码
正常使用你的AI编程工具即可,9Router在后台自动处理路由和压缩。
⚠️ 踩坑指南(实测汇总)
HOSTNAME=0.0.0.0 | ||
CLOUD_URL设为空字符串 |
👥 适合谁用 / 不适合谁用
✅ 适合你,如果:
同时用3个以上AI编程工具 有多个订阅(Claude Pro + Cursor + Copilot)但额度用不完 经常被rate limit打断工作流 想把免费模型(Kiro、Vertex)接入编程工具 有多个账号想统一管理
❌ 不适合你,如果:
只用一个工具一个模型,且额度够用 不想增加额外复杂度 需要团队级管理(选LiteLLM或One API) 金融/医疗等严格合规环境
📊 与同类工具对比
9Router的独特优势在于:OAuth原生支持(直接用Claude Code订阅) + Token压缩 + 个人本地部署的简洁性。如果你是个人开发者,它比LiteLLM和One API轻量得多。
💡 总结
9Router解决的核心问题是:AI编程工具越来越多,模型越来越分散,但你的管理方式还停留在手动一个一个配。
三个关键价值:
统一接入 — 所有工具一个端点,配一次就行 智能切换 — 订阅→低价→免费,额度用完自动切换不中断 Token省钱 — RTK压缩白省20%-40%,Caveman模式最高省65%
如果你同时用Claude Code、Cursor、Codex中的任意两个以上,9Router几乎是必装工具。
夜雨聆风