如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
手动叠加免费额度非常麻烦——数十个SDK、数十个速率限制,而且完全不清楚实际拥有多少额度。OmniRoute 收录了40个循环池密钥中的455个免费额度条目,并从20个已公布正月度预算的池中计算出token总量(按共享池去重)。结果可在仪表板(
/dashboard/free-tiers)上查看。
实时
/dashboard/free-tiers页面的动态摘要。完整方法(池去重、信用额度层级、提供商条款):docs/reference/FREE_TIERS.md。
这些数据每两周根据实时目录重新审核,并且双向变动——若提供商终止免费额度,数值会下降;若新增免费额度,数值会上升。我们发布的是目录实际计算结果,绝非向上取整的最佳情况。
⭐ 如果 OMNIROUTE 帮你节省了成本并简化了工作,请为仓库点亮星标。
👋 关注维护者 — 抢先获取新提供商、版本发布和使用技巧:
| v3.8.49 | v3.8.50 | v3.8.51+ | |
|---|---|---|---|
| 🌐 提供商 | 290 | 352 | 更多待加入 |
| 🧠 唯一聊天模型ID | 1185 | 1312 | — |
| 🖼️ 模态桥接 | — | 🆕 视觉+音频+视频 | — |
| 📡 Radar免费目录 | — | 🆕 可选启用 | — |
| ⚖️ 配额感知调度 | — | 🆕 Quota-Share | — |
| 📊 配额遥测 | — | 🆕 实时 | — |
→ 路线图 — 迈向 v3.9.0 LTS
🚀 Start
🚀 Quick Start
📦 Install
🆓 Zero-config
💡 Learn
💥 The Promise
🤔 Why OmniRoute
🏆 What Sets Apart
⚙️ Features
🎯 Combos
🌐 Providers
🔌 CLI & MCP
🗜️ Compression
🖥️ Where It Runs
🔒 Private
👀 See it
🎬 In Action
✨ What's New
🤖 Compatible CLIs
💚 Support
💚 Support / Donate
💬 Community
💖 ***
📦 Project
🛠️ Tech Stack
📖 Docs
👥 Contributors
🌐 支持43种语言
# 全新安装,零凭证 — `auto` 已可直接使用:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
偏好特定的免费后端?可直接调用,例如 oc/…(OpenCode Free)或 felo/…(Felo)。之后可升级使用 auto,让 OmniRoute 自动选择。
📦 复制粘贴适用于 Python、Node.js、PHP 和 cURL 的快速启动脚本 → examples/quickstart/
想成为开源伙伴吗? 这些公司支持开源并助力 OmniRoute 发展——我们会公开说明他们提供的每一个 token 的用途。联系我们:***
Kimi Moonshot AI
感谢 Kimi(Moonshot AI)作为我们的创始开源伙伴对本项目的支持!Kimi 是开源权重模型系列 K2 和 K3 的背后 AI 实验室——Kimi K3 提供 100 万 token 上下文窗口、原生视觉能力和前沿级编码能力,价格仅为闭源模型的一小部分,并且可与 Claude Code、Codex 以及 OmniRoute 支持的所有编码工具开箱即用。
Kimi 支持的用途:Kimi 的 API credits 为 OmniRoute 的 AI 验证发布流程提供支持——由 Kimi K3 驱动的合并验证阶段会在每个拉取请求发布前进行审核——此外还支持日常功能开发。OmniRoute 提供一流的 Kimi 支持,包括两条路径:直接 Kimi API(kimi-k3)和 Kimi Code 编码计划(OAuth 和 API 密钥)。OmniRoute 也是 Kimi 支持计划中的首个巴西开源项目。获取 Kimi API 密钥,额外获得 15% credits →
Cheaper Inference cheaperinference.com
感谢 Cheaper Inference 作为 OmniRoute 开源伙伴对本项目的支持!Cheaper Inference 是一个按成本排序的网关,通过一个 OpenAI 兼容端点转售 42 个前沿模型——Claude、GPT-5.x、Gemini、Kimi K3、GLM、DeepSeek、Grok 和 MiniMax——将每个请求路由到最便宜的合格提供商,且收费从不高于模型制造商的标价。
OmniRoute 中的一流支持:聊天补全、原生 /v1/responses 端点、视觉能力、工具调用以及 3 个图像模型(grok-imagine、nano-banana-pro、nano-banana-2,可通过 cheaperinference/<model> 访问)。获取 API 密钥 →
标记为 aff=omniroute 的链接是合作伙伴链接。它们为项目提供资金,且不会给你带来额外成本。
🎟️ 联盟推广 — 非赞助提供商的免费注册优惠券(点击展开)
本部分仅包含推荐/优惠券代码。赞助合作信息位于上方的 🤝 由开源伙伴支持部分。OmniRoute 与此处列出的提供商无赞助或合作关系——这些是任何人都可使用的公开优惠券。
AgentRouter agentrouter.org
AgentRouter — 联盟注册 · 注册即送 $100 免费 credits(免费服务器,延迟较高——最适合测试,不建议生产环境使用)。自 v3.8.50 起,OmniRoute 提供一流支持:聊天补全、Anthropic 兼容有线格式和 OpenAI 兼容路径。可用模型包括 claude-opus-4-8、claude-opus-5、gpt-5.6-sol 等。领取你的 $100 →
[!WARNING] 联盟链接 — OmniRoute 与该提供商无赞助或合作关系。
知道其他为 OmniRoute 用户提供慷慨免费注册优惠券的提供商吗?提交 issue,我们会将其添加到此处。
组合路由(combo) 是 OmniRoute 自动跨多个模型进行路由的链。若配额用尽、提供商故障或成本飙升,组合路由可切换到下一个符合条件的健康模型。🛡️
auto无需创建组合路由。将模型设置为 auto(或其变体),OmniRoute 会从已连接的提供商中动态构建虚拟组合路由并实时评分:
| Model ID | 优化目标 |
|---|---|
| auto | 🎯 平衡默认值(LKGP — 坚持使用上次成功的提供商) |
| auto/coding | 🧑💻 代码生成的质量优先权重 |
| auto/fast | ⚡ 最低延迟优先 |
| auto/cheap | 💰 每 token 成本最低优先 |
| auto/offline | 🔋 剩余配额/速率限制空间最大优先 |
| auto/smart | 🔭 质量优先 + 10% 探索以发现更优模型 |
全部 19 种策略 — 可按组合路由步骤混合搭配:
| # | 策略 | 功能描述 |
|---|---|---|
| 1 | priority | 优先目标有序列表 — 耗尽一个再切换到下一个 🥇 |
| 2 | fill-first | 完全填满每个目标的配额后再切换 |
| 3 | weighted | 按目标权重随机选择 |
| 4 | round-robin | 按顺序循环切换目标 |
| 5 | p2c | 二选一随机负载均衡 |
| 6 | least-used | 选择当前负载最低的目标 |
| 7 | random | 均匀随机选择(去重) |
| 8 | strict-random | 随机选择(允许重复)🎲 |
| 9 | cost-optimized | 根据实时目录定价最小化每请求成本 💸 |
| 10 | headroom | 选择剩余配额最多的目标 |
📖 Auto-Combo 引擎 · 韧性指南
只需一个配置 —
http://localhost:20128/v1— 即可让所有 AI IDE 或 CLI 运行在免费及低成本模型上。
Claude Code
Codex CLI
Cline
Kilo Code
Zoo Code
Continue
Aider
ForgeCode
jcode
DeepSeek TUI
CodeWhale
OpenCode
Factory Droid
Copilot CLI
Cursor CLI
Smelt
Pi
Grok Build
Hermes Agent
OpenClaw
Goose
Open Interpreter
Warp AI
Agent Deck
+ 还支持 · Kiro · Command Code · Antigravity · Windsurf · AMP · 任何 OpenAI 兼容工具
📖 所有 35 款工具(26 款 CLI 编码工具 + 9 款 CLI 代理)的逐工具设置 → docs/reference/CLI-TOOLS.md · 🧩 OpenCode 插件 → https://www.npmjs.com/package/@omniroute/opencode-provider
通过 OmniRoute 一键启动任何受支持的 CLI — 无需编写配置文件,按进程注入凭据,Qwen/Gemini 获得临时隔离环境:
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# 或交互式选择提供商+模型并编写工具自身配置:
omniroute configure codex # 也支持:claude opencode qwen aider goose cline continue kilo
除服务器外,OmniRoute 还是一个完整的命令行控制台,包含80 多个命令,并支持开放代理协议,使 AI 代理能够自主控制它。
start)omniroute # 启动网关 + 仪表板(端口 20128)
omniroute chat # 交互式 TUI 聊天客户端(命令前缀:/model /combo /skill /memory)
omniroute setup # 引导式首次运行向导
omniroute doctor # 诊断提供商、端口、原生依赖项
在服务器上部署了 OmniRoute?使用相同的 CLI 从笔记本电脑控制它。使用范围访问令牌登录一次,之后所有命令都将指向远程服务器。
omniroute connect 192.168.0.15 # 密码 → 范围令牌,保存为上下文
omniroute models list # ← 针对远程服务器运行
omniroute configure codex # ← 选择远程模型,写入本地 Codex 配置文件
omniroute tokens create --name ci --scope read # 为其他机器生成更窄范围的令牌
omniroute contexts use default # ← 切换回本地服务器
令牌的范围包括 read / write / admin;进程生成路由仅保留本地回环。📖 远程模式
通过MCP、A2A、REST API、webhooks 或远程 CLI 公开 OmniRoute — 任何有能力的代理(或您自己的代码)都能获得整个网关的控制权:路由、提供商、组合、缓存、压缩、内存 — 完全自主。以下 HTTP 端点在 http://localhost:20128 下提供服务。
默认堆叠组合运行 RTK → Caveman。当两者作用于相同的工具/上下文负载时,节省效果会叠加:
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
代码块、URL、JSON 和结构化数据始终受到保护引擎的保护。
引擎按流水线顺序运行;每个引擎可独立切换,并可按组合进行配置:
| 引擎编号 | 功能 |
|---|---|
| 1 | Session-Dedup |
| 2 | CCR |
| 3 | Lite |
| 4 | RTK |
| 5 | Responses Tool Output |
| 6 | Headroom |
| 7 | Relevance |
| 8 | Caveman |
| 9 | Aggressive |
| 10 | LLMLingua-2 |
| 11 | Ultra |
| 12 | OmniGlyph |
代码块、URL 和结构化数据始终字节级精确保留。一键预设组合了以下引擎:
| 模式 | 节省比例 | 最佳用途 |
|---|---|---|
| 🪶 Lite | ~15% | 始终开启的安全默认值 |
| 🪨 Standard (Caveman) | ~30% | 日常编码 |
| ⚡ Aggressive | ~50% | 长时间工具密集型会话 |
| 🔥 Ultra | ~75% | 最大节省 |
| 🧰 RTK | 60–90% | Shell/测试/构建/git 输出 |
| 🔗 Stacked (RTK → Caveman) | 78–95% | 混合提示 + 工具日志 |
实际示例 — 标准模式:
压缩前(69 令牌): "你的 React 组件重新渲染的原因可能是你在每个渲染周期创建了新的对象引用。当你将内联对象作为 prop 传递时,React 的浅层比较会将其视为每次都是不同的对象,从而触发重新渲染。我建议使用 useMemo 来记忆化该对象。"
压缩后(19 令牌): "每次渲染创建新对象引用。内联对象 prop = 新引用 = 重新渲染。使用 useMemo 包装。"
答案相同。减少 72% 令牌。零精度损失。 ✅
葡萄牙语示例 — https://github.com/leninejunior/troglodita 模式:
压缩前(42 令牌): "O problema é que o componente está re-renderizando porque uma nova referência de objeto está sendo criada em cada ciclo de renderização. Eu recomendaria usar useMemo."
压缩后(12 令牌): "Re-render: ref nova cada ciclo (objeto inline recriado). Usar
useMemo."答案相同。减少约 70% 令牌。技术精度保持完整。 ✅
上述 12 个引擎用于缩减输入内容。另外三层用于塑造输出方式、输出时机和输出内容:
lite/full/ultra 强度。添加样式只需一行注册表项:
zh)。reserve-output(默认,模型感知)· percentage · absolute。模式:floor(保证适配)· replace-autotrigger(显式选择优先)· off(传统阈值)。x-omniroute-compression 头 › 路由组合覆盖 › 活动命名配置文件 › 自适应/自动触发 › 面板默认值 › 关闭。应用的压缩方案会通过 X-OmniRoute-Compression: ; source= 响应头返回。可通过令牌阈值自动触发、启用自适应调节、固定命名配置文件、为单次请求设置一次性配置,或为每个路由组合分配流水线 — 选择最适合工作负载的方式。一个可选的离线评估工具(npm run eval:compression)会在你推广更改前,基于固定语料库对保真度和节省比例进行评分。
📖 COMPRESSION_GUIDE.md · RTK_COMPRESSION.md · COMPRESSION_ENGINES.md
1) 安装并运行
npm install -g omniroute
omniroute
[!NOTE] 看到
npm warn ERESOLVE或 peer-dep 警告?它们无害。
仪表板地址:http://localhost:20128 · API 地址:http://localhost:20128/v1。
2) 连接免费提供商(无需注册)
仪表板 → 提供商 → 连接 Kiro AI(免费 Claude,每个账户每月约 50 credits)或 OpenCode Free(无需认证)→ 完成。
3) 配置你的编码工具
Base URL: http://localhost:20128/v1
API Key: [从仪表板 → 端点复制]
Model: auto(零配置智能路由 — 或任何提供商/模型)
4) 验证是否正常工作
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
你应该会看到已连接的模型列表。🎉 就是这样 — 开始编码吧,OmniRoute 会自动路由并为你提供故障转移。
如果你的客户端无法发送自定义头,OmniRoute 还提供了令牌化的兼容性别名:
OpenAI 目录:http://localhost:20128/vscode/YOUR_KEY/ OpenAI 模型:http://localhost:20128/vscode/YOUR_KEY/models OpenAI 聊天:http://localhost:20128/vscode/YOUR_KEY/chat/completions OpenAI 响应:http://localhost:20128/vscode/YOUR_KEY/responses Ollama 聊天:http://localhost:20128/vscode/YOUR_KEY/api/chat Ollama 标签:http://localhost:20128/vscode/YOUR_KEY/api/tags
仅将这些用于无法附加 Authorization: Bearer ... 的客户端。Header 认证仍是首选方式。
🐳 Docker
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
:latest 遵循已发布的最高稳定 SemVer 版本。它不跟踪 git main 分支。对于 GitOps,请固定使用 :X.Y.Z 版本。参见 Docker 发布通道。镜像固定了 OMNIROUTE_MEMORY_MB=1024,这足以支持控制台和轻量聊天。编码代理(来自 Claude Code、Codex、Grok 等的 POST /v1/responses)需要更大的 V8 堆内存,否则在两个重叠的长上下文下,进程会在约 12 GiB 时出现 FATAL ERROR。容器大小应大于堆内存(原生缓冲区位于 V8 外部):
| 工作负载 | 堆内存(-e OMNIROUTE_MEMORY_MB) | 容器(--memory) |
|---|---|---|
| 控制台 / 轻量聊天 | 1024(镜像默认值) | ≥2 g |
| 单个编码代理 | 8192 | ≥10 g |
两个并发长 /v1/responses | 10240–12288 | ≥12–16 g |
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
完整表格:Docker 指南 — 运行时内存。
[!NOTE] 预发布 Docker 通道:
diegosouzapw/omniroute:next和diegosouzapw/omniroute:next-web跟踪当前默认的release/v*分支。这些可变标签仅用于测试未发布的修复,不支持生产环境。参见 Docker 发布通道。
🥟 Bun
通过 Bun 运行时检测,支持标准的 bun install 和全局安装(bun install -g omniroute):
bun:sqlite:在 Bun 环境下运行时,OmniRoute 使用 Bun 内置的 bun:sqlite 驱动;在 Node.js 环境下回退到 better-sqlite3,或使用 sql.js。bun run dev)和生产构建(bun run build)会自动检测 Bun 并禁用 Turbopack,转而使用 Webpack,以避免原生 V8 绑定不兼容问题。Dockerfile.bun 用于原生 Bun 生产部署(docker build -f Dockerfile.bun -t omniroute:bun .)。# 使用 Bun 安装并运行
bun install
bun run dev
🛠️ 从源码安装
cp .env.example .env && npm install
PORT=20128 npm run dev
📦 pnpm
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
🐧 Arch Linux (AUR)
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
🔧 Nix (Flake)
# 使用 Nix flakes
nix develop
npm run dev
# 或使用 devbox
devbox run npm run dev
📖 Docker 指南 — Compose 配置文件、Caddy HTTPS、Cloudflare 隧道。
🦭 Podman
# 1. 准备绑定挂载的数据目录
mkdir -p data
# 2. 仅适用于 Linux + 本地无 root Podman(绝不是远程 Podman Machine 客户端):
podman unshare chown 1000:1000 ./data
# 3. 设置运行时提示,构建本地 Compose 镜像并启动
echo "CONTAINER_HOST=podman"
>> .env
podman compose --profile base up -d --build
在 macOS 或 Windows 上,Podman 使用远程 Podman Machine:跳过 podman unshare 并遵循特定拓扑的数据目录指南。
📖 Podman 指南 — Compose 构建、Podman Machine 以及 Linux/systemd Quadlet 配置。
⚡ 更快/更精简的安装(跳过原生构建)
原生 SQLite 引擎(better-sqlite3)是可选依赖项,因此全局安装绝不会因从源码编译而受阻:当平台/Node 版本匹配时,它会使用预构建二进制文件;否则透明回退到纯 JS 引擎(Node 22+ 上使用 node:sqlite,其他情况使用捆绑的 sql.js WASM)——无需构建工具。
要完全跳过安装后的原生预热(CI、无头环境或慢速机器):
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 也会跳过
为获得最快安装速度,首选 pnpm(内容寻址存储 + 硬链接 — 见上文)。如需无控制台的无头运行时,可使用 Docker base 配置文件(上文)或Termux 指南。CLI 和 Web 控制台由同一进程在同一端口提供服务,因此目前没有单独的 CLI 专用包。
Snapshot do painel em 2026-08-24 · Catálogo bruto: YT 809 | TT 137 | IG 124 · Frescor (dias): YT 1 | TT 21 | IG 22
🎬 #1 — Instagram
nick_saraev — 3,042,474 次观看
🎬 #2 — Instagram
theopenstack — 692,419 次观看
🎬 #3 — ***
milesreevesai — 620,400 次观看
🎬 #4 — ***
Vaibhav Sisinty — 391,109 次观看
🎬 #5 — Instagram
buildwithai.club — 347,652 次观看
**完整排名(已去重规范 URL,`v
0`,覆盖范围最大):**
| #1 | #2 | #3 | #4 | #5 |
|---|
| #6 | #7 | #8 | #9 | #10 |
|---|
Métricas canônicas em 2026-08-24: 1.029 vídeos únicos · 11.132.922 visualizações conhecidas (`v
0`) · 639 canais/perfis por rede。原始控制台包含 1.070 行;41 条 Instagram 重复项已通过规范 URL 归一化,保留每个视频的最大计数。
来自真实用户的反馈,见证轩辕镜像的优质服务