Voeg cloud-catalogusmodellen toe aan Jan zonder local-first te verlaten.

Updated 2026-07-29

Jan draait modellen op je eigen machine per ontwerp, en zijn Model Providers-instellingen accepteren elk OpenAI-compatibel endpoint voor de dagen waarop lokaal niet genoeg is: voeg een provider toe, zet de Base URL op https://api.apisrouter.com/v1, plak één sleutel, en Claude-, GPT-, Gemini- en DeepSeek-ID's voegen zich bij je lokale line-up.

Snel antwoord: één provider in Settings.

Open de Settings van Jan en ga naar Model Providers. Klik op de plus-knop naast de providerlijst om een aangepaste provider toe te voegen, geef hem een naam (APIsRouter), en kies op recente builds het OpenAI API-formaat wanneer de dialoog daarnaar vraagt (Jan v0.8.1 voegde een OpenAI-of-Anthropic-formaatkiezer toe; kies voor een gateway OpenAI). Vul dan de twee velden in die ertoe doen: Base URL https://api.apisrouter.com/v1 en je API-sleutel. Voeg de modellen toe die je wilt, per ID: de documentatie van Jan is expliciet dat de eigenschap id moet overeenkomen met de modelnaam die het endpoint bedient, dus kopieer ID's uit de catalogusvermelding (claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash) in plaats van uit het geheugen te typen. Sla op, en de ID's verschijnen in de modelkiezer naast wat je lokaal draait. Labels zijn tussen releases verschoven (oudere versies noemden dit gebied Remote Engines), dus behandel provider, formaat, URL, sleutel, modellen, als het stabiele skelet.

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

Hoe Jan externe providers behandelt.

Jan (menloresearch op GitHub, ruim 44K sterren) is de local-first desktopclient: modellen worden gedownload naar je machine, draaien via llama.cpp, en werken offline, waarbij de app zelfs zijn eigen OpenAI-compatibele server aanbiedt op http://127.0.0.1:1337/v1 voor andere tools. Externe providers zijn de bewuste tweede rijstrook, voor modellen te groot om lokaal te draaien of taken die frontier-kwaliteit verdienen. Een aangepaste provider in het OpenAI-formaat is een simpele endpoint-beschrijving: base URL, sleutel, gedeclareerde model-ID's. Gesprekken tegen die ID's vertrekken als standaard chat-completions-verzoeken met het ID als model-string, dus een multi-vendor gateway heeft precies één vermelding nodig. Claude voor zorgvuldig schrijven, DeepSeek voor volumesamenvatting, Gemini voor snelheid, één sleutel achter dat alles. De filosofische aansluiting is beter dan hij op het eerste gezicht klinkt. Local-first-gebruikers zijn doorgaans doelbewust over wat de machine verlaat, en een gateway houdt de externe rijstrook even doelbewust: één endpoint om te firewallen, één gebruikslogboek om te lezen, één saldo dat alleen beweegt wanneer je koos om iets naar buiten te sturen. Niets aan de lokale rijstrook verandert; je gedownloade modellen blijven precies zoals voorheen offline werken.

Modellen declareren: het ID-contract.

Jan haalt de catalogus van een aangepast endpoint niet zelf op; de modellen die je declareert zijn de modellen die je krijgt, en het ID is het contract. De gezaghebbende spelling komt van de /v1/models-lijst van de gateway, versiesuffixen inbegrepen. Een gedeclareerd ID dat afwijkt van de lijst produceert not-found-fouten alleen wanneer dat model wordt geselecteerd, wat aanvoelt als een wispelturige provider tot je de strings vergelijkt. Declareer doelbewust. Een local-first kiezer werkt het best wanneer de externe rijen weinig en doelgericht zijn: één snel ID voor alledaagse externe beurten (gpt-5.4-mini of claude-haiku-4-5-20251001), één frontier-ID voor het werk dat het verlaten van de machine rechtvaardigt (claude-sonnet-4-6), en welke specialist je workload ook verdient (deepseek-v4-flash voor lange meertalige samenvattingen, gemini-3.5-flash wanneer latentie de feature is). Elke rij is later makkelijk toe te voegen; een geplakte volledige catalogus is ruis waar je dagelijks langs scrolt. Als je ook de lokale API-server van Jan gebruikt om andere tools te bedienen, houd het mentale model dan zuiver: die server is Jan die een provider is op 127.0.0.1:1337/v1; de aangepaste providervermelding is Jan die een client is. De twee zijn onafhankelijk, en het configureren van de een heeft nooit invloed op de ander.

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

Kiezen welke gesprekken de machine verlaten.

Omdat extern gebruik vooruitbetaald en per sleutel gemeten is, zijn de kosten van de externe rijstrook een getal dat je leest, geen abonnement waar je naar gist. Draai een maand van je echte verdeling en het gebruikslogboek vertelt je precies wat het verlaten van de machine kost, per model, per dag.

  • Alledaagse externe beurten, snelle vragen, herschrijvingen, vertalingen, horen bij de snelle laag: gpt-5.4-mini en claude-haiku-4-5-20251001 antwoorden snel en houden het saldo bijna stil.
  • claude-sonnet-4-6 is de opstap voor werk dat een lokaal model zichtbaar niet aankan: lang zorgvuldig opstellen, subtiele codebeoordeling, analyse die je doorstuurt.
  • gemini-3.5-flash verdient zijn rij op latentie; voor korte interactieve beurten voelt het het dichtst aan bij de responsiviteit van een lokaal model.
  • deepseek-v4-flash is de volumekeuze voor het samenvatten van lange documenten die je niet aan een klein lokaal model zou voeren.
  • Houd echt privé materiaal volledig op lokale modellen; de splitsing tussen rijstroken is het hele punt van Jan draaien.

Betaal naar gebruik · onder officiële prijzen

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

ModelOfficiële prijsOnze prijs
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

Faalmodi specifiek voor Jan.

Not-found-fouten op een specifiek model zijn het ID-contract: het gedeclareerde ID komt niet overeen met de spelling van het endpoint. Vergelijk karakter voor karakter met de /v1/models-output. Authenticatiefouten bij elk verzoek zitten in het sleutelveld. Een provider die opslaat maar nooit antwoordt, heeft meestal een Base URL-probleem: het /v1-suffix moet aanwezig zijn, aangezien Jan routepaden zoals /chat/completions toevoegt aan de base die je opgeeft, en een verdubbeld of ontbrekend segment geeft 404. Als de provider is aangemaakt op een oudere build, controleer dan het API-formaat: v0.8.1 introduceerde de OpenAI-of-Anthropic-kiezer, en een gatewayvermelding die per ongeluk op het Anthropic-formaat staat, spreekt het verkeerde dialect tegen een /v1/chat/completions-endpoint. En onthoud welke rijstrook je debugt. Fouten van lokale modellen (VRAM, kwantisatie, llama.cpp-instellingen) en externe fouten (URL, sleutel, ID's) delen een chatvenster maar verder niets; de modelkiezer toont tot welke rijstrook een falend gesprek behoort voordat je aan de verkeerde draad begint te trekken.

Wie voegt een gatewayrijstrook toe aan Jan.

  • Local-first-gebruikers die af en toe frontier-kwaliteit nodig hebben en die incidentele rijstrook willen op een vooruitbetaald saldo in plaats van een leveranciersabonnement.
  • Developers op machines die grote lokale modellen niet goed kunnen draaien, die Jan gebruiken als interface en de gateway voor het zware werk.
  • Privacy-bewuste gebruikers die precies één extern endpoint willen om over na te denken, te firewallen en te controleren, in plaats van één per leverancier.
  • Mensen die lokale versus cloud-output vergelijken op echte taken, waar de externe kandidaten gedeclareerde rijen zijn, geen nieuwe accounts.
  • Developers zonder toegang tot de facturering van een bepaalde leverancier. Toegang op basis van opwaarderen zonder kaartvereiste verwijdert de aanmeldingsafhankelijkheid per provider.

Verifieer het endpoint en debug de eerste externe beurt.

Curl eerst de modellenlijst en één chat completion; als beide slagen, zit alles wat overblijft in de providervermelding. Dit geeft je ook meteen de exacte ID-spellingen om te declareren. Stuur binnen Jan één kort bericht op het snelle externe ID. Authenticatiefouten zijn de sleutel; not-found is het ID; stilte of 404's zijn de Base URL-vorm. Als de externe rijstrook werkt maar traag aanvoelt op het frontier-ID, is dat modellatentie, geen configuratieprobleem; redeneermodellen nemen hun tijd bij lange beurten. Zodra externe beurten vloeien, toont de APIsRouter-console model per verzoek, tokenaantallen en uitgaven. Voor een local-first-gebruiker is dit logboek ongewoon bevredigende lectuur: het is het complete verslag van alles wat ooit de machine verliet, per model, per dag, met de lokale rijstrook die er precies niets aan bijdraagt.

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"}]}'

Veelgestelde vragen

Hoe voeg ik een aangepaste OpenAI-compatibele provider toe aan Jan?

Settings, Model Providers, dan de plus-knop om een provider toe te voegen. Geef hem een naam, kies het OpenAI API-formaat op builds die daarnaar vragen (v0.8.1+), zet Base URL op https://api.apisrouter.com/v1, plak je sleutel, en declareer model-ID's die overeenkomen met de lijst van het endpoint.

Waarom geeft mijn gedeclareerde model not-found terug?

Jan stuurt het gedeclareerde ID verbatim als model-string, en de documentatie vereist dat het ID exact overeenkomt met de modelnaam van het endpoint. Haal de /v1/models-lijst op en kopieer de spelling, versiesuffixen inbegrepen, in plaats van ID's uit het geheugen te typen.

Verandert het toevoegen van een externe provider hoe lokale modellen werken?

Nee. Lokale modellen blijven op het apparaat draaien via llama.cpp, offline inbegrepen. De providervermelding voegt een aparte externe rijstrook toe aan de kiezer, en gesprekken raken het netwerk alleen wanneer je een extern ID kiest.

Moet de Base URL /v1 bevatten?

Ja: https://api.apisrouter.com/v1. Jan voegt routes zoals /chat/completions toe aan de base die je configureert, dus een ontbrekende /v1 geeft 404 en een verdubbelde ook. Als verzoeken falen, lees dan de samengestelde URL in de fout voordat je iets anders wijzigt.

Kan Jan Claude en Gemini bereiken via één providervermelding?

Ja. In het OpenAI-formaat reist het model-ID als platte string, dus claude-sonnet-4-6, gemini-3.5-flash, gpt-5.4-mini, en deepseek-v4-flash kunnen allemaal onder één vermelding worden gedeclareerd, gefactureerd via één sleutel, en per gesprek gewisseld.

Is dit hetzelfde als de lokale API-server van Jan?

Nee. De lokale server op 127.0.0.1:1337/v1 is Jan die zijn lokale modellen bedient aan andere tools. De aangepaste providervermelding is Jan die een extern endpoint consumeert. Het zijn onafhankelijke functies die toevallig hetzelfde OpenAI-wireformaat delen.