Show HN: Miser – コスト最適化AIゲートウェイ
Miserは、OpenRouterを通じてOpenAI互換のリクエストを最も安価な利用可能モデルにルーティングする、Rust製のオープンソースAIゲートウェイです。ヒューリスティック、ローカルLLM、クラウドLLM、ハイブリッドの分類モードを備え、ステートレスでストリーミング応答を透過的に転送します。READMEではセットアップ、評価、APIキー管理、堅牢なデプロイ方法を紹介しています。
Show HNで公開されたMiserは、Rust製のオープンソースAIゲートウェイです。OpenRouterを通じてOpenAI互換のリクエストを、その時点で利用可能な最安の適切なモデルにルーティングし、LLM呼び出しのコストを最適化します。ゲートウェイはステートレスで、OpenAIリクエストの未知のフィールドを保持し、ストリーミング応答を転送します。ルーティングのメタデータはx-miser-*ヘッダーで公開されます。
分類モードは4つあります。heuristicはゼロコストでローカルの構造解析と正規表現により分類します。local_llmはOpenAI互換のOllamaやローカルエンドポイントを使用します。cloud_llmはクラウド上の分類器を呼び出します。hybridは最初にヒューリスティック判定を行い、不確かな場合のみローカル/クラウドへフォールバックする方式です(各フォールバックには独立した期限が設定されています)。デフォルトのhybridモードは保守的で、ヒューリスティックの信頼度が高い場合にはその結果を採用し、モデル呼び出しは曖昧なリクエストに限定されます。
ローカルで実行するには、config/miser.env.example を .env にコピーし、OPENROUTER_API_KEYを設定した上で cargo run -p miser-gateway -- --config config/miser.toml を実行します。OpenCodeから利用する設定例もあり、baseURLを http://127.0.0.1:8787/v1、モデルをmiser/autoに指定します。エンドポイントは POST /v1/chat/completions、GET /v1/models、GET /health/live、GET /health/ready が用意されています。
評価用に版管理されたコーパス evals/cases.jsonl があり、cargo run -p miser-evals -- --mode heuristic で実行できます。評価結果は完全一致精度、隣接階層精度、混同行列として出力されます。2026年8月9日に実施されたVPSベンチマーク(2 vCPU、7.8 GiB RAM、GPUなし)では、Rustのヒューリスティック戦略が25件中92.0%の完全一致精度を達成し、隣接精度も92.0%、アンダールーティング0.0%、失敗0件でした。
APIキーは管理用エンドポイントで作成・一覧表示・削除できます。作成はPOST /admin/keys、一覧はGET /admin/keys、削除はDELETE /admin/keys/{key_id}です。キーは毎リクエストで定数時間ハッシュ比較により検証され、生のキーは作成時に一度だけ返されます。クライアントから使う場合は baseURL を https://miser.rajeev.me/v1 にし、miser_ で始まるキーを apiKey に指定します。
デプロイ用には非rootイメージを生成するDockerfileと、hardening済みのsystemdユニット deploy/miser.service が同梱されています。サーバーには config/miser.toml とモード600の環境ファイル(OPENROUTER_API_KEYを含む)を配置します。元のBun/TypeScriptプロトタイプは prototypes/typescript に保存されており、比較・移行の参考にできます。開発は cargo fmt、check、test、clippy を使用し、ライセンスはMITです。