ローカルファーストを離れずに、Jan にクラウドのカタログモデルを追加する。

Updated 2026-07-29

Jan は設計上、モデルをあなたのマシン上で動かしますが、Model Providers の設定は、ローカルだけでは足りない日のために、任意の OpenAI 互換エンドポイントを受け付けます。プロバイダーを追加し、Base URL を https://api.apisrouter.com/v1 に設定し、キーを1つ貼り付ければ、Claude・GPT・Gemini・DeepSeek の id が、あなたのローカルのラインナップに加わります。

早わかり: Settings にプロバイダーを1つ。

Jan の Settings を開き、Model Providers に進みます。プロバイダーリストの横にあるプラスボタンをクリックしてカスタムプロバイダーを追加し、名前を付けます(APIsRouter)。最近のビルドでは、ダイアログが尋ねてきたら OpenAI API format を選んでください(Jan v0.8.1 で OpenAI か Anthropic を選ぶフォーマットセレクターが追加されました。ゲートウェイの場合は OpenAI を選びます)。次に、重要な2つのフィールドを埋めます。Base URL は https://api.apisrouter.com/v1、そしてあなたの API キーです。 欲しいモデルを id で追加してください。Jan のドキュメントは、id プロパティがエンドポイントの提供するモデル名と一致しなければならないと明記しているため、記憶で入力するのではなく、カタログの一覧(claude-sonnet-4-6、gpt-5.4-mini、gemini-3.5-flash)から id をコピーしてください。保存すれば、ローカルで動かしているものと並んで、その id がモデルセレクターに現れます。ラベルはリリースごとに変わってきました(古いバージョンではこの領域を Remote Engines と呼んでいました)。そのため、プロバイダー・フォーマット・URL・キー・モデルという骨格の方を安定した部分として扱ってください。

Name:        APIsRouter
API Format:  OpenAI          (v0.8.1+ selector)
Base URL:    https://api.apisrouter.com/v1
API Key:     sk-YOUR-APISROUTER-KEY

Models: add ids that match the endpoint, e.g.
  claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash

Jan がリモートプロバイダーをどう扱うか。

Jan(GitHub 上では menloresearch、スター数はおよそ44K)は、ローカルファーストのデスクトップクライアントです。モデルはあなたのマシンにダウンロードされ、llama.cpp を通じて動き、オフラインでも機能します。アプリ自体が、他のツール向けに http://127.0.0.1:1337/v1 で独自の OpenAI 互換サーバーを公開してさえいます。リモートプロバイダーは、ローカルで動かすには大きすぎるモデルや、フロンティア級の品質に値するタスクのための、意図的な第二のレーンです。 OpenAI フォーマットのカスタムプロバイダーは、素朴なエンドポイントの記述です。base URL、キー、宣言されたモデル id です。それらの id に対する会話は、id を model 文字列とした標準的なチャット補完リクエストとして出ていくため、マルチベンダーのゲートウェイにはエントリが1つだけ必要です。丁寧な文章には Claude、ボリュームのある要約には DeepSeek、速さには Gemini。それらすべての裏に、キーは1つです。 思想的な相性は、最初に思うよりも良いものです。ローカルファーストのユーザーは、何がマシンの外に出ていくかについて慎重である傾向があり、ゲートウェイはリモートのレーンを同じくらい意図的なものに保ちます。ファイアウォールで守るエンドポイントは1つ、読む利用ログは1つ、そして何かを外に送ると自分で選んだときだけ動く残高が1つです。ローカルのレーンについては何も変わりません。ダウンロードしたモデルは、以前とまったく同じようにオフラインで動き続けます。

モデルの宣言: id という契約。

Jan は、カスタムエンドポイントのカタログを代わりに取得してくれるわけではありません。宣言したモデルこそが手に入るモデルであり、id が契約です。正しい綴りは、バージョンサフィックスも含めて、ゲートウェイの /v1/models の一覧から得られます。一覧からずれた id を宣言すると、そのモデルが選択されたときにだけ not-found エラーが発生し、文字列を比較するまでは、不安定なプロバイダーのように見えてしまいます。 意図的に宣言してください。ローカルファーストのピッカーは、リモートの行が少数で目的が明確なときに最もよく機能します。日常的なリモートのやり取り向けの速い id を1つ(gpt-5.4-mini や claude-haiku-4-5-20251001)、マシンを離れる価値のある作業向けのフロンティア id を1つ(claude-sonnet-4-6)、そしてあなたのワークロードに値する専門家役を何か(長い多言語の要約には deepseek-v4-flash、レイテンシが決め手なら gemini-3.5-flash)。行はあとから簡単に追加できます。カタログをまるごと貼り付けたものは、毎日スクロールして通り過ぎるだけのノイズです。 Jan のローカル API サーバーを使って他のツールに提供している場合も、頭の中の整理は明確にしておいてください。そのサーバーは、Jan が 127.0.0.1:1337/v1 でプロバイダーとして振る舞っているものです。カスタムプロバイダーのエントリは、Jan がクライアントとして振る舞っているものです。この2つは独立しており、一方を設定してももう一方には一切影響しません。

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# declare these ids verbatim in the provider's model list

どの会話がマシンの外に出るかを選ぶ。

リモートの利用は前払いでキーごとに計測されるため、リモートレーンのコストは、推測するサブスクリプションではなく、読める数字です。1か月分の実際の使い分けを走らせれば、利用ログが、マシンを離れることに実際いくらかかるかを、モデルごと・日ごとに正確に教えてくれます。

  • 日常的なリモートのやり取り、ちょっとした質問、書き直し、翻訳は、速いティアに属します。gpt-5.4-mini と claude-haiku-4-5-20251001 は素早く答え、残高をほとんど動かしません。
  • claude-sonnet-4-6 は、ローカルモデルが明らかに担えない作業のためのステップアップです。長く丁寧な下書き、繊細なコードレビュー、他人に転送する分析などです。
  • gemini-3.5-flash はレイテンシでその行に値します。短い対話的なやり取りでは、ローカルモデルの応答性に最も近く感じられます。
  • deepseek-v4-flash は、小さなローカルモデルには渡さないような長いドキュメントの要約向けのボリューム選択です。
  • 本当にプライベートな素材はローカルモデルだけにとどめてください。レーンの分離こそが、そもそも Jan を動かすことの意味だからです。

従量課金 · 公式価格より安い

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

モデル公式価格当社価格
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.4 mini$0.75 / $4.50 per M$0.60 / $3.60 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

Jan に特有の失敗パターン。

特定のモデルに対する not-found エラーは、id という契約の問題です。宣言した id が、エンドポイントの綴りと一致していません。/v1/models の出力と1文字違わず比較してください。 すべてのリクエストで認証が失敗する場合はキーフィールドの問題です。保存はできても一切応答しないプロバイダーは、たいてい Base URL の問題を抱えています。/v1 サフィックスは必須です。Jan は与えたベースに /chat/completions のようなルートパスを付け足すため、セグメントが重複していたり欠けていたりすると 404 になります。 プロバイダーが古いビルドで作成された場合は、API format を確認してください。v0.8.1 で OpenAI か Anthropic を選ぶセレクターが導入され、ゲートウェイのエントリが誤って Anthropic フォーマットに設定されていると、/v1/chat/completions エンドポイントに対して間違った方言で話してしまいます。 そして、どちらのレーンをデバッグしているのかを忘れないでください。ローカルモデルの失敗(VRAM、量子化、llama.cpp の設定)とリモートの失敗(URL、キー、id)は、チャットウィンドウを共有するだけで、それ以外は何も共有しません。モデルセレクターが、失敗した会話がどちらのレーンに属するかを、間違った糸を引っ張り始める前に示してくれます。

ゲートウェイのレーンを Jan に追加するのは誰か。

  • ローカルファーストのユーザーで、たまにフロンティア級の品質が必要になり、そのたまのレーンを、ベンダーのサブスクリプションではなく前払い残高にしたい人。
  • 大きなローカルモデルをうまく動かせないマシンを使う開発者で、Jan をインターフェースとして、重い処理はゲートウェイに任せたい人。
  • プライバシーに慎重なユーザーで、ベンダーごとに1つではなく、考慮・ファイアウォール・監査すべきリモートエンドポイントをちょうど1つにしたい人。
  • 実際のタスクでローカルとクラウドの出力を比較する人で、リモートの候補が新しいアカウントではなく宣言された行で済む人。
  • 特定ベンダーの請求手段にアクセスできない開発者。チャージ制でカード不要のアクセスなら、プロバイダーごとのサインアップという依存を取り除けます。

エンドポイントを検証し、最初のリモートのやり取りをデバッグする。

まずモデル一覧と1回のチャット補完を curl で確認してください。両方が通れば、残るものはすべてプロバイダーのエントリの中にあります。これは同時に、宣言すべき正確な id の綴りも教えてくれます。 Jan の中では、速いリモート id で1つ短いメッセージを送ってみてください。認証エラーはキーの問題、not-found は id の問題、無反応や 404 は Base URL の形の問題です。リモートのレーンは動くもののフロンティア id で遅く感じる場合、それは設定の問題ではなくモデルのレイテンシです。推論モデルは長いやり取りに時間をかけます。 リモートのやり取りが流れ始めたら、APIsRouter コンソールがリクエストごとのモデル、トークン数、支出を表示します。ローカルファーストのユーザーにとって、このログは格別に満足度の高い読み物です。マシンから外に出ていったすべてのものの完全な記録であり、モデルごと・日ごとに、そしてローカルのレーンはそこに一切寄与しません。

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.4-mini",
       "messages":[{"role":"user","content":"ping"}]}'

よくある質問

Jan にカスタムの OpenAI 互換プロバイダーを追加するには?

Settings、Model Providers と進み、プラスボタンでプロバイダーを追加します。名前を付け、尋ねてくるビルド(v0.8.1 以降)では OpenAI API format を選び、Base URL を https://api.apisrouter.com/v1 に設定し、キーを貼り付け、エンドポイントの一覧と一致するモデル id を宣言します。

宣言したモデルが not-found を返すのはなぜですか?

Jan は宣言した id を、そのまま model 文字列として送ります。そのドキュメントは、id がエンドポイントのモデル名と正確に一致することを求めています。記憶で id を入力するのではなく、/v1/models の一覧を取得し、バージョンサフィックスも含めて綴りをコピーしてください。

リモートプロバイダーを追加すると、ローカルモデルの動作は変わりますか?

いいえ。ローカルモデルは、オフラインも含めて、llama.cpp を通じてデバイス上で動き続けます。プロバイダーのエントリは、セレクターに別のリモートレーンを追加するだけであり、リモートの id を選んだときだけ会話がネットワークに触れます。

Base URL に /v1 を含めるべきですか?

はい。https://api.apisrouter.com/v1 です。Jan は設定したベースに /chat/completions のようなルートを付け足すため、/v1 が欠けていても、重複していても 404 になります。リクエストが失敗する場合は、他を変更する前に、エラーに含まれる合成後の URL を確認してください。

Jan は1つのプロバイダーエントリで Claude と Gemini に届きますか?

はい。OpenAI フォーマットでは、モデル id はプレーンな文字列として運ばれるため、claude-sonnet-4-6、gemini-3.5-flash、gpt-5.4-mini、deepseek-v4-flash はすべて1つのエントリの下で宣言でき、キー1つで課金され、会話ごとに切り替えられます。

これは Jan のローカル API サーバーと同じものですか?

いいえ。127.0.0.1:1337/v1 にあるローカルサーバーは、Jan が自身のローカルモデルを他のツールに提供しているものです。カスタムプロバイダーのエントリは、Jan がリモートエンドポイントを消費しているものです。この2つは独立した機能であり、たまたま OpenAI のワイヤーフォーマットを共有しているだけです。