kRouter - Kodelyth AI基础设施
通用AI路由器,可节省20-40%的输入令牌,并在提供商出现故障时退回。
连接Claude Code, Cursor, Antigravity, Kiro, Copilot, Codex, OpenCode, Cline, OpenClaw和任何openai兼容的客户端到 95+人工智能提供商,100+模型 通过一个自托管端点。明智的路线。立刻后退。自动保存令牌。
你正在npm上观看这个视频。 完整的文档、截图和更新日志: github.com/sifxprime/krouter.
快速入门
需要 Node.js 20.9或更新版本.
# Install globally from npm
npm install -g @sifxprime/krouter
# Run in background (tray mode)
krouter -t
仪表盘在 http://localhost:20128/dashboard -在浏览器中打开它,或从托盘图标。
第一次登录: dashboard默认密码为 123456. 在下面更改 设置→安全 一旦你进去了。
为了安全起见,默认设置只适用于运行kRouter的机器——从其他设备登录
在你设置自己的网络之前,你的网络将被拒绝。在Docker下包含你自己的浏览器,所以
集 INITIAL_PASSWORD 如下所示。
喜欢前景?运行 krouter 无旗,加 -l 查看服务器日志。
CLI选项
krouter --help
Options:
-p, --port <port> Port to run the server (default: 20128)
-H, --host <host> Host to bind (default: 0.0.0.0)
-l, --log Show server logs (default: hidden)
-t, --tray Run in system tray mode (background)
--skip-update Skip auto-update check
-h, --help Show this help message
-v, --version Show version
默认主机 0.0.0.0 使kRouter可从您的网络访问;远程调用者仍然需要API密钥
用于 /v1/* 以及仪表盘的登录信息。使用 --host 127.0.0.1 让它只适用于本地。这个 krouter
命令忽略 PORT 和 HOSTNAME 环境变量,因此用这些标志设置端口和主机。
来源(贡献者)
git clone https://github.com/sifxprime/krouter.git
cd krouter
npm install
npm run dev
码头工人
KROUTER_PASSWORD="$(openssl rand -base64 18)" && echo "Dashboard password: $KROUTER_PASSWORD"
docker run -d \
-p 20128:20128 \
-e INITIAL_PASSWORD="${KROUTER_PASSWORD:?run the line above first}" \
-v "$HOME/.krouter:/app/data" \
--name krouter \
sifxprime/krouter:latest
第一行生成一个随机密码并打印出来。用它登录,然后在下面设置你自己的
设置→安全;在你知道之前,密码是什么都行 INITIAL_PASSWORD 容器从。
在Docker中是默认的 123456 被拒绝,因为浏览器的请求到达了容器
从外面。如果 ~/.krouter 已经持有来自NPM安装的密码,使用该密码。
忘记了吗?图像为0.5.162或更新版本: docker exec krouter node scripts/reset-password.js (见
DOCKER.md)。
附有PII修订(Presidio)
在向AI提供商发送请求之前启用自动PII编辑。Compose构建kRouter
sidecar来自源代码,所以它是从克隆运行的。 KROUTER_INITIAL_PASSWORD 没有默认值
没有它,Compose拒绝启动。第二行保存一个随机的 .env,其中撰写
每次启动时读取它,并打印出来:这就是你的仪表盘密码。
git clone https://github.com/sifxprime/krouter.git && cd krouter
echo "KROUTER_INITIAL_PASSWORD='$(openssl rand -base64 18)'" > .env && cat .env
docker compose up -d
不使用Docker?kRouter没有Python依赖——单独运行sidecar。kRouter会查找它
在 http://127.0.0.1:5001/redact;集 SIDECAR_URL 如果它在其他地方运行。请参阅下面的安装指南。
修订是 默认关闭;从 要塞 页中的仪表板侧栏。
看到 文档/ REDACTION_SETUP.md 获取完整的配置和自定义选项。
然后打开 http://localhost:20128/dashboard.
为什么kRouter ?
停止浪费金钱、代币和达到极限:
- 订阅配额每月到期未使用
- 速率限制阻止你中途编码
- 工具输出(git diff, grep, ls…)快速刻录令牌
- 分别为每个提供商的API付费会累积起来
- 手动切换提供商
kRouter解决了这个问题:
- RTK令牌保护程序 -默认为开启;压缩工具输出以节省每个请求20-40%的输入令牌
- 天顶路由 —根据成功率、延迟时间和剩余配额对每个帐户进行评分,并跳过正在冷却的帐户
- Multi-account旋转 -跨帐户循环,并为报告它的提供商提供配额跟踪
- 自动令牌刷新 - OAuth令牌刷新透明
- 通用客户端支持 -与OpenAI, Anthropic, Responses, Gemini和olama格式客户端一起工作
- MITM拦截 -通过kRouter路由Antigravity, GitHub Copilot, Kiro IDE和Claude Desktop(不在Docker内)
它是如何工作的
┌─────────────┐
│ Your CLI │ (Claude Code, Codex, OpenClaw, OpenCode, Cline…)
│ Tool │
└──────┬──────┘
│ http://localhost:20128/v1
↓
┌─────────────────────────────────────────────┐
│ kRouter (Smart Router) │
│ • RTK Token Saver (cut tool_result tokens) │
│ • Zenith account scoring │
│ • Format translation (OpenAI ↔ Claude) │
│ • Live quota tracking │
│ • Auto token refresh │
└──────┬──────────────────────────────────────┘
│
├─→ [SUBSCRIPTION] Claude Code · Codex · Copilot · Cursor
│
├─→ [FREE TIER] Cloudflare · Vertex · Gemini · Ollama Cloud · OpenRouter
│
└─→ [FREE] Kiro · Gemini CLI · Qoder · OpenCode Free · MiMo Code Free
如果一个帐户失败或达到速率限制,kRouter就会转移到该提供商的下一个帐户。将来自多个提供商的模型组合在一起,然后依次返回到它们之间——无需人工干预。
PII修订与Presidio
可选的, 默认关闭。启用后,kRouter会删除个人数据——姓名、电子邮件、电话
数字,API密钥-来自提示 之前 他们离开你的机器,使用Microsoft Presidio作为本地
sidecar(需要Docker或Python)。它 未封闭的:如果侧车宕机、超时或出错,
请求被拒绝(503 / 502),而不是未经编辑的发送。它包括聊天,消息,
响应、Ollama和双子座格式路由;嵌入,音频,图像,搜索和获取不编辑。
设置、配置、自定义模式、测试和故障排除: 文档/ REDACTION_SETUP.md.
功能
| 特征 | 它的作用 | 为什么重要? |
|---|---|---|
| RTK令牌保护程序 | 压缩请求中的工具输出(git diff, grep, ls, tree…)。默认开启 | 保存 20-40%输入令牌 在携带工具输出的请求上 |
| 天顶路由 | 根据成功率、延迟、剩余配额和优先级进行评分 | 选择最健康的客户;利率受限的账户会冷却,而不是重试 |
| 聪明的回退 | 你所创造的组合,例如订阅→免费层→免费 | 永远不要停止编码 |
| 实时的配额 | 剩余%、重置倒计时、报告配额的提供程序的耗尽标记 | 最大化每个订阅 |
| 格式转换 | open↔Claude↔Gemini↔Cursor↔Kiro↔Vertex | 可与任何CLI工具一起使用 |
| Multi-Account | 每个提供者有多个帐户,并使用轮换策略 | 负载均衡+冗余 |
| 自动令牌刷新 | OAuth令牌自动刷新 | 无需手动重新登录 |
| 自定义组合 | 带有回退、循环或融合策略的命名模型组合 | 根据您的工作流程定制回退 |
| 系统托盘 | 静静地运行在后台与托盘图标 | 设置并遗忘部署 |
| 部署在任何地方 | Localhost·VPS·Docker·PM2,通过Cloudflare Tunnel或Tailscale远程访问 | 你需要的任何地方 |
| PII修订 | 可选,默认关闭:使用Microsoft Presidio编辑姓名,电子邮件,电话和API密钥 | 在发送给人工智能提供商之前保护隐私 |
完整功能指南→ krouter.kodelyth.com
支持的CLI工具
![]() 克劳德代码 |
![]() OpenClaw |
![]() 食典委 |
![]() OpenCode |
![]() 光标 |
![]() 反重力 |
![]() 克莱因 |
![]() 继续 |
![]() 机器人 |
![]() Roo |
![]() 副驾驶员 |
![]() 公斤的代码 |
支持供应商
五组95+提供商,加上您自己添加的任何OpenAI或anthropic兼容端点。
OAuth(自带订阅)
Claude Code·反重力·Codex·GitHub Copilot·Cursor·xAI·Kilo Code·Cline·ClinePass·Grok CLI·Kimchi
免费套餐(带API密钥)
Cloudflare Workers AI·Vertex AI·Gemini·Ollama Cloud·OpenRouter·BytePlus ModelArk·Atomesus·NVIDIA NIM·Poolside
免费(账号登录或无授权)
Kiro AI·Gemini CLI·CodeBuddy CN·Qoder·OpenCode Free·MiMo Code Free
Kiro、Gemini CLI、Qoder、Claude Code、Antigravity、Codex和GitHub Copilot使用未获得代理使用许可的订阅会话。在您连接它们之前,仪表板会警告:该帐户可能被限制或禁止。
API密钥提供者(65岁以上)
OpenAI·Anthropic·GLM·Kimi·MiniMax·DeepSeek·Groq·xAI·Mistral·Perplexity·Together AI·Fireworks·Cerebras·Cohere·SiliconFlow·Hyperbolic·Nebius·Chutes·以及其他45多个
浏览器会话
Grok Web·Perplexity Web (Pro/Max)
完整的提供商设置指南→ krouter.kodelyth.com
安装指南
1 .安装
npm install -g @sifxprime/krouter
·在后台启动
krouter -t
您将在菜单栏中看到一个托盘图标。右击, 打开仪表板 或者 辞职.
步骤3·添加提供商
- 开放 http://localhost:20128/dashboard
- 去 供应商,选择一个(Cloudflare Workers AI是一个很好的免费开始),然后点击 添加
- 粘贴您的API密钥或完成OAuth登录
- 点击 测试 在一个模型上检查它的答案
·将你的AI工具指向kRouter
Endpoint: http://localhost:20128/v1
API Key: a key from Dashboard → Endpoint → API Keys (local callers can skip it)
Model: kr/claude-sonnet-4.5 (or any provider/model)
适用于任何openai兼容的客户端。一个 默认的关键 在您第一次打开
端点页面。本地请求不需要密钥,除非 REQUIRE_API_KEY=true;来自其他机器的请求
总是这样。的例外 localhost:它通过自己的服务器发送请求,所以turn
在 隧道 并使用带密钥的URL。
详细的集成指南(Claude Code, Cursor, Cline等)→ krouter.kodelyth.com
环境变量
| 变量 | 默认的 | 描述 |
|---|---|---|
PORT | 20128 | Docker镜像的服务器端口 node custom-server.js。这个 krouter 命令忽略它-使用 --port |
HOSTNAME | 0.0.0.0 | 为Docker镜像绑定host node custom-server.js。这个 krouter 命令忽略它-使用 --host 127.0.0.1 为只 |
DATA_DIR | ~/.krouter | 数据目录(SQLite,证书,缓存)。 %APPDATA%\krouter 在Windows上 |
INITIAL_PASSWORD | - - - - - - | 首次登录仪表板的密码。它是不固定的 123456,只能从同一台机器接收 |
NODE_ENV | production | 运行时模式 |
REQUIRE_API_KEY | false | 需要一个不记名密钥 /v1/* 从 每一个 调用者。远程调用者总是需要一个;这还删除了共享或多用户机器的环回豁免 |
KROUTER_SKIP_RUNTIME_HEAL | false | 跳过启动npm自修复SQLite/tray运行时(气隙机或CI机) |
AUTH_COOKIE_SECURE | false | 力 Secure cookie(设置在HTTPS反向代理之后) |
HTTP_PROXY / HTTPS_PROXY / ALL_PROXY / NO_PROXY | - - - - - - | 出站代理配置 |
完整的环境参考→ krouter.kodelyth.com
部署
VPS
npm install -g @sifxprime/krouter
krouter --skip-update --host 127.0.0.1 --port 20128
把Nginx或Caddy放在HTTPS的前面; --host 127.0.0.1 保持港口关闭,除了
代理。或者跳过代理,从Endpoint页面使用内置的Cloudflare Tunnel或Tailscale。
码头工人
KROUTER_PASSWORD="$(openssl rand -base64 18)" && echo "Dashboard password: $KROUTER_PASSWORD"
docker run -d -p 20128:20128 -e INITIAL_PASSWORD="${KROUTER_PASSWORD:?run the line above first}" -v "$HOME/.krouter:/app/data" --name krouter sifxprime/krouter:latest
PM2
npm install -g @sifxprime/krouter pm2
pm2 start krouter --name krouter -- --skip-update
pm2 save
pm2 startup
API
完成聊天
POST http://localhost:20128/v1/chat/completions
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"model": "kr/claude-sonnet-4.5",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}
列表模式
GET http://localhost:20128/v1/models
Authorization: Bearer <your-api-key>
以OpenAI格式返回每个配置的提供商+自定义组合。
卸载
# Stop kRouter (right-click tray → Quit, or pkill -f krouter)
npm uninstall -g @sifxprime/krouter
rm -rf ~/.krouter # optional: wipe database + certs
故障排除
“提供者没有活动凭据” -在仪表板→提供商中添加或重新连接提供商。
速度有限 - kRouter冷却帐户并移动到下一个帐户。为了加快速度,可以添加更多的帐户或配置一个组合。
MITM证书错误 —安装或重新安装根CA MITM 页在仪表板侧栏(安装证书 / 重新安装证书)。
仪表盘端口错误 - - - krouter 命令忽略了 PORT;将端口作为标志传递: krouter -t --port 20128。如果另一个程序占用端口,kRouter不会停止它并建议另一个。
完整的故障排除指南→ krouter.kodelyth.com
技术堆栈
- 运行时: node . js 20.9 +
- 框架: Next.js 16
- 界面: React 19 +顺风CSS
- 数据库: SQLite(更好的sqlite3 / node: SQLite / sql.js)
- 流媒体: 服务器发送事件(SSE)
- 身份验证: OAuth 2.0 (PKCE) + JWT + API密钥
链接
- 网站: krouter.kodelyth.com
- GitHub: github.com/sifxprime/krouter
- 问题: github.com/sifxprime/krouter/issues
- npm:
@sifxprime/krouter - 支持: [email protected] · WhatsApp
学分
kRouter是upstream的一个硬分叉 decolua / 9路由器。非常感谢 @decolua 以及最初项目的9router贡献者。把它们放在GitHub上。
许可证
MIT许可证-参见 许可证 获取详细信息。











