コンテンツにスキップ
OmniRoute source

User Guide (日本語)


プラン プロバイダー 料金 クォータのリセット 最適な用途
💳 サブスクリプション Claude Code (Pro) $20/月 5時間ごと+毎週 すでに契約済みの場合
Codex (Plus/Pro) $20~200/月 5時間ごと+毎週 OpenAI ユーザー
GitHub Copilot $10~19/月 毎月 GitHub ユーザー
🔑 API キー DeepSeek 従量課金 なし 低コストな推論
Groq 従量課金 なし 超高速な推論
xAI (Grok) 従量課金 なし Grok 4 による推論
Mistral 従量課金 なし EU でホストされるモデル
Perplexity 従量課金 なし 検索拡張
Together AI 従量課金 なし オープンソースモデル
Fireworks AI 従量課金 なし 高速な FLUX 画像生成
Cerebras 従量課金 なし ウェハースケールの速度
Cohere 従量課金 なし Command R+ RAG
NVIDIA NIM 従量課金 なし エンタープライズモデル
Baidu Qianfan 従量課金 なし ERNIE モデル
💰 低価格 GLM-4.7 $0.6/1M 毎日午前10時 低予算のバックアップ
MiniMax M2.1 $0.2/1M 5時間のローリング方式 最安の選択肢
Kimi K2 月額 $9 の定額制 10M tokens/月 予測可能なコスト
🆓 無料 Qoder $0 プロバイダーの制限が適用 現在のカタログを要確認
Kiro $0 約50クレジット/月 Claude を無料で利用

ケース 1: 「Claude Pro のサブスクリプションを契約している」

Section titled “ケース 1: 「Claude Pro のサブスクリプションを契約している」”

問題: クォータを使い切れないまま期限切れになり、コーディング作業が多いときにはレート制限に達する

組み合わせ: "maximize-claude"
1. cc/claude-opus-4-7 (サブスクリプションを最大限に活用)
2. glm/glm-4.7 (クォータ切れ時の低コストなバックアップ)
3. if/qwen3.8-max-preview (緊急時の無料フォールバック)
月額費用: $20(サブスクリプション)+ 約$5(バックアップ)= 合計$25
対して、$20のみで制限に達する場合 = ストレス

ケース 2: 「コストをゼロにしたい」

Section titled “ケース 2: 「コストをゼロにしたい」”

問題: サブスクリプションを契約する余裕はないが、信頼性の高い AI コーディングが必要

組み合わせ: "zero-cost"
1. if/kimi-k2.7-code (無料アクセスとして掲載。レート制限が適用される場合あり)
2. kr/qwen3-coder-next (Kiro の無料フォールバック)
月額費用: $0
品質: ワークロードに対するモデル、制限、プライバシー、SLA を確認してください

ケース 3: 「中断なしで 24時間365日コーディングしたい」

Section titled “ケース 3: 「中断なしで 24時間365日コーディングしたい」”

問題: 締め切りがあり、ダウンタイムは許容できない

組み合わせ: "always-on"
1. cc/claude-opus-4-7 (最高品質)
2. cx/gpt-5.5 (2つ目のサブスクリプション)
3. glm/glm-4.7 (低コストで毎日リセット)
4. minimax/MiniMax-M2.1 (最安で5時間ごとにリセット)
5. if/deepseek-v4-flash (無料アクセスとして掲載。レート制限が適用される場合あり)
結果: 5層のフォールバックにより耐障害性が向上しますが、上流サービスの可用性は保証されません
月額費用: $20~200(サブスクリプション)+ $10~20(バックアップ)

ケース 4: 「OpenClaw で無料の AI を使いたい」

Section titled “ケース 4: 「OpenClaw で無料の AI を使いたい」”

問題: メッセージングアプリで完全無料の AI アシスタントが必要

組み合わせ: "openclaw-free"
1. if/qwen3.8-max-preview (無料アクセスとして掲載。レート制限が適用される場合あり)
2. if/deepseek-v4-flash (無料アクセスとして掲載。レート制限が適用される場合あり)
3. if/kimi-k2.7-code (無料アクセスとして掲載。レート制限が適用される場合あり)
月額費用: $0
アクセス方法: WhatsApp、Telegram、Slack、Discord、iMessage、Signal...

📖 プロバイダーのセットアップ

Section titled “📖 プロバイダーのセットアップ”

CSV または JSON ファイルから API キー接続を一括追加するには、ダッシュボード → プロバイダー → ファイルからインポートを使用します。列は位置によって決まります(provider,name,apiKey,baseUrl,priority)。provider は、管理対象プロバイダーまたは互換性のあるノードとして、すでに存在している必要があります。CSV または JSON ファイルからプロバイダーをインポートするを参照してください。

🔐 サブスクリプションプロバイダー

Section titled “🔐 サブスクリプションプロバイダー”
ターミナルウィンドウ
ダッシュボード → プロバイダー → Claude Code に接続
→ OAuth ログイン → トークンの自動更新
→ 5時間ごと + 週間クォータの追跡
モデル:
cc/claude-opus-4-7
cc/claude-sonnet-4-6
cc/claude-haiku-4-5-20251001

プロのヒント: 複雑なタスクには Opus、速度を重視する場合は Sonnet を使用してください。OmniRoute はモデルごとにクォータを追跡します!

Claude および Claude Code 互換ルートでは、Opus と Sonnet モデルの max 思考強度が維持されます。Haiku モデルは max 強度レベルを受け付けないため、OmniRoute はアップストリームへ送信する前に、そのリクエストを高い思考予算へダウングレードします。

ターミナルウィンドウ
ダッシュボード → プロバイダー → Codex に接続
→ OAuth ログイン(ポート 1455)
→ 5時間ごと + 週間リセット
モデル:
cx/gpt-5.5
cx/gpt-5.4
cx/gpt-5.3-codex
cx/gpt-5.3-codex-spark
ターミナルウィンドウ
ダッシュボード → プロバイダー → GitHub に接続
→ GitHub 経由で OAuth
→ 毎月リセット(毎月1日)
モデル:
gh/gpt-5.5
gh/gpt-5.4
gh/claude-sonnet-4.6
gh/claude-opus-4.7
gh/gemini-3.1-pro-preview
  1. 登録: Zhipu AI
  2. Coding Plan から API キーを取得
  3. ダッシュボード → API キーを追加: プロバイダー: glm、API キー: your-key

使用方法: glm/glm-4.7 — プロのヒント: Coding Plan では、1/7 のコストで3倍のクォータを利用できます!毎日午前10時にリセットされます。

MiniMax M2.1(5時間ごとにリセット、$0.20/1M)

Section titled “MiniMax M2.1(5時間ごとにリセット、$0.20/1M)”
  1. 登録: MiniMax
  2. API キーを取得 → ダッシュボード → API キーを追加

使用方法: minimax/MiniMax-M2.1 — プロのヒント: 長いコンテキスト(1M トークン)向けの最安オプションです!

  1. サブスクリプションに登録: Moonshot AI
  2. API キーを取得 → ダッシュボード → API キーを追加

使用方法: kimi/kimi-k2.5 — プロのヒント: 10M トークンが月額固定 $9 のため、実質コストは $0.90/1M です!

  1. 登録: Baidu AI Cloud Qianfan
  2. Qianfan API キーを作成 → ダッシュボード → API キーを追加: プロバイダー: qianfan

使用方法: qianfan/ernie-5.1、qianfan/ernie-x1.1、またはその他の Qianfan OpenAI 互換モデル ID。

認証不要の無料プロバイダーには、そのプロバイダーページの 認証不要 の横に切り替えスイッチがあります。 オフにすると、そのプロバイダーが無効になり、「設定済みプロバイダー」表示およびコンパクト表示から削除され、さらにそのモデルも /v1/models から削除されます。

ターミナルウィンドウ
ダッシュボード → Qoder に接続 → OAuth ログイン → アクセスには現在のプロバイダー制限が適用されます
モデル: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3
ターミナルウィンドウ
ダッシュボード → Kiro に接続 → AWS Builder ID または Google/GitHub → 月あたり約50クレジット
モデル: kr/claude-sonnet-4.5, kr/claude-haiku-4.5

Dashboard → Combos で各カードのハンドルをドラッグすると、コンボカードを直接並べ替えられます。順序は SQLite に保存され、再読み込み時に復元されます。

例 1: サブスクリプションを最大活用 → 安価なバックアップ

Section titled “例 1: サブスクリプションを最大活用 → 安価なバックアップ”
Dashboard → Combos → Create New
名前: premium-coding
モデル:
1. cc/claude-opus-4-7 (サブスクリプションのプライマリ)
2. glm/glm-4.7 (安価なバックアップ、$0.6/1M)
3. minimax/MiniMax-M2.7 (最も安価なフォールバック、$0.3/1M)
CLI で使用: premium-coding
名前: free-combo
モデル:
1. if/kimi-k2.7-code (無料アクセスとして掲載。プロバイダーの制限が適用される場合があります)
2. kr/qwen3-coder-next (Kiro の無料フォールバック)
コスト: 現在は $0 と記載されていますが、利用条件と提供状況は変更される可能性があります

OmniRoute クライアントとして Cursor を使用する場合(Cursor のチャットを OmniRoute 経由でルーティング):

Settings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [OmniRoute ダッシュボードから取得]
Model: cc/claude-opus-4-7

Cursor プロバイダーとして OmniRoute を使用する場合(OmniRoute がアップストリームの Cursor を呼び出す): Dashboard → Providers → Cursor → Login with Cursor を推奨します。Docker では、 docs/providers/CURSOR-DOCKER.mdを参照してください。

~/.claude/settings.json を編集します:

{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
}
}

ここでは Claude 互換のルートエンドポイントを使用してください。ANTHROPIC_BASE_URL に /v1 を追加しないでください。

ターミナルウィンドウ
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"

~/.openclaw/openclaw.json を編集します:

{
"agents": {
"defaults": {
"model": { "primary": "omniroute/if/kimi-k2.7-code" }
}
},
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://localhost:20128/v1",
"apiKey": "your-omniroute-api-key",
"api": "openai-completions",
"models": [{ "id": "if/kimi-k2.7-code", "name": "Kimi K2.7 Code" }]
}
}
}
}

またはダッシュボードを使用: CLI Tools → OpenClaw → Auto-config

プロバイダー: OpenAI Compatible
ベース URL: http://localhost:20128/v1
API キー: [ダッシュボードから取得]
モデル: cc/claude-opus-4-7

グローバル npm インストール(推奨)

Section titled “グローバル npm インストール(推奨)”
ターミナルウィンドウ
npm install -g omniroute
# 設定ディレクトリを作成
mkdir -p ~/.omniroute
# .env ファイルを作成(.env.example を参照)
cp .env.example ~/.omniroute/.env
# サーバーを起動
omniroute
# またはカスタムポートを指定:
omniroute --port 3000

CLI は ~/.omniroute/.env または ./.env から .env を自動的に読み込みます。

OmniRoute をシステムトレイで起動します:

ターミナルウィンドウ
omniroute serve --tray

このコマンドは、サーバーとトレイの準備が完了すると終了します。

サーバーはターミナルなしで動作を継続します。

トレイモードは macOS、Windows、およびグラフィカルな Linux セッションをサポートします。トレイモードではダッシュボードは自動的に開きません。

トレイメニューから次の操作を実行できます:

  • ダッシュボードを開く。
  • /dashboard/logs を開く。
  • 自動起動の設定を変更する。
  • OmniRoute を停止する。

--tray を次のオプションと併用しないでください:

  • --daemon
  • --log
  • --no-recovery

これらのモードでは、異なるプロセス所有方式が必要です。

次回のマシンへのログイン時に起動するよう有効化します:

ターミナルウィンドウ
omniroute autostart enable

自動起動では、macOS、Windows、およびグラフィカルな Linux セッションでトレイモードが使用されます。ヘッドレス Linux では、既存の systemd ユーザーサービスが使用されます。

ログイン時の起動を無効化します:

ターミナルウィンドウ
omniroute autostart disable

OmniRoute が不要になった場合、クリーンに削除するための簡単なスクリプトを 2 つ用意しています:

コマンド 操作
npm run uninstall システムアプリを削除しますが、~/.omniroute 内のデータベースと設定は保持します。
npm run uninstall:full アプリを削除し、さらにすべての設定、キー、データベースを完全に消去します。

注: これらのコマンドを実行するには、OmniRoute プロジェクトフォルダー(クローンした場合)に移動してから実行してください。または、グローバルにインストールした場合は、npm uninstall -g omniroute を実行するだけです。

ターミナルウィンドウ
git clone https://github.com/diegosouzapw/OmniRoute.git
cd OmniRoute && npm install && npm run build
export JWT_SECRET="your-secure-secret-change-this"
export INITIAL_PASSWORD="your-password"
export DATA_DIR="/var/lib/omniroute"
export PORT="20128"
export HOSTNAME="0.0.0.0"
export NODE_ENV="production"
export NEXT_PUBLIC_BASE_URL="http://localhost:20128"
export API_KEY_SECRET="endpoint-proxy-api-key-secret"
npm run start
# または: pm2 start npm --name omniroute -- start

RAM が限られているサーバーでは、メモリ制限オプションを使用してください:

ターミナルウィンドウ
# 512MB の制限を指定(デフォルト)
pm2 start npm --name omniroute -- start
# またはカスタムメモリ制限を指定
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# または ecosystem.config.js を使用
pm2 start ecosystem.config.js

ecosystem.config.js を作成します:

module.exports = {
apps: [
{
name: "omniroute",
script: "npm",
args: "start",
env: {
NODE_ENV: "production",
OMNIROUTE_MEMORY_MB: "512",
JWT_SECRET: "your-secret",
INITIAL_PASSWORD: "your-password",
},
node_args: "--max-old-space-size=512",
max_memory_restart: "300M",
},
],
};
ターミナルウィンドウ
# イメージをビルド(デフォルト = codex/claude/droid がプリインストールされた runner-cli)
docker build -t omniroute:cli .
# ポータブルモード(推奨)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli

CLI バイナリを使用するホスト統合モードについては、メインドキュメントの Docker セクションを参照してください。

Void Linux ユーザーは、xbps-src クロスコンパイルフレームワークを使用して、OmniRoute をネイティブにパッケージ化してインストールできます。これにより、Node.js のスタンドアロンビルドと、必要な better-sqlite3 ネイティブバインディングが自動的に処理されます。

xbps-src テンプレートを表示
ターミナルウィンドウ
# 'omniroute' 用テンプレートファイル
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="nodejs python3 make"
depends="openssl"
short_desc="Universal AI gateway with smart routing for multiple LLM providers"
maintainer="zenobit <zenobit@disroot.org>"
license="MIT"
homepage="https://github.com/diegosouzapw/OmniRoute"
distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz"
checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b
system_accounts="_omniroute"
omniroute_homedir="/var/lib/omniroute"
export NODE_ENV=production
export npm_config_engine_strict=false
export npm_config_loglevel=error
export npm_config_fund=false
export npm_config_audit=false
do_build() {
# node-gyp のターゲット CPU アーキテクチャを判定
local _gyp_arch
case "$XBPS_TARGET_MACHINE" in
aarch64*) _gyp_arch=arm64 ;;
armv7*|armv6*) _gyp_arch=arm ;;
i686*) _gyp_arch=ia32 ;;
*) _gyp_arch=x64 ;;
esac
# 1) すべての依存関係をインストール – スクリプトはスキップ
NODE_ENV=development npm ci --ignore-scripts
# 2) Next.js スタンドアロンバンドルをビルド
npm run build
# 3) 静的アセットをスタンドアロンにコピー
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) better-sqlite3 ネイティブバインディングをコンパイル
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) コンパイル済みバインディングをスタンドアロンバンドルに配置
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) アーキテクチャ固有の sharp バンドルを削除
rm -rf .next/standalone/node_modules/@img
# 7) Next.js の静的解析で省略された pino のランタイム依存関係をコピー:
for _mod in pino-abstract-transport split2 process-warning; do
cp -r "node_modules/$_mod" .next/standalone/node_modules/
done
}
do_check() {
npm run test:unit
}
do_install() {
vmkdir usr/lib/omniroute/.next
vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# インストール後フックによって空の Next.js App Router ディレクトリが削除されるのを防止
for _d in \
.next/standalone/.next/server/app/dashboard \
.next/standalone/.next/server/app/dashboard/settings \
.next/standalone/.next/server/app/dashboard/providers; do
touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done
cat > "${WRKDIR}/omniroute" <<'EOF'
#!/bin/sh
export PORT="${PORT:-20128}"
export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}"
export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}"
mkdir -p "${DATA_DIR}"
exec node /usr/lib/omniroute/.next/standalone/server.js "$@"
EOF
vbin "${WRKDIR}/omniroute"
}
post_install() {
vlicense LICENSE
}
変数 デフォルト 説明
JWT_SECRET omniroute-default-secret-change-me JWT 署名用シークレット(本番環境では変更してください)
INITIAL_PASSWORD CHANGEME 初回ログイン用パスワード
DATA_DIR ~/.omniroute データディレクトリ(データベース、使用状況、ログ)
PORT フレームワークのデフォルト サービスポート(例では 20128)
HOSTNAME フレームワークのデフォルト バインド先ホスト(Docker のデフォルトは 0.0.0.0)
NODE_ENV ランタイムのデフォルト デプロイ時には production に設定
NEXT_PUBLIC_BASE_URL http://localhost:20128 ダッシュボードに表示され、サーバーにも公開される公開ベース URL(従来の BASE_URL を置き換え)
NEXT_PUBLIC_CLOUD_URL https://omniroute.dev クラウド同期エンドポイントのベース URL(従来の CLOUD_URL を置き換え)
API_KEY_SECRET endpoint-proxy-api-key-secret 生成される API キー用の HMAC シークレット
REQUIRE_API_KEY false /v1/* で Bearer API キーを必須にする
ALLOW_API_KEY_REVEAL false 認証済みのダッシュボードユーザーが、保存されている API キーの完全な値をオンデマンドで表示できるようにする
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 キャッシュされたプロバイダー制限データのサーバー側更新間隔。UI の更新ボタンでは引き続き手動同期が実行される
DISABLE_SQLITE_AUTO_BACKUP false 書き込み、インポート、復元前の SQLite 自動スナップショットを無効化する。手動バックアップは引き続き利用可能
APP_LOG_TO_FILE true アプリケーションログと監査ログのディスクへの出力を有効にする
AUTH_COOKIE_SECURE false Secure 認証 Cookie を強制する(HTTPS リバースプロキシの背後で使用)
CLOUDFLARED_BIN 未設定 管理対象としてダウンロードする代わりに、既存の cloudflared バイナリを使用する
CLOUDFLARED_PROTOCOL http2 管理対象の Quick Tunnels 用トランスポート(http2、quic、または auto)
OMNIROUTE_MEMORY_MB 512 Node.js のヒープ上限(MB)
PROMPT_CACHE_MAX_SIZE 50 プロンプトキャッシュの最大エントリ数
SEMANTIC_CACHE_MAX_SIZE 100 セマンティックキャッシュの最大エントリ数

環境変数の完全なリファレンスについては、README を参照してください。


利用可能なすべてのモデルを表示

以下の一覧は、v3.8.0 の open-sse/config/providerRegistry.ts から厳選されています。クラウドカタログ(Gemini、OpenRouter など)は動的に同期されます。最新の完全なカタログを確認するには、ダッシュボード → プロバイダー → [provider] → 利用可能なモデルを開くか、GET /api/models/catalog を呼び出してください。

プロバイダーの組み込みリストが最新の状態と異なる場合は、そのページの /models からインポートを使用するか、自動同期を有効にして、最新のアップストリームカタログを取得してください。これは、LLM7.io(gemini-3.1-flash-lite)および UncloseAI(solidrust/Hermes-3-Llama-3.1-8B-AWQ)について v3.8.50 で検証済みです。同じテスト実施時点で、Pollinations の匿名アクセスには引き続きアップストリーム側の制限がありました。

Claude Code(cc/) — Pro/Max OAuth:cc/claude-opus-4-8、cc/claude-opus-4-7、cc/claude-opus-4-6、cc/claude-opus-4-5-20251101、cc/claude-sonnet-4-6、cc/claude-sonnet-4-5-20250929、cc/claude-haiku-4-5-20251001

Codex(cx/) — Plus/Pro OAuth:cx/gpt-5.5(+ 推論強度レベル:gpt-5.5-xhigh、gpt-5.5-high、gpt-5.5-medium、gpt-5.5-low)、cx/gpt-5.4、cx/gpt-5.4-mini、cx/gpt-5.3-codex、cx/gpt-5.3-codex-spark

GitHub Copilot(gh/) — OAuth:gh/gpt-5.5、gh/gpt-5.4、gh/gpt-5.4-mini、gh/gpt-5-mini、gh/gpt-5.3-codex、gh/claude-opus-4.7、gh/claude-opus-4.6、gh/claude-opus-4-5-20251101、gh/claude-sonnet-4.6、gh/claude-sonnet-4.5、gh/claude-haiku-4.5、gh/gemini-3.1-pro-preview、gh/gemini-3-flash-preview、gh/oswe-vscode-prime

Kiro(kr/) — 無料 OAuth:ダッシュボード → プロバイダー → Kiro → 利用可能なモデルに表示されるライブカタログを使用してください。利用可否はアカウントとプランによって異なります。

Qoder(if/) — 無料 OAuth:if/qwen3.8-max-preview、if/qwen3.7-max、if/qwen3.7-plus、if/kimi-k3、if/kimi-k2.7-code、if/glm-5.2、if/deepseek-v4-pro、if/deepseek-v4-flash、if/minimax-m3

GLM(glm/、glm-cn/、zai/、glmt/) — $0.2~0.6/1M:glm/glm-5.1、glm/glm-5、glm/glm-5-turbo、glm/glm-4.7、glm/glm-4.7-flash、glm/glm-4.6、glm/glm-4.6v、glm/glm-4.5、glm/glm-4.5v、glm/glm-4.5-air

MiniMax(minimax/、minimax-cn/) — $0.2/1M:minimax/MiniMax-M2.7、minimax/MiniMax-M2.7-highspeed、minimax/MiniMax-M2.5、minimax/MiniMax-M2.5-highspeed

Kimi(kimi/、kimi-coding/、kimi-coding-apikey/) — 月額 $9 の定額制または従量課金:kimi/kimi-k2.6、kimi/kimi-k2.5

DeepSeek(ds/) — API キー:ds/deepseek-v4-pro、ds/deepseek-v4-flash

Groq(groq/) — 超高速:groq/llama-3.3-70b-versatile、groq/meta-llama/llama-4-maverick-17b-128e-instruct、groq/qwen/qwen3-32b、groq/openai/gpt-oss-120b

xAI(xai/) — Grok ネイティブ:xai/grok-4.3、xai/grok-4.20-multi-agent-0309、xai/grok-4.20-0309-reasoning、xai/grok-4.20-0309-non-reasoning

Mistral(mistral/) — EU 内ホスティング:mistral/mistral-large-latest、mistral/mistral-medium-3-5、mistral/mistral-small-latest、mistral/devstral-latest、mistral/codestral-latest

Perplexity(pplx/) — 検索拡張:pplx/sonar-deep-research、pplx/sonar-reasoning-pro、pplx/sonar-pro、pplx/sonar

Together AI(together/) — オープンソース:together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free(無料)、together/meta-llama/Llama-Vision-Free、together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free、together/deepseek-ai/DeepSeek-R1、together/Qwen/Qwen3-235B-A22B、together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8

Fireworks AI(fireworks/) — 高速推論:fireworks/accounts/fireworks/models/kimi-k2p6、fireworks/accounts/fireworks/models/minimax-m2p7、fireworks/accounts/fireworks/models/qwen3p6-plus、fireworks/accounts/fireworks/models/glm-5p1、fireworks/accounts/fireworks/models/deepseek-v4-pro

Cerebras(cerebras/) — ウェハースケール:cerebras/zai-glm-4.7、cerebras/gpt-oss-120b

Cohere(cohere/) — RAG 重視:cohere/command-a-reasoning-08-2025、cohere/command-a-vision-07-2025、cohere/command-a-03-2025、cohere/command-r-08-2024

NVIDIA NIM(nvidia/) — エンタープライズ:nvidia/z-ai/glm-5.1、nvidia/minimaxai/minimax-m2.7、nvidia/google/gemma-4-31b-it、nvidia/mistralai/mistral-small-4-119b-2603、nvidia/mistralai/mistral-large-3-675b-instruct-2512、nvidia/qwen/qwen3.5-397b-a17b、nvidia/deepseek-ai/deepseek-v4-pro、nvidia/openai/gpt-oss-120b、nvidia/nvidia/nemotron-3-super-120b-a12b

Baidu Qianfan(qianfan/) — ERNIE:qianfan/ernie-5.1、qianfan/ernie-5.0-thinking-latest、qianfan/ernie-x1.1

Ollama Cloud(ollama-cloud/):ollama-cloud/deepseek-v4-pro、ollama-cloud/deepseek-v4-flash、ollama-cloud/kimi-k2.6、ollama-cloud/glm-5.1、ollama-cloud/minimax-m2.7、ollama-cloud/gemma4:31b、ollama-cloud/qwen3.5:397b

Gemini(Google Cloud gemini/):Google から API キーごとにライブ同期されるため、静的リストはありません。ダッシュボード → プロバイダーでキーを接続し、利用可能なモデルを使用して現在のカタログをインポートしてください(例:gemini/gemini-3-pro、gemini/gemini-3-flash)。

その他の互換プロバイダー(一部):cohere、databricks、snowflake、together、vertex、alibaba、alibaba-cn、bedrock(aws-bedrock 経由)、azure-ai、openrouter(パススルーカタログ)、siliconflow、hyperbolic、huggingface、featherless-ai、cloudflare-ai、scaleway、deepinfra、vercel-ai-gateway、bazaarlink、friendliai、nous-research、reka、volcengine、ai21、gigachat。各プロバイダーは providerRegistry.ts 内で独自のモデルリストを管理しており、プロバイダーが /models エンドポイントを公開している場合は自動同期できます。

モデル ID に関する注意: OmniRoute はプロバイダーネイティブの ID(claude-opus-4-8、gpt-5.5、glm-5.1、MiniMax-M2.7、kimi-k2.5、grok-4.20-0309-reasoning)を使用します。一部の ID にドット区切りのバージョンが含まれているのは、アップストリーム API がその形式を要求しているためです。モデルが上記に記載されていない場合は、omniroute models --search &lt;term&gt; を実行するか、GET /api/models/catalog にアクセスして利用可否を確認してください。


アプリの更新を待たずに、任意のプロバイダーへ任意のモデルIDを追加できます。

ターミナルウィンドウ
# API経由
curl -X POST http://localhost:20128/api/provider-models \
-H "Content-Type: application/json" \
-d '{"provider": "openai", "modelId": "gpt-5.2", "modelName": "GPT-5.2"}'
# 一覧: curl http://localhost:20128/api/provider-models?provider=openai
# 削除: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"

または、ダッシュボードの Providers → [Provider] → Custom Models を使用します。

注意事項:

  • OpenRouterおよびOpenAI/Anthropic互換プロバイダーは、Available Models のみで管理されます。手動追加、インポート、自動同期はすべて同じ利用可能モデル一覧に反映されるため、これらのプロバイダーには独立したCustom Modelsセクションはありません。
  • Custom Models セクションは、管理対象の利用可能モデルをインポートする機能を提供していないプロバイダー向けです。

別のOmniRouteゲートウェイを、Custom OpenAI-compatible プロバイダーとして追加できます。ピアの /v1ベースURLと、そのピアが発行した専用の最小権限APIキーを使用してください。

相互チェーンまたはマルチホップチェーンでは、すべてのゲートウェイでオプトイン方式のループガードを有効にします。

ターミナルウィンドウ
# gateway-a
OMNIROUTE_INSTANCE_ID=gateway-a
OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
ターミナルウィンドウ
# gateway-b
OMNIROUTE_INSTANCE_ID=gateway-b
OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4

明示的に許可リストへ登録されたピアURLに送信されるリクエストのみ、 X-OmniRoute-Peer-Traceヘッダーを受け取ります。ゲートウェイは、インスタンスIDの重複またはホップ 上限の消費を検出するとHTTP 508 Loop Detectedで拒否します。通常のアップストリームプロバイダーにはピアのメタデータは送信されません。

ピアチェーンは、データベースのレプリケーションやホストのフェイルオーバーではありません。各ゲートウェイは独立した SQLiteの状態、キャッシュ、レートカウンター、セッションを保持します。アクティブ/パッシブまたはアクティブ/アクティブ構成で可用性を確保するには、ヘルスチェック付きリバースプロキシまたはクライアント側 フェイルオーバーを使用してください。また、1つのSQLiteデータベースを実行中の複数のOmniRouteインスタンスにマウントしないでください。

モデル検証を行いながら、リクエストを特定のプロバイダーへ直接ルーティングします。

ターミナルウィンドウ
POST http://localhost:20128/v1/providers/openai/chat/completions
POST http://localhost:20128/v1/providers/openai/embeddings
POST http://localhost:20128/v1/providers/fireworks/images/generations

プロバイダーのプレフィックスがない場合は自動的に追加されます。一致しないモデルには400が返されます。

ターミナルウィンドウ
# グローバルプロキシを設定
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# プロバイダーごとのプロキシ
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# プロキシをテスト
curl -X POST http://localhost:20128/api/settings/proxy/test \
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'

優先順位: キー固有 → コンボ固有 → プロバイダー固有 → グローバル → 環境。

ターミナルウィンドウ
curl http://localhost:20128/api/models/catalog

タイプ(chat、embedding、image)とともに、プロバイダー別にグループ化されたモデルを返します。

  • プロバイダー、コンボ、設定をデバイス間で同期
  • タイムアウトとフェイルファストを備えた自動バックグラウンド同期
  • 本番環境ではサーバー側のNEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URLを推奨
  • Dockerおよびその他のセルフホスト環境では、Dashboard → Endpoints から利用可能
  • 現在のOpenAI互換/v1エンドポイントへ転送する、一時的なhttps://*.trycloudflare.com URLを作成
  • 初回の有効化時のみ、必要に応じてcloudflaredをインストールし、それ以降の再起動では同じ管理対象バイナリを再利用
  • Quick Tunnelは、OmniRouteまたはコンテナの再起動後に自動復元されません。必要に応じてダッシュボードから再度有効にしてください
  • トンネルURLは一時的なものであり、トンネルを停止/開始するたびに変更されます
  • 管理対象のQuick Tunnelは、制約のあるコンテナで大量のQUIC UDPバッファー警告が発生するのを避けるため、デフォルトでHTTP/2トランスポートを使用します
  • 管理対象トランスポートの選択を上書きする場合は、CLOUDFLARED_PROTOCOL=quicまたはautoを設定します
  • 管理対象のダウンロードではなく、プリインストール済みのcloudflaredバイナリを使用する場合は、CLOUDFLARED_BINを設定します
  • Cloudflare Quick Tunnel、Tailscale Funnel、ngrok Tunnelの各パネルは、Settings → Appearance で表示または非表示にできます。パネルを非表示にしても、実行中のトンネルは停止しません。

LLMゲートウェイインテリジェンス(フェーズ9)

Section titled “LLMゲートウェイインテリジェンス(フェーズ9)”
  • セマンティックキャッシュ — 非ストリーミングかつtemperature=0のレスポンスを自動的にキャッシュします(X-OmniRoute-No-Cache: trueでバイパス)
  • リクエストの冪等性 — Idempotency-KeyまたはX-Request-Idヘッダーを使用して、5秒以内のリクエストを重複排除します
  • 進捗追跡 — X-OmniRoute-Progress: trueヘッダーを使用して、オプトイン形式のSSE event: progressイベントを有効化します

Dashboard → Translator からアクセスします。OmniRouteがプロバイダー間でAPIリクエストをどのように変換するかをデバッグし、可視化できます。

モード 目的
Playground 変換元/変換先の形式を選択してリクエストを貼り付け、変換結果を即座に確認します
Chat Tester プロキシ経由でライブチャットメッセージを送信し、リクエスト/レスポンスのサイクル全体を確認します
Test Bench 複数の形式の組み合わせに対してバッチテストを実行し、変換の正確性を検証します
Live Monitor リクエストがプロキシを通過する際の変換をリアルタイムで監視します

ユースケース:

  • 特定のクライアント/プロバイダーの組み合わせが失敗する理由をデバッグ
  • 思考タグ、ツール呼び出し、システムプロンプトが正しく変換されることを確認
  • OpenAI、Claude、Gemini、Responses APIの各形式の違いを比較

ダッシュボード → 設定 → ルーティングから設定します。ダッシュボードには最もよく使用される6つの戦略が表示されますが、コンボとオートルーターは内部的により多くの戦略をサポートしています。

ダッシュボードに表示される戦略(アカウントレベルのルーティング):

戦略 説明
Fill First 優先順位に従ってアカウントを使用します。プライマリアカウントが利用できなくなるまで、すべてのリクエストを処理します
Round Robin 設定可能なスティッキー上限(デフォルト:アカウントごとに3回の呼び出し)に従って、すべてのアカウントを順番に使用します
P2C (Power of Two Choices) 2つのアカウントをランダムに選び、より正常な方へルーティングします。正常性を考慮しながら負荷を分散します
Random Fisher-Yatesシャッフルを使用して、リクエストごとにアカウントをランダムに選択します
Least Used lastUsedAtタイムスタンプが最も古いアカウントへルーティングし、トラフィックを均等に分散します
Cost Optimized 優先順位の値が最も低いアカウントへルーティングし、最も低コストのプロバイダーを優先します

高度なコンボ戦略とオート戦略(コンボごと、またはauto/*プレフィックスを介して設定可能です。AUTO-COMBO.mdを参照してください):

  • priority — 厳密な順序で処理し、ラウンドロビンは行いません
  • weighted — モデルごとの重みに基づいてトラフィックを比例配分します
  • fill-first — 上限に達するまで最初のモデルを使い切ります
  • round-robin / strict-random / random
  • p2c(Power of Two Choices)
  • least-usedおよびcost-optimized
  • auto — すべての候補をスコアに基づいて選択します
  • lkgp(Last Known Good Provider)— 最後に成功したプロバイダーへ固定し、その後ルールに従ってフォールバックします
  • context-optimized — 空きコンテキストウィンドウが最も大きいモデルを選択します
  • context-relay — 後続のターン向けに、長いコンテキストを持つモデルを連鎖させます

外部スティッキーセッションヘッダー

Section titled “外部スティッキーセッションヘッダー”

外部セッションアフィニティ(たとえば、リバースプロキシの背後にあるClaude Code/Codexエージェント)を使用するには、次を送信します:

X-Session-Id: your-session-key

OmniRouteはx_session_idも受け付け、有効なセッションキーをX-OmniRoute-Session-Idで返します。

Nginxを使用し、アンダースコア形式のヘッダーを送信する場合は、次を有効にします:

underscores_in_headers on;

ワイルドカードモデルエイリアス

Section titled “ワイルドカードモデルエイリアス”

モデル名を再マッピングするためのワイルドカードパターンを作成します:

パターン: claude-sonnet-* → ターゲット: cc/claude-sonnet-4-6
パターン: gpt-* → ターゲット: gh/gpt-5.3-codex

ワイルドカードでは、*(任意の文字列)と?(任意の1文字)を使用できます。

すべてのリクエストに適用されるグローバルフォールバックチェーンを定義します:

チェーン: production-fallback
1. cc/claude-opus-4-7
2. gh/gpt-5.3-codex
3. glm/glm-4.7

レジリエンスとサーキットブレーカー

Section titled “レジリエンスとサーキットブレーカー”

ダッシュボード → 設定 → レジリエンスから設定します。

OmniRouteは、5つのコンポーネントによるプロバイダーレベルのレジリエンスを実装しています:

  1. リクエストキューとペーシング — システムレベルのリクエスト制御:

    • 1分あたりのリクエスト数(RPM) — アカウントごとの1分あたりの最大リクエスト数
    • リクエスト間の最小時間 — リクエスト間に設ける最小間隔(ミリ秒)
    • 最大同時リクエスト数 — アカウントごとの最大同時リクエスト数
  2. 接続クールダウン — 再試行可能なエラーが発生した後の、単一接続に対する認証タイプ別の設定:

    • 基本クールダウン — 再試行可能なアップストリームエラーに対するデフォルトのクールダウン期間
    • アップストリームの再試行ヒントを使用 — 提供されている場合、信頼できるRetry-Afterまたはリセットヒントに従います
    • 最大バックオフステップ数 — エラーが繰り返された場合の指数バックオフの最大レベル
  3. プロバイダーサーキットブレーカー — プロバイダーのエンドツーエンドの障害を追跡し、設定された警告しきい値に達するとプロバイダーを劣化状態としてマークし、設定された障害しきい値に達するとブレーカーを開きます:

    • 劣化しきい値 — DEGRADEDへ移行するまでの連続したプロバイダー障害の回数
    • 障害しきい値 — OPENへ移行するまでの連続したプロバイダー障害の回数
    • リセットタイムアウト — プロバイダーを再テストするまでの時間
    • CLOSED(正常)— リクエストは通常どおり処理されます
    • DEGRADED — 障害の増加を追跡しながら、リクエストの処理を継続します
    • OPEN — 障害が繰り返されたため、プロバイダーは一時的にブロックされます
    • HALF_OPEN — プロバイダーが回復したかどうかをテストしています

    接続スコープの429レート制限は接続クールダウンで処理され、プロバイダーブレーカーにはカウントされません。

    プロバイダーブレーカーのランタイム状態は、ダッシュボード → ヘルスにのみ表示されます。

  4. クールダウンを待機 — すべての候補接続がすでにクールダウン中の場合、OmniRouteは最も早く終了するクールダウンを待ち、同じクライアントリクエストを自動的に再試行できます。

  5. レート制限の自動検出 — アップストリームプロバイダーが明示的な待機時間を返した場合、この設定が有効であれば、そのヒントがローカル接続のクールダウンより優先されます。

ヒント: 障害発生後に稼働中のプロバイダーブレーカーを確認してリセットするには、ヘルスページを使用してください。レジリエンスページで変更できるのは設定のみです。


データベースのエクスポート/インポート

Section titled “データベースのエクスポート/インポート”

データベースのバックアップは、ダッシュボード → 設定 → システムとストレージで管理します。

アクション 説明
データベースをエクスポート 現在の SQLite データベースを .sqlite ファイルとしてダウンロードします
すべてエクスポート(.tar.gz) データベース、設定、コンボ、プロバイダー接続情報(認証情報を除く)、API キーのメタデータを含む完全なバックアップアーカイブをダウンロードします
データベースをインポート .sqlite ファイルをアップロードして現在のデータベースを置き換えます。DISABLE_SQLITE_AUTO_BACKUP=true でない限り、インポート前のバックアップが自動的に作成されます
ターミナルウィンドウ
# API:データベースをエクスポート
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API:すべてエクスポート(完全なアーカイブ)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API:データベースをインポート
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"

インポートの検証: インポートされたファイルは、整合性(SQLite pragma チェック)、必須テーブル(provider_connections、provider_nodes、combos、api_keys)、およびサイズ(最大 100MB)について検証されます。

ユースケース:

  • OmniRoute をマシン間で移行する
  • ディザスターリカバリー用の外部バックアップを作成する
  • チームメンバー間で設定を共有する(すべてエクスポート → アーカイブを共有)

設定ページは、操作しやすいように 7 個のタブに整理されています:

タブ 内容
一般 システムストレージツール、デフォルト動作、エンドポイントトンネルの表示設定
外観 テーマ制御(ライト/ダーク/システム)、サイドバーの表示設定、Cloudflare/Tailscale/ngrok トンネルカードのパネル切り替え
AI Thinking Budget(パススルー/自動除去/カスタム/適応型 — THINKING_BUDGET.md を参照)、グローバルシステムプロンプト、プロンプトキャッシュ統計
セキュリティ ログイン/パスワード設定、IP アクセス制御、/models の API 認証、プロバイダーのブロック、プロンプトインジェクション対策
ルーティング グローバルルーティング戦略(Fill First/Round Robin/P2C/Random/Least Used/Cost Optimized)、ワイルドカードモデルエイリアス、フォールバックチェーン、コンボのデフォルト
耐障害性 リクエストキュー、接続クールダウン、プロバイダーブレーカー設定、およびクールダウン待機動作
詳細設定 グローバルプロキシ設定(HTTP/SOCKS5)、プロバイダーごとのプロキシオーバーライド

「一般」タブには、読み取り専用のログおよびキャッシュに関する注記が重複して表示されなくなりました。データベースの保持期間と 最適化設定は /api/settings/database を通じて永続化され、手動でのキャッシュ消去には DELETE /api/cache を使用します。リクエストログおよびプロキシログの最大行数は、 CALL_LOGS_TABLE_MAX_ROWS と PROXY_LOGS_TABLE_MAX_ROWS で制御されます。


ダッシュボード → コストからアクセスします。

タブ 目的
予算 API キーごとに日次/週次/月次の予算で支出上限を設定し、リアルタイムで追跡します
価格設定 モデルの価格エントリ(プロバイダーごとの入力/出力トークン 1,000 個あたりのコスト)を表示・編集します
ターミナルウィンドウ
# API:予算を設定
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API:現在の予算状況を取得
curl http://localhost:20128/api/usage/budget

コスト追跡: すべてのリクエストについてトークン使用量が記録され、価格表を使用してコストが計算されます。プロバイダー、モデル、および API キーごとの内訳は、ダッシュボード → 使用状況で確認できます。


OmniRoute は、OpenAI 互換エンドポイントを介した音声文字起こしをサポートしています:

ターミナルウィンドウ
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# curl を使用した例
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@audio.mp3" \
-F "model=openai/whisper-1"

deepgram/nova-3 は Deepgram ネイティブのルートであり、Deepgram API キーが必要です。 OpenRouter のみを設定している場合は、openrouter/deepgram/nova-3 を使用してください。

**音声テキスト変換(文字起こし)**プロバイダー:

  • openai/(Whisper 互換)
  • groq/(Groq Whisper Turbo)
  • deepgram/(Nova ファミリー)
  • assemblyai/
  • nvidia/(Parakeet、Canary)
  • huggingface/(Whisper バリアント)
  • qwen/

**テキスト音声変換(POST /v1/audio/speech)**プロバイダー:

  • openai/(tts-1、tts-1-hd)
  • hyperbolic/
  • deepgram/(Aura)
  • nvidia/(Magpie TTS)
  • elevenlabs/
  • huggingface/
  • inworld/
  • cartesia/
  • playht/
  • kie/
  • aws-polly/
  • xiaomi-mimo/
  • coqui/、tortoise/
  • qwen/

文字起こしでサポートされる音声形式:mp3、wav、m4a、flac、ogg、webm。TTS の出力形式はプロバイダーによって異なります(mp3、wav、opus、pcm、mulaw)。


コンボごとのバランシングは、ダッシュボード → コンボ → 作成/編集 → 戦略で設定します。

戦略 説明
ラウンドロビン モデルを順番に切り替えます
優先順位 常に最初のモデルを試し、エラーが発生した場合にのみフォールバックします
ランダム リクエストごとにコンボからランダムなモデルを選択します
重み付け モデルごとに割り当てられた重みに基づいて比例配分でルーティングします
最少使用 直近のリクエスト数が最も少ないモデルにルーティングします(コンボメトリクスを使用)
コスト最適化 利用可能な最も安価なモデルにルーティングします(料金表を使用)

グローバルなコンボのデフォルト設定は、ダッシュボード → 設定 → ルーティング → コンボのデフォルトで設定できます。 コンボターゲットのタイムアウトは、デフォルトで現在のリクエストタイムアウトを継承します。ターゲットごとの制限時間を短くして より迅速にフォールバックを開始する必要がある場合にのみ、コンボのデフォルト設定または個別のコンボで**ターゲットタイムアウト (秒)**を使用してください。

ゼロレイテンシーのコンボ最適化はオプトインです。これらのレイテンシー機能によってフォールバックターゲットとの競合、 TTFT 履歴に基づくターゲットのスキップ、フォールバックリクエストの圧縮が発生しないようにするには、ゼロレイテンシー最適化を 無効のままにしてください。有効にすると、設定されたヘッジング、予測 TTFT スキップ、プロアクティブなフォールバック圧縮が使用され、ルーティングやリクエストの忠実性と引き換えにテール レイテンシーを低減できます。

上流プロバイダーで厳密な max_tokens / maxOutputTokens 制限が必要な場合は、推論トークンバッファを無効にしてください。有効にすると、コンボルーティングでは、既知の出力上限を持つモデルにのみ推論モデル用の 余裕が追加され、安全なバッファ値がその上限を超える場合はクライアントのトークン制限が変更されません。クライアントの制限が既知の上限をすでに超えている場合、 OmniRoute は上流リクエストを送信する前に、その上限まで制限値を引き下げます。


ダッシュボード → ヘルスからアクセスできます。6 つのカードでシステムの健全性をリアルタイムに確認できます。

カード 表示内容
システムステータス 稼働時間、バージョン、メモリ使用量、データディレクトリ
プロバイダーの健全性 グローバルプロバイダーのサーキットブレーカーの実行時状態
レート制限 アカウントごとの有効な接続クールダウンと残り時間
有効なロックアウト 有効なモデル単位のロックアウトと一時的な除外
シグネチャキャッシュ 重複排除キャッシュの統計(有効なキー、ヒット率)
レイテンシーテレメトリ プロバイダーごとの p50/p95/p99 レイテンシー集計

プロのヒント: ヘルスページは 10 秒ごとに自動更新されます。問題が発生しているプロバイダーを特定するには、サーキットブレーカーカードを使用してください。


🤖 自動ルーティング(設定不要)

Section titled “🤖 自動ルーティング(設定不要)”

OmniRoute には、接続されたすべてのプロバイダーから各リクエストに最適なモデルを選択する、スコア駆動型の自動ルーターが搭載されています。管理が必要なコンボはありません。auto/* プレフィックスのいずれかを指定してリクエストを送信するだけで、OmniRoute がその場で仮想コンボを構築し、レイテンシ、コスト、成功率、コンテキスト適合度、タスクに対するモデルの適性、直近の失敗、クォータ、サーキットブレーカーの状態に基づいて候補をスコアリングします。

プレフィックス 最適化対象
auto バランスの取れたデフォルト(レイテンシ × コスト × 成功率)
auto/coding コーディングタスク:Claude、GPT-5、GLM、Kimi、Qwen Coder、DeepSeek のコーディングモデルを優先
auto/cheap 最低の $/token。レイテンシの増加を許容
auto/fast 最低レイテンシ。コストは無視
auto/offline ローカル専用プロバイダー(Ollama、vLLM、llama.cpp)。エアギャップ環境に有用
auto/smart 推論品質を最優先(Opus、GPT-5 xhigh、R1、GLM 5.1 reasoning)
auto/lkgp 「最後に正常動作したプロバイダー」— 最後に成功したプロバイダーに固定し、その後ルールへフォールバック

例:

ターミナルウィンドウ
curl -X POST http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto/coding",
"messages": [{ "role": "user", "content": "この Python 関数をリファクタリングしてください" }],
"stream": true
}'

自動ルーターの詳細については、AUTO-COMBO.md を参照してください。スコアリングの重みの調整方法、プロバイダーをブラックリストに登録する方法、ダッシュボード → Auto Combo でルーティング判断を確認する方法などが記載されています。


OmniRoute は、MCP サーバー(Model Context Protocol)であると同時に、A2A サーバー(Agent-to-Agent JSON-RPC 2.0)でもあります。MCP 互換の IDE またはエージェントホストから OmniRoute のツールを直接呼び出せます。追加のラッパーは必要ありません。

  • SSE:http://localhost:20128/api/mcp/sse
  • ストリーム対応 HTTP:http://localhost:20128/api/mcp/stream
  • stdio:omniroute --mcp(stdio を使用する IDE プラグイン向け)

macOS では ~/Library/Application Support/Claude/claude_desktop_config.json を、Windows/Linux では対応するファイルを編集します:

{
"mcpServers": {
"omniroute": {
"command": "omniroute",
"args": ["--mcp"]
}
}
}

Cursor / Continue / VS Code MCP への接続

Section titled “Cursor / Continue / VS Code MCP への接続”

SSE URL http://localhost:20128/api/mcp/sse と、ダッシュボード → API Keys で生成した Bearer API キーを使用します。

MCP では現在、名前付きスコープが 32 個定義されています。各 Bearer キーは特定のスコープのみに制限できます。正式なスコープとツールの一覧については MCP-SERVER.md を、JSON-RPC スキーマについては A2A-SERVER.md を参照してください。


OmniRoute は拡張可能なスキルフレームワーク(src/lib/skills/)を公開しており、エージェントや A2A エンドポイントがドメイン固有のルーチン(例:code-review、summarize、extract-facts、web-research)を実行できます。

  • マーケットプレイス UI — ダッシュボード → スキルからスキルを参照してインストール
  • キーごとのスコープ — 各 API キーが呼び出せるスキルを制限
  • カスタムスキル — TypeScript ファイルを src/lib/a2a/skills/ に配置して登録すると、A2A 経由ですぐに呼び出し可能

完全なリファレンス:SKILLS.md。


OmniRoute は、ハイブリッド検索を使用して長期的な会話メモリを永続化します。

  • 過去のターンを対象としたキーワード検索には SQLite FTS5
  • 意味検索には Qdrant vector store(オプション)
  • 自動ファクト抽出 — 各セッション後にエンティティ、設定、決定事項を要約し、memory_facts テーブルに保存
  • メモリは API キーごと、およびセッションごとにスコープ設定

ダッシュボード → メモリでメモリを管理できます(検索、編集、エクスポート、消去)。HTTP インターフェース(/api/memory/*)を使用すると、エージェントはプログラムからファクトを追加・照会できます。詳細は MEMORY.md を参照してください。


リアルタイムの監視と自動化のために、OmniRoute イベントを購読できます。

  • ダッシュボード → Webhookで、ターゲット URL と HMAC 署名シークレットを指定して Webhook を作成
  • 利用可能なイベント:request.completed、request.failed、provider.unavailable、budget.exceeded、combo.switched、circuit_breaker.opened、circuit_breaker.closed
  • すべてのペイロードには、検証用の X-OmniRoute-Signature(HMAC-SHA256)が含まれます
  • 再試行:指数バックオフで 3 回試行後、デッドレターキューへ送信

完全なスキーマは WEBHOOKS.md を参照してください。


OmniRoute はクラウドコーディングエージェント(OpenAI Codex Cloud、Devin、Jules、Antigravity)と統合されており、ローカルルーティングを管理するものと同じダッシュボードから、長時間実行タスクを送信できます。

  • ダッシュボード → クラウドエージェント、または POST /api/v1/agents/tasks を使用してタスクを作成
  • タスクごとにステータス、ログ、アーティファクトを追跡
  • プロバイダーごとに独自の API キーを使用可能 — 認証情報が OmniRoute インスタンスの外部に送信されることはありません

完全なリファレンス:CLOUD_AGENT.md。


manage スコープを持つ Bearer キーを使用して、HTTP 経由ですべての OmniRoute リソース(プロバイダー、コンボ、キー、設定)を管理できます。

ダッシュボード → API キー → 新しいキー → スコープ:manageでキーを生成してから、以下を実行します。

ターミナルウィンドウ
# プロバイダーを一覧表示
curl http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# プロバイダー接続を追加
curl -X POST http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-H "Content-Type: application/json" \
-d '{ "provider": "openai", "apiKey": "sk-...", "name": "main" }'
# コンボを作成
curl -X POST http://localhost:20128/api/combos \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "premium", "strategy": "priority", "models": [{ "model": "cc/claude-opus-4-7" }, { "model": "glm/glm-5.1" }] }'
# API キーを一覧表示/作成
curl http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
curl -X POST http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-d '{ "name": "ci-bot", "scopes": ["chat"] }'

エンドポイントの完全なカタログとリクエスト/レスポンススキーマについては、API_REFERENCE.md を参照してください。


OmniRoute には、セットアップ、診断、ランタイム制御用の内部 CLI(omniroute …)が付属しています。これは、サードパーティー製 CLI(Claude Code、Cursor、Codex、Cline など)が OmniRoute と通信できるように設定する、ダッシュボードの「CLI ツール」ページとは別のものです。

ターミナルウィンドウ
omniroute setup # 対話形式のウィザード(パスワード、プロバイダー、コンボ)
omniroute setup --non-interactive # CI 向け
omniroute doctor # ヘルス診断(データディレクトリ、DB、プロバイダー、ポート)
omniroute providers available # サポートされているプロバイダーを一覧表示
omniroute providers list # 設定済みの接続を一覧表示
omniroute providers test &lt;id&gt; # プロバイダー接続をリアルタイムでテスト
omniroute combos list # コンボを一覧表示
omniroute combos switch &lt;name&gt; # デフォルトのコンボを設定
omniroute models # 利用可能なモデルを一覧表示(--json、--search)
omniroute keys add | list | remove # ターミナルから API キーを管理
omniroute backup # 設定と DB のスナップショットを作成
omniroute restore [&lt;timestamp&gt;] # スナップショットから復元
omniroute health # 詳細なヘルス情報(ブレーカー、キャッシュ、メモリ)
omniroute quota # プロバイダーのクォータ使用量
omniroute mcp status # MCP サーバーのステータス
omniroute a2a status # A2A サーバーのステータス
omniroute tunnel list|create|stop # Cloudflare/Tailscale/ngrok トンネル
omniroute reset-password # 管理者パスワードをリセット
omniroute --mcp # stdio 経由で MCP サーバーを起動
omniroute --port 3000 # カスタムポートでサーバーを起動

ヒント: omniroute doctor --json を監視ツールと組み合わせることで、プロバイダー接続に問題がある場合にアラートを発行できます。


🖥️ デスクトップアプリケーション(Electron)

Section titled “🖥️ デスクトップアプリケーション(Electron)”

OmniRoute は、Windows、macOS、Linux 向けのネイティブデスクトップアプリケーションとして利用できます。

ターミナルウィンドウ
# electron ディレクトリから実行:
cd electron
npm install
# 開発モード(実行中の Next.js 開発サーバーに接続):
npm run dev
# 本番モード(スタンドアロンビルドを使用):
npm start
ターミナルウィンドウ
cd electron
npm run build # 現在のプラットフォーム
npm run build:win # Windows(.exe NSIS)
npm run build:mac # macOS(.dmg ユニバーサル)
npm run build:linux # Linux(.AppImage)

出力先 → electron/dist-electron/

機能 説明
サーバーの準備状態 ウィンドウを表示する前にサーバーをポーリング(空白画面を防止)
システムトレイ トレイへの最小化、ポート変更、トレイメニューからの終了
ポート管理 トレイからサーバーポートを変更(サーバーを自動再起動)
コンテンツセキュリティポリシー セッションヘッダーによる制限的な CSP
単一インスタンス 一度に実行できるアプリインスタンスは 1 つのみ
オフラインモード 同梱の Next.js サーバーはインターネット接続なしで動作
変数 デフォルト 説明
OMNIROUTE_PORT 20128 サーバーポート
OMNIROUTE_MEMORY_MB 512 Node.js のヒープ上限(64~16384 MB)

📖 完全なドキュメント: electron/README.md


OmniRoute ソースコード (a58000c7685f)

HagiCode

HagiCode は構造化ワークフロー、マルチエージェント実行、Hero Dungeon ビューを備えたエージェント型コーディングワークスペースです。

よりスマートで速く、楽しいエージェント型ワークフローで、使いやすいソフトウェアを形にします。

HagiCode ライトテーマのメイン画面
  • Smart構造化ワークフローは意図をアイデアから変更のリリースまで実行可能な道筋にします。
  • Efficientマルチエージェントのワークフローで調査、実装、レビューを並行して進めます。
  • FunHero Dungeon により長時間のコーディングを視覚的で協力的な体験にします。
HagiCode を見る