OpenCode met Kimi K3, GLM 5.3 en GLM 5.3 Flash: een aanbieder in de EU instellen
In het kort
- OpenCode gebruikt Nodion als zelf ingestelde aanbieder: een blok in
opencode.jsonmet@ai-sdk/openai-compatible, de base-URLhttps://api.nodion.ai/v1en de sleutel uit{env:NODION_AI_KEY}, in het V1-configformaat dat OpenCode 2 ook accepteert. - Je geeft modellen aan met een aanbieder-ID plus een model-ID, bijvoorbeeld nodion/moonshot/kimi-k3. limit.context en limit.output stel je handmatig in, omdat Nodion niet op models.dev staat.
- In de Nodion-catalogus hebben Kimi K3, GLM 5.3 en GLM 5.3 Flash elk een context van 1.048.576 tokens en de redeneerniveaus low, high en max; GLM 5.3 accepteert alleen tekst. Prijzen en aanbieders staan in de AI Inference-catalogus.
- De Nodion AI Gateway routeert alleen naar aanbieders die in de EU gevestigd zijn, allemaal met zero data retention, en een sleutel van een AI Coding Plan werkt met dezelfde config.
OpenCode werkt met elke OpenAI-compatibele API via een zelf ingestelde aanbieder in opencode.json. Richt die op de Nodion AI Gateway (https://api.nodion.ai/v1) en je kunt coderen met Kimi K3, GLM 5.3 en GLM 5.3 Flash. De gateway routeert alleen naar aanbieders die in de EU gevestigd zijn, allemaal met zero data retention. Je hebt geen account bij die aanbieders nodig: OpenCode doet alle aanroepen met je API-sleutel van Nodion.
Eerst iets over versies: OpenCode heeft nu twee versielijnen. OpenCode 1 is de huidige release op GitHub (v1.19.5, oktober 2026), gedocumenteerd op opencode.ai/docs. OpenCode 2 installeer je apart, met eigen documentatie en andere ingebouwde configuratiesleutels. Het voorbeeld hieronder gebruikt het V1-configformaat. Dat werkt in de huidige release en OpenCode 2 accepteert het ook; de migratiegids zegt: “The V1 config format remains supported.” (het V1-formaat blijft dus ondersteund).
Wat je nodig hebt
- Een Nodion-account en een project met AI Inference.
- Een API-sleutel: een inference-sleutel uit AI Inference → Keys (begint met
nodion_ai_en wordt één keer getoond), of een sleutel die je op je AI Coding Plan aanmaakt. Sleutels voor de API van het Nodion-platform werken hier niet. - Prepaid tegoed, tenzij de sleutel bij een AI Coding Plan hoort.
Exporteer de sleutel in de shell waarin je OpenCode start:
export NODION_AI_KEY=nodion_ai_your_key De aanbieder toevoegen aan opencode.json
Gebruik het globale bestand ~/.config/opencode/opencode.json of een opencode.json in de root van het project:
{
"$schema": "https://opencode.ai/config.json",
"model": "nodion/moonshot/kimi-k3",
"provider": {
"nodion": {
"npm": "@ai-sdk/openai-compatible",
"name": "Nodion",
"options": {
"baseURL": "https://api.nodion.ai/v1",
"apiKey": "{env:NODION_AI_KEY}"
},
"models": {
"moonshot/kimi-k3": {
"name": "Kimi K3",
"limit": { "context": 1048576, "output": 32768 }
},
"z-ai/glm-5.3": {
"name": "GLM 5.3",
"limit": { "context": 1048576, "output": 131072 }
},
"z-ai/glm-5.3-flash": {
"name": "GLM 5.3 Flash",
"limit": { "context": 1048576, "output": 131072 }
}
}
}
}
} npm: de documentatie van OpenCode noemt@ai-sdk/openai-compatiblevoor OpenAI-compatibele aanbieders op/v1/chat/completions. Gebruik deze route. Voor/v1/responsesverwijst de documentatie naar@ai-sdk/openai, maar die aanbieder uit de AI SDK zetstorestandaard optrue, en het Responses-endpoint van Nodion slaat niets op.apiKey:{env:NODION_AI_KEY}leest de sleutel uit de omgeving. Is de variabele niet gezet, dan vult OpenCode een lege string in en krijg je een authenticatiefout in plaats van een configuratiefout.models: de sleutels zijn de model-id's van Nodion, inclusief schuine streep. OpenCode verwijst naar een model met aanbieder-id plus model-id, dus Kimi K3 wordtnodion/moonshot/kimi-k3. De documentatie toont dezelfde structuur metlmstudio/google/gemma-3n-e4b.limit: voor standaardaanbieders haalt OpenCode de context- en outputlimieten van models.dev. Nodion staat daar niet in (gecontroleerd op 29 oktober 2026), dus stel beide met de hand in op basis van de catalogus. Daaraan ziet OpenCode hoeveel context er nog over is.
In plaats van {env:...} kun je de sleutel opslaan met /connect: scrol naar Other, vul nodion in als aanbieder-id en plak de sleutel. Het configuratieblok voor de aanbieder in opencode.json heb je dan nog steeds nodig.
Bronnen, gecontroleerd in oktober 2026: OpenCode-providers, modellen, configuratie, providers in OpenCode 2, OpenAI-provider van de AI SDK, models.dev.
Kies het model
Het veld model op het hoogste niveau bepaalt het standaardmodel. In de TUI toont /models je zelf ingestelde aanbieder en diens modellen. Op de commandoregel wissel je met -m, opencode run werkt zonder de TUI, en opencode models nodion laat zien welke modellen OpenCode voor de aanbieder kent:
opencode -m nodion/z-ai/glm-5.3
opencode run -m nodion/z-ai/glm-5.3-flash "Explain the build setup of this repo"
opencode models nodion Bronnen: OpenCode CLI, modellen.
De drie modellen naast elkaar
Waarden uit de publieke Nodion-catalogus op 29 oktober 2026:
| Model | ID | Context | Max. output | Invoer | Redeneerniveaus |
|---|---|---|---|---|---|
| Kimi K3 | moonshot/kimi-k3 | 1.048.576 | 32.768 | Tekst, afbeelding, video | low, high, max |
| GLM 5.3 | z-ai/glm-5.3 | 1.048.576 | 131.072 | Tekst | low, high, max |
| GLM 5.3 Flash | z-ai/glm-5.3-flash | 1.048.576 | 131.072 | Tekst, afbeelding, video, bestand | low, high, max |
Alle drie ondersteunen tools, JSON-modus, structured outputs en reasoning. GLM 5.3 accepteert alleen tekst, dus voor screenshots en andere afbeeldingen heb je Kimi K3 of GLM 5.3 Flash nodig. De redeneerniveaus zijn de waarden die de API accepteert voor reasoning_effort. Prijzen en aanbieders staan op de pagina van elk model.
Gebruik een sleutel van een coding plan
AI Coding Plans (Go, Pro en Max) dekken het gebruik van chatmodellen en tools. De requests van OpenCode zijn chat completions, dus ze tellen mee voor het plan. De projecteigenaar koopt één plan per developer en wijst het toe aan een projectlid, dat op dat plan sleutels aanmaakt in AI Inference. Zet die sleutel in NODION_AI_KEY; de config blijft hetzelfde.
Het gebruik telt mee in een venster van 5 uur, een weekvenster en een maandvenster. Is één van die limieten bereikt, dan gaan requests alleen verder op het prepaid tegoed als het plan dat toestaat. Gebruik met sleutels zonder plan wordt betaald uit het prepaid tegoed. Details op AI Coding Plans.
Problemen oplossen
- 401:
NODION_AI_KEYis niet gezet in de shell die OpenCode heeft gestart (de waarde{env:...}is dan leeg), of bevat een platformsleutel. Gebruik een inference-sleutel (nodion_ai_…) of een plansleutel. - 404
model not found: een sleutel ondermodelsis geen exacte Nodion-id.curl https://api.nodion.ai/v1/modelstoont de id's en heeft geen sleutel nodig. - Model ontbreekt in
/models: controleer of het onderprovider.nodion.modelsstaat.opencode models nodionlaat zien wat OpenCode ziet. - OpenCode weet niet hoeveel context er over is:
limit.contextenlimit.outputontbreken voor dat model. - 402: het tegoed dekt het request niet, of er is een bestedingslimiet bereikt.
- 503: geen gezonde route voor het model past bij de AI-instellingen van het project, bijvoorbeeld omdat de aanbieders ervan daar zijn uitgesloten.
Bronnen: AI-API-referentie: fouten en limieten, documentatie van AI Inference, AI Coding Plans.
Volgende stappen
- Codex in plaats van OpenCode: Codex CLI met EU-modellen.
- Aider, Cline en Continue: Aider, Cline en Continue met EU-modellen.
- Alle velden van chat completions op Nodion: AI-API-referentie.
- Een maandpakket voor coding agents: AI Coding Plans.
Veelgestelde vragen
Hoe voeg ik zelf een aanbieder toe aan OpenCode?
Voeg een configuratieblok voor de aanbieder toe aan opencode.json met npm op @ai-sdk/openai-compatible, options.baseURL, options.apiKey en een models-map. Voor Nodion is de base-URL https://api.nodion.ai/v1 en kan de sleutel uit {env:NODION_AI_KEY} komen.
Hoe kies ik een zelf toegevoegd model in OpenCode?
Gebruik de ID van de aanbieder gevolgd door de model-ID, bijvoorbeeld nodion/moonshot/kimi-k3. Stel die in als model op het hoogste niveau, geef hem mee met opencode -m of kies hem uit de lijst /models in de TUI.
Waarom kent OpenCode het contextvenster van mijn zelf toegevoegde model niet?
Voor standaardaanbieders haalt OpenCode de limieten van models.dev. Voor een zelf ingestelde aanbieder zoals Nodion stel je limit.context en limit.output per model in opencode.json in.
Kan ik een sleutel van een AI Coding Plan gebruiken in OpenCode?
Ja. Maak een sleutel aan op je AI Coding Plan van Nodion en zet die in NODION_AI_KEY; de config blijft hetzelfde. Chat- en toolgebruik telt dan mee in de vensters van het plan: 5 uur, week en maand.