ドキュメント · プロバイダ
OpenRouter を Claude Code・Codex・Gemini CLI・OpenCode で使う
OpenRouter は多くのベンダーのモデルを一つのキーで提供していて、OpenAI Chat Completions と Anthropic Messages を話します。キーを magpie に一度追加すれば、Claude Code・Codex・Gemini CLI・OpenCode などつないだすべてのツールが、magpie のゲートウェイ 127.0.0.1:3425 経由で OpenRouter のどのモデルでも使えます。ツールごとに別のモデルを選べます。
OpenRouter を追加する
- キーを取得openrouter.ai/keys で作ります。
- プロバイダを追加magpie の プロバイダ で + プロバイダを追加 を押し、OpenRouter を選んでキーを貼り付け、保存します。magpie が OpenRouter に提供モデルを問い合わせます。
- ツールで選ぶエージェント タブで、ツールの行の
anthropic/claude-opus-5.5などの OpenRouter モデルを選びます。
magpie provider add openrouter sk-… magpie provider test openrouter
magpie のモデル ID は プロバイダ/モデル の形なので、OpenRouter のモデルは openrouter/anthropic/claude-opus-5.5 のようになります。前がプロバイダ、後ろが OpenRouter 自身の ID です。キーは magpie の設定に保存され、magpie がシェルから読むことはありません。
OpenRouter のドキュメントには、ランキングにアプリ名を載せるための任意のヘッダー HTTP-Referer と X-OpenRouter-Title があります。magpie は送りません。リクエストをアプリとして記録させたいときは、プロバイダ編集画面の ヘッダー に候補として出るので、そこで追加します。
エンドポイント
| API | ベース URL | 用途 |
|---|---|---|
| Chat Completions | https://openrouter.ai/api/v1 | モデル一覧、Claude 以外のモデルへのリクエスト、画像モデル |
| Anthropic Messages | https://openrouter.ai/api | Claude Code のリクエストと、どのツールからでも Claude のモデル |
| Decisions | https://openrouter.ai/api/v1 | インテントルーティング用の判定モデル |
magpie は OpenRouter の Responses API を使いません。Codex のように Responses を話すツールは、上の二つのどちらかに変換されます。
モデル一覧
- 一覧の出どころ。magpie は
https://openrouter.ai/api/v1/modelsから一覧を取ります。各モデルのコンテキスト長もここから読みます。モデル名・推論レベル・価格は models.dev のopenrouterカタログから来ます。 - ツールに見えるモデル。OpenRouter のモデルは何百もあります。自分で選ばない限り、magpie は OpenRouter の一覧の先頭 24 個(新しい順)をツールに見せます。残りはプロバイダのモデル一覧で選ぶか、系列の最新のみ をオンにして各系列の最新だけに絞ります。
- 新しいモデル。
auto-includeのルールに合うモデルはすぐに加わり、あとで一覧に初めて載ったものも加わります。refresh-everyを設定すると、magpie が一覧を自分で取り直します。 - 画像モデル。OpenRouter の
/modelsにはテキストモデルしか載らないので、FLUX・Seedream・Riverflow・Recraft・GPT Image などの画像モデルは/api/v1/images/modelsから読みます。設定 → モデル → 画像 で選びます。 - 判定モデル。OpenRouter の判定モデル(
liquid/d1、cloudflare/clef、~typesafe/jev-latestなど)も一覧に入るので、ルーティンググループは同じキーで各ターンを分類できます。
magpie provider models openrouter +anthropic/claude-opus-5.5 # 一つ追加で見せる magpie provider models openrouter best # 各系列の最新のみ magpie provider auto-include openrouter '*:free' # 無料モデルを今後の分も含めてすべて magpie provider refresh-every openrouter 1d
ツールごとの使い方
エージェント タブでツールの行のモデルを選ぶか、ターミナルで切り替えます。各ガイドに、magpie がそのツールの設定に何を書くか、どう戻すかがあります。
magpie claude openrouter/anthropic/claude-opus-5.5 magpie codex openrouter/anthropic/claude-opus-5.5 magpie gemini model openrouter/google/gemini-3-pro magpie opencode openrouter/anthropic/claude-opus-5.5
- Claude Code は Anthropic Messages を話し、OpenRouter も
https://openrouter.ai/apiで同じものを話すので、リクエストはそのまま渡されます。Claude Code で他のモデル。 - Codex が話すのは OpenAI Responses だけです。magpie がリクエストと返答を変換し、ストリーミングとツール呼び出しもそのまま使えます。Claude のモデルは OpenRouter の Anthropic エンドポイントへ、それ以外は Chat Completions へ送ります。Codex で他のモデル。
- Gemini CLI は Gemini の API を話します。magpie が Codex と同じように変換します。Gemini CLI で他のモデル。
- OpenCode は Chat Completions を話すので、リクエストはそのまま OpenRouter に渡ります。ただし Claude のモデルは、プロンプトキャッシュのために magpie が Anthropic エンドポイントへ送ります(下を参照)。OpenCode で他のモデル。
magpie が選んだエンドポイントでそのモデルは提供していないと OpenRouter が答えた場合、magpie はもう一方のエンドポイント向けにリクエストを作り直し、そのモデルについて覚えておきます。
推論
- 推論を切れないモデル。OpenRouter には推論をオフにできないモデルがあります(“reasoning is mandatory for this endpoint and cannot be disabled”)。ツールがオフを求めると、magpie はその指定を外し、レベルをモデルに任せてもう一度問い合わせます。Chat Completions でも Messages でも同じです。
- 会話途中の推論の強さ。Claude Code はターンごとの推論の強さを会話の中で送ります。OpenRouter の Anthropic エンドポイントは DeepSeek や GLM などのモデルでこれを拒否します。magpie はすぐにそれを外して問い合わせ直し、magpie を再起動するまで OpenRouter には送りません。
- 前の思考。OpenRouter の Anthropic エンドポイントは署名のない思考ブロックを受け付けないので、magpie は必ず署名を付けて送ります。Chat Completions では、ツールが送り返す OpenRouter の
reasoningやreasoning_detailsを、モデルの前の思考として読みます。
キャッシュ・費用・残高
- Claude のプロンプトキャッシュ。両方の API を提供する中継サービスは Chat Completions で
cache_controlを落とすため、毎ターンがキャッシュなしで課金されます。そこで magpie は、どのツールからでも Claude のモデルは OpenRouter の Messages エンドポイントに、変換時に加えるキャッシュのブレークポイント付きで送ります。 - キャッシュのトークン。magpie は返答ごとにキャッシュの読み出しと OpenRouter の
cache_write_tokensを読み、使用量 タブでキャッシュのヒットと書き込みを分けて数えます。 - 費用。使用量タブは、models.dev にある OpenRouter の価格で呼び出しごとの費用を出します。カタログにない場合はモデルのメーカーの定価を使います。
:freeで終わるモデルなど 0 ドルのモデルには、magpie のモデル選択で 無料 と表示されます。 - どこが答えたか。OpenRouter は返答ごとに、それを処理したプロバイダを示します。magpie はそれを記録し、使用量タブの呼び出しの詳細に 上流プロバイダー として表示します。
- 残高。OpenRouter の行に、アカウントの残りがドルで表示されます。
/api/v1/creditsから読んだ、チャージ総額から使用総額を引いた額です。アカウント全体の数字なので、同じアカウントのキーはどれも同じ額になります。
複数のキーと無料モデル
一つの OpenRouter プロバイダに複数のキーを入れられます。その下の 別のキーを追加 を押すか、まとめて貼り付けます。リクエストはオンになっている最初のキーに行き、そのキーが尽きるかレート制限にかかると次のキーが引き継ぎます。プロバイダのルーティングを、順番に回す・重みで分ける・一つを使い切ってから次へ、に変えることもできます。プリセットをもう一度追加すると OpenRouter プロバイダが二つになります。複数のキーにリクエストを分けたいときは、すべて同じプロバイダに入れてください。
- 支出上限。
spend-capで、キーごとに 1 日・1 か月・累計のドル上限を決められます。金額は使用量タブの計算で数え、上限に達するとルーティングはほかのキーとフォールバックに移ります。 - フォールバック。
fallbackで、OpenRouter の枠が尽きたときや落ちたときの行き先を決めます。別のプロバイダのモデルか、ルーティンググループです。 - 無料モデル。OpenRouter の無料モデルは 1 分あたり 20 リクエストまでです。
rpmでキーごとの速さを抑えられます。超えた分は空きを待ち、2 分待っても空かなければRetry-After付きの 429 になります。 - 無料モデルの 429。無料モデルを提供しているプロバイダの共有プールに断られた場合、magpie はそのモデルだけを休ませ、ほかの無料モデルは使い続けます。無料モデルのそれ以外の 429 は OpenRouter のアカウント全体の無料枠によるもので、キーが休みます。
- 無料モデルのプール。ルーティンググループに
openrouter/*:freeというパターンを入れると、OpenRouter が載せている無料モデルがすべて入ります。あとから載ったものも加わります。
magpie provider rpm openrouter 20 magpie provider spend-cap openrouter <key> 20 month magpie provider fallback openrouter deepseek/deepseek-v4-pro magpie group add my-free-pool models='openrouter/*:free' routing=order magpie group set opus-anywhere stays=session models+=openrouter/anthropic/claude-opus-5.5
うまくいかないとき
- モデル一覧が
anthropic/で始まる ID ばかり、または取得できない。https://openrouter.ai/apiだけを持つプロバイダには、OpenRouter がanthropic/の下に並べたカタログが返りますが、その ID では提供していません。Chat Completions のベース URLhttps://openrouter.ai/api/v1を足すか、両方を持つ OpenRouter プリセットを使ってください。 - “Mid-conversation reasoning effort (configuration_update) is not supported”。DeepSeek や GLM などのモデルで、Claude Code のターンごとの推論の強さを OpenRouter が拒否したときのエラーです。magpie はすぐにそれを外して問い合わせ直すのでツールには返答が届き、magpie を再起動するまで OpenRouter には送りません。
- 402 で “can only afford” や “fewer max_tokens”。OpenRouter が断ったのはリクエストの大きさか処理中のリクエストの予算で、残高切れではありません。magpie はそのキーを 30 分休ませてから試します。残高切れのキーと違い、断られるたびに休みが長くなることはありません。
- Web 検索で選んでいないモデルが使われる?使われません。magpie の Web 検索に OpenRouter が答えるときは、選んである OpenRouter のモデルだけを使います。OpenRouter は地域によってほかのモデルを断ることがあるからです。その検索では OpenRouter 自身の
webプラグインをオンにし、これはどのモデルでも使えます。 - キーの確認。
magpie provider test openrouterは各エンドポイントに、または指定した各モデルに小さなリクエストを送ります。--as codexや--as claude-codeを付けると、そのツールと同じ形で送ります。
よくある質問
Claude Code で OpenRouter を使うには?
magpie に OpenRouter のキーを追加し(プロバイダ、プロバイダを追加、OpenRouter)、Claude Code の行で anthropic/claude-opus-5.5 などのモデルを選ぶか、magpie claude openrouter/anthropic/claude-opus-5.5 を実行します。magpie が Claude Code の settings.json を書き、リクエストはそのまま OpenRouter の Anthropic エンドポイントに渡されます。
Codex で OpenRouter のモデルは使えますか?
使えます。Codex が話すのは Responses API だけで、magpie は OpenRouter の Responses API を使いません。そこで magpie が Codex のリクエストを一つずつ変換します。Claude のモデルは OpenRouter の Anthropic エンドポイントへ、それ以外は Chat Completions へ送り、返答は Responses に戻して Codex に渡します。
Gemini CLI と OpenCode で OpenRouter は使えますか?
使えます。Gemini CLI のリクエストは Codex と同じように変換されます。OpenCode は Chat Completions を話すので、リクエストはそのまま OpenRouter に渡ります。ただし Claude のモデルだけは、プロンプトキャッシュが効くように magpie が Anthropic エンドポイントへ送ります。
OpenRouter の無料モデルだけを使うには?
openrouter/*:free というパターンでルーティンググループを作ります。たとえば magpie group add my-free-pool models='openrouter/*:free' routing=order。OpenRouter が載せている無料モデルがすべて入り、あとから載ったものも加わります。0 ドルのモデルには magpie のモデル選択で 無料 と表示されます。
OpenRouter の無料モデルが 429 を返すのはなぜ?
OpenRouter の無料モデルは 1 分あたり 20 リクエストまでです。magpie provider rpm openrouter 20 を実行すると、magpie がリクエストをその速さに抑えます。429 が無料モデルを提供しているプロバイダの共有プールから来た場合、magpie はそのモデルだけを休ませ、ほかの無料モデルは使い続けます。
magpie で OpenRouter の残高は見られますか?
見られます。magpie は OpenRouter の credits エンドポイントを読み、残りをドルで表示します。チャージ総額から使用総額を引いた額です。アカウント全体の数字なので、同じアカウントのキーはどれも同じ額になります。
magpie が OpenRouter のモデル一覧を /api/v1 から取るのはなぜ?
Anthropic のベース URL で一覧を求めると、OpenRouter は anthropic/ の下に並べたカタログを返しますが、その ID では提供していません。magpie は Chat Completions のベース URL https://openrouter.ai/api/v1 から一覧を取り、OpenRouter の Anthropic のベース URL しかないプロバイダには、この Chat の URL を足すよう案内します。
プロバイダ別:DeepSeek · Kimi と Kimi Code · GLM Coding Plan · Qwen · MiniMax · Gemini · Grok · Mistral · GitHub Copilot · Ollama
ツールごとのガイド:Claude Code で他のモデル、Codex で他のモデル、Gemini CLI で他のモデル、OpenCode で他のモデル。困ったときは Discord で質問してください。