Claude Code、Cursor、または自作 Agent の base_url を 1 か所変えるだけで、Claude、GPT、Gemini、DeepSeek、Kimi など数百のモデルを単一の OpenAI 互換 APIで切り替えられます——これは OpenRouter だけの機能ではありません。OmniRoute は 2026 年に GitHub で最も成長の速いオープンソース AI ゲートウェイのひとつです:MIT ライセンス、セルフホスト、カタログは 290+ プロバイダー、500+ モデル(90+ が無料枠付き)。本記事では概要、初回 API 呼び出し、Claude Code 連携、本番セキュリティチェックリストを扱います。
OmniRoute とは何か、何を解決するか
要するに:OmniRoute は自分のマシン上で動く LLM リバースプロキシです。上流には統一された /v1/chat/completions(および Anthropic /v1/messages、Gemini /v1beta/models など)を公開し、下流には各プロバイダーの API Key、OAuth サブスクリプション、無料プールを接続します。
典型的なユースケース
- 複数 Key のフォールバック:Claude サブスクの上限到達時
- 単一 Agent 入口:Claude Code、Cursor、Cline で監査ログを共有
- データを内側に保持:リクエスト経路に第三者プロキシなし
- 予算とクォータ:Auto Combo 予算ルーティングガイドを参照
OmniRoute vs OpenRouter vs 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 のヒント
Zilmac クラウド Macで OmniRoute を動かすと固定 IP と SSH が使えます——LLM ゲートウェイと xcodebuild を同じまたは別ホストで組み合わせられます。
Dashboard 4 ステップ
- 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)
モデル ID は provider/model 形式を使用。プレフィックス省略時は自動補完される場合があり、不一致は 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 は署名、公証、TestFlight を Agent ワークフローと並行して扱います。