Voeg een aangepaste OpenAI-compatibele provider toe aan Zed.

Updated 2026-07-29

Zed leest aangepaste providers rechtstreeks uit settings.json. Declareer een blok language_models.openai_compatible met api_url ingesteld op https://api.apisrouter.com/v1, vermeld de model-ID's die je wilt, en elk daarvan verschijnt in de modelkiezer van het agentpaneel onder één sleutel.

Snel antwoord: één blok in settings.json.

Zed ondersteunt native aangepaste OpenAI-compatibele providers. Voeg een providervermelding toe onder language_models.openai_compatible in settings.json, stel api_url in op https://api.apisrouter.com/v1, en declareer elk model dat je wilt onder available_models met zijn naam en contextgrootte. De modellen verschijnen meteen in de modeldropdown van het agentpaneel. De API-sleutel komt bewust niet in settings.json terecht. Zed slaat hem op in de systeemsleutelketen wanneer je hem invoert via de providerinstellingen-UI, of leest hem uit een omgevingsvariabele die is afgeleid van je providersleutel: een provider genaamd apisrouter leest APISROUTER_API_KEY. Omgevingsvariabelen hebben voorrang op waarden uit de sleutelketen.

{
  "language_models": {
    "openai_compatible": {
      "apisrouter": {
        "api_url": "https://api.apisrouter.com/v1",
        "available_models": [
          {
            "name": "claude-sonnet-4-6",
            "display_name": "Claude Sonnet 4.6",
            "max_tokens": 200000
          }
        ]
      }
    }
  }
}

Hoe Zed aangepaste providers en modellen oplost.

Zed (zed-industries op GitHub, ruim 87K sterren) is een high-performance editor met een agentpaneel dat plant, bestanden bewerkt en tools draait. Het providertype openai_compatible spreekt het standaard /v1/chat/completions-protocol, precies wat een gateway met meerdere leveranciers bedient, dus zit er geen plugin of extensie tussen de editor en het endpoint. De providersleutel die je kiest ("apisrouter" hierboven) doet dubbel werk. Hij noemt de provider in de instellingen van het agentpaneel, en hij genereert de omgevingsvariabele waarnaar Zed zoekt voor de sleutel, in upper-snake-case met een _API_KEY-suffix. Die naamgevingsregel is het waard om je eigen te maken voordat je iets debugt: hernoem de provider en de verwachte variabelenaam verandert mee. available_models is een allowlist. Zed kan een aangepast endpoint niet zelf inventariseren, dus alleen de ID's die je declareert, worden selecteerbaar, elk een exacte string inclusief eventueel versiesuffix. Wanneer het endpoint achter api_url Claude-, GPT-, Gemini- en Kimi-ID's naast elkaar bedient, maakt één providerblok van de kiezer in het agentpaneel een schakelbord tussen leveranciers achter één sleutel. Eén opmerking over de reikwijdte: de functie edit predictions van Zed gebruikt zijn eigen dedicated modellen en wordt apart geconfigureerd; een aangepaste provider voedt het agentpaneel en de inline assistent, niet edit predictions.

Volledige instelling: modellen, contextgroottes en capaciteiten.

Elke vermelding in available_models neemt meer dan alleen een naam. max_tokens declareert het contextvenster van het model, en max_output_tokens begrenst de generatielengte; Zed gebruikt deze getallen om lange agent-threads te beheren, dus het declareren van een langecontextmodel met een kleine max_tokens verspilt stilletjes de speling van het model. Het object capabilities vertelt Zed wat het model ondersteunt: zet tools op true voor alles waarmee je het agentpaneel wilt aansturen, en schakel images alleen in voor modellen die daadwerkelijk beeldinvoer accepteren. Voor de sleutel is de betrouwbare route op een desktopeditor de providerinstellingen-UI, die de waarde opslaat in de systeemsleutelketen. Het pad via omgevingsvariabelen werkt ook, met één kanttekening die in de debuggingsectie wordt behandeld: GUI-applicaties die vanuit het dock worden gestart, nemen je shellprofiel niet over.

{
  "language_models": {
    "openai_compatible": {
      "apisrouter": {
        "api_url": "https://api.apisrouter.com/v1",
        "available_models": [
          {
            "name": "claude-sonnet-4-6",
            "display_name": "Claude Sonnet 4.6",
            "max_tokens": 200000,
            "max_output_tokens": 64000,
            "capabilities": { "tools": true, "images": false }
          },
          {
            "name": "claude-opus-4-7",
            "display_name": "Claude Opus 4.7",
            "max_tokens": 200000,
            "capabilities": { "tools": true }
          },
          { "name": "gpt-5.5", "display_name": "GPT-5.5", "max_tokens": 200000 },
          { "name": "kimi-k2.7-code", "display_name": "Kimi K2.7 Code", "max_tokens": 200000 }
        ]
      }
    }
  }
}

Modellen kiezen voor het agentpaneel.

Omdat elk gedeclareerd model in dezelfde kiezer staat, is de praktische workflow vergelijking op echt werk in plaats van benchmarks: draai hetzelfde soort taak via twee kandidaten op verschillende dagen en laat het gebruikslogboek per sleutel elk ervan prijzen. Een modelwissel in Zed is een dropdownkeuze, dus de kosten van het experiment zijn nul setup.

  • Het agentpaneel draagt echt engineering-werk: bestanden lezen, meerstaps wijzigingen plannen, tools draaien over lange threads. Een frontier-coderingsmodel (claude-sonnet-4-6, claude-opus-4-7, gpt-5.5) hoort in dit slot thuis.
  • Codegestemde ID's zoals kimi-k2.7-code zijn het waard om te declareren, zelfs als ze niet je standaard zijn; overschakelen voor een refactor-zware sessie is één keuze in de kiezer, geen configwijziging.
  • Langecontextmodellen zoals gemini-3.1-pro-preview verdienen hun plaats wanneer threads routinematig grote bestanden of context van hele modules in één gesprek trekken.
  • Inline assist is kortstondiger dan agent-threads, dus een snel midtier-ID houdt eenmalige transformaties vlot zonder frontier-tokens te verbranden aan eenregelige herschrijvingen.

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 Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
Claude Opus 4.7$5.00 / $25.00 per M$4.00 / $20.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Kimi K2.7 Code$0.95 / $4.00 per M$1.00 / $4.00 per M
Gemini 3.1 Pro Preview$2.00 / $12.00 per M$1.60 / $9.60 per M

De faalmodi specifiek voor aangepaste providers in Zed.

De sleutel staat in settings.json en niets werkt. Zed leest bewust geen API-sleutels uit settings.json. Voer de sleutel in via de providerinstellingen-UI, of exporteer de afgeleide omgevingsvariabele; een sleutel die in de JSON is geplakt, wordt genegeerd. De omgevingsvariabele is ingesteld maar Zed vraagt nog steeds om een sleutel. De variabelenaam is afgeleid van de providersleutel, in upper-snake-case met _API_KEY toegevoegd, dus een provider genaamd apisrouter heeft APISROUTER_API_KEY nodig, niet OPENAI_API_KEY. En op macOS laadt een app die vanuit het dock is gestart nooit je shellprofiel, dus profielexports zijn er onzichtbaar voor. Start Zed vanuit een terminal met het commando zed, of gebruik het sleutelketenpad en omzeil het probleem helemaal. Een model ontbreekt in de kiezer. available_models is een allowlist; een ID dat je aannam maar nooit hebt gedeclareerd, bestaat gewoon niet. ID's zijn exacte strings inclusief versiesuffixen, en de /v1/models-lijst van de gateway is de gezaghebbende spelling om van te kopiëren. De agent kan geen tools gebruiken. Als het capabilities-blok van een model zegt dat tools false is, biedt Zed geen tool-gebruik aan met dat model. Declareer capabilities zodat het overeenkomt met wat het model daadwerkelijk ondersteunt. api_url zonder /v1. De client voegt routepaden zoals /chat/completions toe aan de base die je opgeeft, dus https://api.apisrouter.com/v1 is correct en de kale host niet. Een 404-achtige mislukking bij een verder correct blok is bijna altijd dit.

Wie routeert Zed via een gateway.

  • Developers die in de editor leven en Claude, GPT en Kimi in één kiezer van het agentpaneel willen in plaats van aparte providercredentials per leverancier te onderhouden.
  • Engineers die coderingsmodellen vergelijken op echte wijzigingen. Elke kandidaat is één gedeclareerde vermelding en één dropdownkeuze; geen nieuwe accounts per experiment.
  • Teams die op één secret standaardiseren. Eén APISROUTER_API_KEY in de onboardingdocumentatie vervangt een checklist met sleutels per leverancier, en gebruik per sleutel toont wat elke plek uitgeeft.
  • Gebruikers die een frontier agentmodel koppelen aan een snel inline-assist-model van een andere leverancier, iets wat configuraties van één leverancier niet kunnen uitdrukken.
  • 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 thread.

Lijst voordat je een agent-thread start op wat de gateway bedient. De ID's die /v1/models retourneert, zijn precies de strings die je vermeldingen in available_models moeten gebruiken. Mislukkingen bij de eerste thread zijn consistent. Een 401 betekent dat de sleutel die Zed heeft opgelost fout is of ontbreekt: controleer de sleutelketenvermelding in de providerinstellingen, of bevestig dat de afgeleide omgevingsvariabele zichtbaar is voor het Zed-proces en niet alleen voor je terminal. Een model-not-found-fout van de gateway betekent dat een gedeclareerde naam niet overeenkomt met een bediend ID, versiesuffix inbegrepen. Als het providerblok helemaal niet in de instellingen verschijnt, valideer dan de JSON; settings.json tolereert commentaar maar geen structurele fouten. Zodra verzoeken vloeien, toont de APIsRouter-console model per verzoek, tokenaantallen en uitgaven. Agent-threads zijn workloads met lange context en veel beurten, en zien welke threads en welke modellen de tokens verbruiken, is hoe je beslist of je standaardmodel zijn plek waard is.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

Veelgestelde vragen

Kan Zed Claude-, GPT- en Kimi-modellen gebruiken via één aangepaste provider?

Ja. Een aangepaste provider is een api_url plus een available_models-allowlist. Wanneer het endpoint meerdere leveranciers bedient, declareer je één vermelding per ID en verschijnt elk gedeclareerd model in de kiezer van het agentpaneel onder dezelfde provider en sleutel, wisselbaar per thread.

Waar komt de API-sleutel voor een aangepaste provider in Zed?

Niet in settings.json. Voer hem in via de providerinstellingen-UI, die hem opslaat in de systeemsleutelketen, of exporteer de omgevingsvariabele die is afgeleid van je providersleutel: een provider genaamd apisrouter leest APISROUTER_API_KEY. Omgevingsvariabelen hebben voorrang op waarden uit de sleutelketen.

Waarom negeert Zed de API-sleutel die ik in mijn shellprofiel heb geëxporteerd?

GUI-apps die vanuit het dock worden gestart, laden je shellprofiel nooit, dus de export is er onzichtbaar voor. Start Zed vanuit een terminal met het commando zed zodat het de variabele overneemt, of gebruik de instellingen-UI en laat de sleutelketen de sleutel bewaren.

Waarom ontbreekt mijn model in de kiezer van het agentpaneel?

Modellen van aangepaste providers moeten expliciet worden gedeclareerd; Zed kan een aangepast endpoint niet inventariseren. Controleer of available_models de exacte ID-string bevat, inclusief versiesuffixen, en kopieer ID's uit de /v1/models-respons van de gateway in plaats van ze uit het hoofd te typen.

Wat regelen max_tokens en max_output_tokens in available_models?

max_tokens declareert het contextvenster van het model en max_output_tokens begrenst de generatielengte. Zed gebruikt deze om lange agent-threads te beheren, dus stel max_tokens in op wat het model werkelijk ondersteunt; het te laag inschatten verspilt context die het model daadwerkelijk heeft.

Verandert een aangepaste provider de edit predictions van Zed?

Nee. Edit predictions draaien op de eigen dedicated modellen van Zed en worden apart geconfigureerd. Een aangepaste OpenAI-compatibele provider voedt het agentpaneel en de inline assistent, waar het /v1/chat/completions-verkeer naartoe gaat.