懶人包
- OmniRoute 是 MIT 授權的開源 AI 閘道(npm 套件
omniroute,我測 v3.8.52),在本機開 20128 埠,同時提供 OpenAI 和 Anthropic 格式的 API,再把請求轉給你接上的供應商。- 「每月約 16.2 億免費 token」是各家免費層加總的估算,帳號要自己一家一家註冊。README 寫明這不是 OmniRoute 送的 token,剛裝好也可能一個能用的供應商都沒有。
- 我在 Windows 接本機 Ollama 實測:OpenAI 格式、Anthropic
/v1/messages、工具呼叫的格式轉換都正確,回應 header 標示成本 0。- Claude Code 2.1.310 接得上,但本機 8B 模型做不了事:Ollama 預設 4,096 context 把請求截斷;開到 32K 後完整收到 12,273 token,模型卻只用文字描述工具呼叫,檔案沒建出來。
- Anthropic 官方文件寫明不支援透過 gateway 讓 Claude Code 跑非 Claude 模型。接上去的不是 Claude,品質取決於你接的模型;Claude 帳號也不能分給別人共用。
我在 IG 刷到一支介紹 OmniRoute 的短片,主題是「Claude 額度用完怎麼辦」。這個 repo 在 GitHub 有 8 萬多顆星,我把它裝在家裡的 Windows 桌機上,接本機 Ollama,讓 Claude Code 實際打一輪。這篇整理它是什麼、免費額度從哪來、怎麼裝,以及 Claude Code 接上去的實測結果。
📌 目錄
- OmniRoute 是什麼?
- 免費額度從哪裡來?
- 怎麼在 Windows 裝起來接本機 Ollama?
- Claude Code 接上去,實測結果如何?
- 為什麼 8B 模型在 Claude Code 裡做不了事?
- 踩坑與限制
- 什麼情況值得用?
- 延伸資源
🧭 OmniRoute 是什麼?
OmniRoute 是一個跑在本機的 AI 閘道。程式只要指向它,它就把請求轉給後面設定好的模型供應商:額度用完自動換下一家,用量和成本集中在一個 Dashboard 看。
| 項目 | 內容(2026-10-25 查) |
|---|---|
| Repo | cheaper-inference/OmniRoute,MIT 授權 |
| 規模 | 80,646 stars、11,782 forks,2026-02-13 建立 |
| 最新版 | v3.8.52(2026-10-19 發布),npm 套件名 omniroute |
| 形態 | Next.js 本機服務,預設 port 20128,附繁中 Dashboard |
| API | OpenAI /v1/chat/completions、Anthropic /v1/messages 等 |
| README 列的功能 | 375 個供應商、20 種路由策略、自動 fallback、RTK+Caveman 壓縮(號稱省 15–95% token)、MCP/A2A |
ANTHROPIC_BASE_URL 指到它。Claude Code 以為自己在跟 Anthropic API 講話,請求其實被 OmniRoute 轉到別的模型:
💸 免費額度從哪裡來?
README 首頁的標語是「~1.62B free tokens/mo」。同一頁第 20 行就寫了來源:
Bring your own provider accounts. This is an estimated aggregate across separately eligible third-party free tiers, not a token grant from OmniRoute.
意思是:這個數字是把各家第三方供應商的免費層加總估算出來的,OmniRoute 自己不發 token。每一家都要你自己去註冊、拿 key,再貼回 OmniRoute。
README 談供應商的段落還有兩句也該先知道:
- 「A fresh installation can have no eligible keyless targets」:剛裝好可能沒有任何不需要 key 就能用的目標。
- 標記
tos: avoid的供應商(例如 Kiro)預設不進自動路由。README 的免費層圖表裡,有 12 家標成 avoid。
🛠️ 怎麼在 Windows 裝起來接本機 Ollama?
我的環境:Windows 11、Node.js、Git Bash、Ollama 已裝好 gemma3:4b 和 hermes3:8b。Docker Desktop 引擎當時回 500,所以改用 npm 裝。
1. 裝到隔離目錄
為了不污染全域 npm,我用 --prefix 裝進工作資料夾。它有原生模組要跑 install script,npm 會要求明確允許:
npm install -g --prefix ./npm-prefix --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute@3.8.52
這一步很慢。我第一次裝跑了 10 分鐘被逾時中斷,第二次裝了二十多分鐘才結束(exit 0)。
2. 啟動服務
DATA_DIR="$PWD/data" INITIAL_PASSWORD=<你的密碼> ./npm-prefix/omniroute serve --no-open --no-tray --log
/api/monitoring/health 回 {"status":"healthy"} 就是起來了。Dashboard 在 http://127.0.0.1:20128,用 INITIAL_PASSWORD 登入。
3. 加 Ollama 供應商
DATA_DIR="$PWD/data" ./npm-prefix/omniroute providers add ollama-local \
--credential ollama --yes --default-model gemma3:4b \
--provider-specific-data '{"baseUrl":"http://127.0.0.1:11434/v1"}'
--credential 給一個假值就好,Ollama 不檢查 key。原因寫在下面的踩坑段。
4. 建一把 OmniRoute API key
登入 Dashboard 後建一把 key(我是用 Dashboard 的登入 session 打 POST /api/keys,回 201)。Claude Code 會拿這把 key 當 Bearer token。
5. 讓 Claude Code 指過去
OmniRoute 的 docs/guides/CLAUDE-CODE-CONFIGURATION.md 寫明 ANTHROPIC_BASE_URL 是閘道根網址、不加 /v1,key 放 ANTHROPIC_AUTH_TOKEN。我另開一個 CLAUDE_CONFIG_DIR,不動自己平常的 Claude Code 設定:
CLAUDE_CONFIG_DIR=../cc-config \
ANTHROPIC_BASE_URL=http://127.0.0.1:20128 \
ANTHROPIC_AUTH_TOKEN=<OmniRoute API key> \
ANTHROPIC_API_KEY= \
ANTHROPIC_MODEL=ollama/hermes3:8b \
ANTHROPIC_SMALL_FAST_MODEL=ollama/gemma3:4b \
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
claude -p "Reply with exactly: HELLO FROM OMNIROUTE" --output-format json
同一份文件也提供 omniroute launch 一鍵帶環境變數啟動 Claude Code,這個我沒測。
🧪 Claude Code 接上去,實測結果如何?
我先用 curl 直接打 API,確認閘道本身沒問題,再讓 Claude Code 上場。七個測試的結果:
| # | 測試 | 結果 |
|---|---|---|
| 1 | OpenAI 格式 /v1/chat/completions | ✅ 200,gemma3:4b 正常回答 |
| 2 | Anthropic /v1/messages 問 1+1 | ✅ 回 1 + 1 = 2 |
| 3 | Anthropic 格式繁中提問 | ✅ 回「我是一個大型語言模型,由 Google 訓練…」,usage 16/27 |
| 4 | Claude Code -p 叫它回固定字串 | ⚠️ 連線成功,輸入卡在 4,096 token,回了一段不相干的 Claude Code 使用技巧 |
| 5 | Claude Code 用 Write 工具建檔(4K) | ❌ 回了不相干的任務清單,沒建檔 |
| 6 | 同上,換 32K context 模型 | ❌ 完整收到 12,273 token,模型只用文字描述工具呼叫,沒建檔 |
| 7 | 直接打 /v1/messages,帶一個 get_weather tool | ✅ 回 tool_use,input: {"city":"Taipei"},stop_reason: tool_use |
x-omniroute-decision: strategy=single; provider=ollama; latency_ms=14259
x-omniroute-model: gemma3:4b
x-omniroute-provider: ollama
x-omniroute-response-cost: 0.0000000000
x-omniroute-tokens-in: 27
x-omniroute-tokens-out: 350
x-omniroute-version: 3.8.52
Dashboard 的請求日誌也看得到每一筆:協議 CLAUDE、供應商 OLLAMA,Claude Code 那幾筆的輸入 token 是 4,096 和 12,273。
🔍 為什麼 8B 模型在 Claude Code 裡做不了事?
測試 7 證明 OmniRoute 的工具呼叫轉換是對的:Anthropic 格式的 tool 定義進去,Ollama 回的 tool call 出來,被轉回標準的 tool_use 區塊。問題出在模型那一端,有兩層。
第一層:4,096 context 把請求截斷
測試 4、5 的 input_tokens 都剛好是 4096。Ollama 預設 context 是 4,096,Claude Code 每次請求帶的系統提示加工具定義遠超過這個長度,被截掉的部分包含使用者真正的指令,所以模型答非所問。
解法是做一個 context 開大的模型:
FROM hermes3:8b
PARAMETER num_ctx 32768
ollama create hermes3-32k -f Modelfile.hermes3-32k
第二層:模型不會發出工具呼叫
換成 32K 後,測試 6 的輸入是 12,273 token,請求完整收到了。模型的回答是:
To create a file named hello.txt ... you can use the Write tool like this: {"tool":"Write","file_path":"hello.txt","content":"hi"}
它知道要用 Write,但把呼叫寫成一段說明文字,沒有發出真正的 tool call,Claude Code 也就沒有東西可以執行。測試 7 只有一個工具、幾十個字的請求,hermes3 就能正確呼叫;Claude Code 的請求是一萬多 token 的系統提示加二十幾個工具,8B 模型撐不住。
結論是:OmniRoute 這層沒問題,Claude Code 能不能真的寫 code,要看後面接的模型夠不夠強。要拿來寫 code,得接能穩定處理長系統提示和工具呼叫的模型,本機 8B 不行。
⚠️ 踩坑與限制
安裝與設定的坑
- CLI 不帶
DATA_DIR會另開一份資料:服務用DATA_DIR=./data啟動,providers add沒帶同一個DATA_DIR,就會在%APPDATA%\omniroute建另一份,加的供應商服務看不到。每個 CLI 指令都要帶。 - Ollama 連線沒給 credential 會被當成 apikey 型別:狀態顯示「Connection ollama-local has no API key configured」。補
--credential ollama之後就正常了。
- Git Bash 下 curl 送中文會亂碼:直接把中文寫在
-d參數裡,模型收到的是 cp950 亂碼。改成把 body 存成 UTF-8 檔,用--data-binary @body.json送。 - Claude Code 的成本估算不準:測試 4 的
total_cost_usd是 0.027144,那是 Claude Code 用自己的價目表估的;stderr 有[claude-code:unrecognized_model],OmniRoute header 的實際成本是 0。看成本以閘道為準。
官方立場與帳號風險
Claude Code 官方的 LLM gateway 文件 寫得很直接:
Anthropic doesn't endorse, maintain, or audit third-party gateway products, and doesn't support routing Claude Code to non-Claude models through any gateway.
同一頁也說明,走 gateway 憑證時訂閱方案的用量上限不適用,流量算在憑證擁有者身上。
另外,OmniRoute 的供應商清單裡有「訂閱 OAuth」這類接法。如果是把 Claude 訂閱帳號接上去給別人用,Anthropic 消費者條款(2025-10-08 生效)寫明「You may not share your Account login information, Anthropic API key, or Account credentials with anyone else」,也不能把帳號給其他人使用。自己的電腦接自己的 API key 沒問題,帳號共用就有停權風險。
隱私
README 也寫了,部分免費供應商會記錄請求內容。公司程式碼或客戶資料不要送到你沒看過隱私條款的免費層。
✅ 什麼情況值得用?
適合:
- 手上已經有好幾家模型的 API key,想用一個 endpoint 統一管理,額度用完自動換下一家。
- 想把 Claude Code、Codex、Cursor 指到同一個閘道,集中看用量和成本。
- 教學或研究 AI Gateway:路由、fallback、協議轉換都有實作,Dashboard 有繁中介面,拿來 demo 很直觀。
- 想要「免費的 Claude」。接上去跑的是別家模型,Claude Code 的體驗取決於那個模型。
- 只想用本機小模型跑 Claude Code。我的實測裡 8B 模型連建一個檔案都做不到。
- 打算把 Claude 訂閱帳號接進去給別人共用。
🔗 延伸資源
- OmniRoute GitHub repo:README、免費層說明、Claude Code 設定文件都在
docs/ - Claude Code LLM gateway 官方文件:gateway 設定方式與支援範圍
- Anthropic Consumer Terms:帳號與憑證共用的規定
- AI agent 額度爆了不用乾等:ccs 多帳號切換:額度用完時,換成自己的另一個帳號、同一場對話接著做
- 手機跑本地 LLM 怎麼裝?PocketPal AI 教學:本地小模型能做什麼、模型怎麼選