10Router 是 9Router 的精简优化版本。在上游 v0.5.55 基础上合并了若干本地验证过的修复,排除未完成的实验性功能,保持干净的 git 历史便于持续同步上游。
┌─────────────┐
│ Your CLI │ Claude Code · Codex · Cursor · Cline · OpenCode ...
│ Tool │
└──────┬──────┘
│ http://localhost:20128/v1
↓
┌─────────────────────────────────────────┐
│ 10Router (Smart Router) │
│ • RTK Token Saver (cut tool_result) │
│ • Format translation (OpenAI ↔ Claude) │
│ • Quota tracking │
│ • Auto fallback & token refresh │
│ • Regional currency display │
└──────────┬──────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 40+ Providers · 100+ Models │
│ Free ──→ Cheap ──→ Subscription │
└──────────────────────────────────────────┘
| 修复 | 文件 | 说明 |
|---|---|---|
| 无连接不暴露内置模型 | api/v1/models/route.js |
DB 正常但无连接时,不 dump 全量 ~680 built-in catalog,避免淹没客户端 |
| Claude 轮询加速 | usage/components/ProviderLimits/utils.js |
quota 轮询间隔 10min → 3min,配额变化感知更快 |
| 移除 groupByProviderStable | usage/components/ProviderLimits/utils.js |
恢复自然排序,不强制按 provider 聚合 |
| MiMo Free topology 默认可见 | mimo-free.js |
usage topology 上默认展示(可 toggle 隐藏),不再只有一个大 OpenCode 图标 |
| 多币种本地化显示 | shared/utils/currency.js |
CNY ¥ / TWD NT$ / JPY ¥ / KRW ₩ / VND ₫,Profile 页可切换 |
| 配额按 connection 隔离 | usage/components/ProviderLimits/utils.js |
多账号场景下每个 connection 独立计算配额,互不干扰 |
| arm64 Docker 支持 | docker-publish.yml |
镜像同时构建 linux/amd64 + linux/arm64,支持树莓派等 ARM 设备 |
- 货币本地化(¥/NT$/₩/₫)— 上游 v0.5.50+
- 配额包按 connection 独立 — 上游 v0.5.50+
- 拓扑 toggle — 上游 v0.5.50+
- Cloudflare 修复 — 上游 v0.5.50+
git clone https://github.com/techysy/10router.git
cd 10router
cp .env.example .env
npm install
PORT=20128 npm run dev # 开发模式生产部署:
npm run build
PORT=20128 HOSTNAME=0.0.0.0 npm run start- Dashboard:
http://localhost:20128/dashboard - API endpoint:
http://localhost:20128/v1 - 初始密码:
123456(登录后请修改)
docker pull ghcr.io/techysy/10router:latest
docker run -d \
--name 10router \
-p 20128:20128 \
-v ~/.9router:/root/.9router \
ghcr.io/techysy/10router:latest支持 linux/amd64 和 linux/arm64。
本项目 git 历史已重写(仅保留 techysy/ShiYanG Yu 的提交),同步上游时请用 cherry-pick 避免把上游历史带回来:
# 添加上游 remote
git remote add upstream https://github.com/decolua/9router.git
git fetch upstream
# cherry-pick 需要的提交
git cherry-pick <commit-hash>
# 或下载上游最新 tarball 覆盖文件后手动解决冲突
curl -L https://github.com/decolua/9router/archive/refs/heads/master.tar.gz \
| tar xz --strip-components=1
git add -A && git commit -m "chore: sync upstream v0.5.xx"10router/
├── src/ # Next.js app + Dashboard
│ ├── app/ # 路由 + API
│ ├── lib/ # DB / Auth / Usage
│ └── shared/ # 组件 / 工具函数
├── open-sse/ # 路由/翻译引擎(可独立使用)
│ ├── executors/ # 每个 provider 的执行器
│ ├── translator/ # 格式翻译(OpenAI ↔ Claude)
│ ├── providers/ # Provider 注册 + 配置
│ └── rtk/ # Token Saver 压缩引擎
├── cli/ # CLI launcher(npm: 9router)
├── tests/ # 测试(vitest)
├── docs/ # 架构文档
└── .github/workflows/ # CI(Docker GHCR 构建)
- techysy — 主要维护者
- shiyangyuda — 代码优化
- monkey2jack — arm64 Docker 支持
MIT — 与 decolua/9router 一致
