你在 Claude Code、Cursor 或自建 Agent 裡改一個 base_url,就能在同一條 OpenAI 相容 API 上切換 Claude、GPT、Gemini、DeepSeek、Kimi 等數百個模型——這不是 OpenRouter 的專屬能力。OmniRoute 是 2026 年 GitHub 上成長最快的開源 AI 閘道之一:MIT 授權、自託管,官方目錄宣稱接入 290+ 供應商、500+ 模型(其中 90+ 帶免費額度)。本文從「它是什麼」講到第一次成功呼叫,再到 Claude Code 接入與生產安全清單。
OmniRoute 是什麼?解決什麼問題
簡單說:OmniRoute 是你自己機器上跑的 LLM 反向代理。它對上游暴露統一的 /v1/chat/completions(以及 Anthropic /v1/messages、Gemini /v1beta/models 等相容介面),對下游連接你設定的各廠商 API Key、OAuth 訂閱或免費池。
典型使用場景
- 多 Key 回退:Claude 訂閱額度用盡後自動切 API Key 或更便宜模型
- 統一 Agent 入口:Claude Code、Cursor、Cline 共用同一閘道與稽核日誌
- 資料不出內網:請求路徑只經過你自己的容器,無第三方代理
- 預算與配額:詳見 Auto Combo 預算路由教學
和 OpenRouter、LiteLLM 怎麼選
| 維度 | OmniRoute | OpenRouter | LiteLLM Proxy |
|---|---|---|---|
| 部署 | 自託管 | 雲端 SaaS | 自託管(Python) |
| 計費 | 各廠商原價 + 你的基礎設施 | 預充值 token + ~5.5% 充值費 | 各廠商原價 + 自建成本 |
| 目錄 | 290+ 供應商 / 500+ 模型 | 300+ 託管模型 | 取決於你的設定 |
| 適合誰 | 本地閘道、多訂閱混用、預算控制 | 快速試模型、不想維運閘道 | 已有 Python 棧、要極簡代理 |
若你主要關心各模型 token 單價對比,可先讀 OpenRouter 價格對比文;若已決定自託管並要控制 Agent 單次請求成本,再讀 Auto Combo 預算路由。
安裝與啟動(Docker / npm)
Docker(建議)
docker run -d --name omniroute \
-p 20128:20128 \
-v omniroute-data:/data \
diegosouzapw/omniroute
開啟 http://localhost:20128 → /dashboard。
npm(本機快速試用)
npm install -g omniroute
omniroute
雲端 Mac 提示
把 OmniRoute 跑在 Zilmac 雲端 Mac 上,可獲得固定 IP 與 SSH 存取——LLM 閘道可與同機或另一台主機上的 xcodebuild 搭配使用。
Dashboard 四步驟
- 建立 API Key——所有客戶端使用
Authorization: Bearer <key>。 - 連接供應商——OAuth、貼上 API Key,或啟用免費 no-auth 池(僅試用)。
- 指向客戶端——設為
http://<host>:20128/v1。 - 監控用量——未帶 Key 的管理路由應回傳
401。
列出全部模型:GET /v1/models
export OMNI_KEY="your-omniroute-api-key"
curl -s http://localhost:20128/v1/models \
-H "Authorization: Bearer $OMNI_KEY" | jq '.data | length'
第一次 API 呼叫(curl / Python / Node)
建議使用 provider/model 格式的模型 ID。省略前綴時可能自動補全;不匹配則回傳 400。
curl
curl -s http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-sonnet-4-6","messages":[{"role":"user","content":"Explain OmniRoute in one sentence"}],"max_tokens":256}'
Python
from openai import OpenAI
client = OpenAI(api_key="your-key", base_url="http://localhost:20128/v1")
print(client.chat.completions.create(
model="openai/gpt-5.4",
messages=[{"role": "user", "content": "Hello"}],
).choices[0].message.content)
串流輸出
curl -N http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek/deepseek-chat","messages":[{"role":"user","content":"Count to 5"}],"stream":true}'
Anthropic Messages
原生 Anthropic 客戶端可使用 POST /v1/messages。完整端點列表:API Reference。
auto/* 意圖別名與回退
像 auto/best-coding 這類別名會在配額內選擇健康模型——換供應商時無需改客戶端。生產環境請搭配 預算路由,避免意外回退到免費層。
curl -s http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" -H "Content-Type: application/json" \
-d '{"model":"auto/best-coding","messages":[{"role":"user","content":"quicksort"}]}'
Claude Code、Cursor 與 Copilot
| 客戶端 | 設定 | 說明 |
|---|---|---|
| Claude Code | ANTHROPIC_BASE_URL=http://host:20128 | OAuth 或 API 路由 |
| Cursor | 覆寫 OpenAI Base URL → /v1 | 以 OmniRoute Key 作為 API Key |
| Cline / Continue | OpenAI 相容供應商 | 可試 auto/best-coding |
生產部署與安全清單
- 升級至最新版本(v3.8.50+);移除預設密碼;
- 切勿在無 TLS 的情況下將連接埠
20128暴露到公網; - 為每位成員簽發獨立 API Key,設定 token 限額與 IP 允許清單;
- 免費池僅作回退;定期備份
/data磁碟區。
常見問題
回傳 400 model not found?
檢查 provider/model 拼寫與 Dashboard 中的供應商連線。可試 auto/best-free 驗證鏈路。
本機用 Ollama?
可以——POST /v1/api/chat 將本地模型納入同一路由表。
能和 OpenRouter 一起用嗎?
可以——OmniRoute 可把 OpenRouter 當作下游供應商,實現混合架構。
閘道管模型,雲端 Mac 管建置
OmniRoute 負責選 LLM;iOS/macOS 流水線仍需要 Xcode。Zilmac 雲端 Mac 可與 Agent 工作流搭配,處理簽章、公證與 TestFlight。