OpenCode mit Kimi K3, GLM 5.3 und GLM 5.3 Flash: einen EU-Provider eintragen
Kurz gesagt
- OpenCode nutzt Nodion als eigenen Provider: ein Block in
opencode.jsonmit@ai-sdk/openai-compatible, der Base-URLhttps://api.nodion.ai/v1und dem Key aus{env:NODION_AI_KEY}, im V1-Config-Format, das auch OpenCode 2 annimmt. - Modelle werden als Provider-ID plus Model-ID angesprochen, zum Beispiel nodion/moonshot/kimi-k3, und brauchen selbst gesetzte Werte für limit.context und limit.output, weil Nodion nicht auf models.dev steht.
- Im Nodion-Katalog haben Kimi K3, GLM 5.3 und GLM 5.3 Flash je 1.048.576 Tokens Kontext und die Reasoning Efforts low, high und max; GLM 5.3 nimmt nur Text. Preise und Provider stehen im AI-Inference-Katalog.
- Das Nodion AI Gateway routet nur zu Providern mit Sitz in der EU, die alle mit Zero Data Retention ausliefern, und ein Key von einem AI Coding Plan funktioniert mit derselben Config.
OpenCode arbeitet mit jeder OpenAI-kompatiblen API, über einen eigenen Provider in opencode.json. Zeig ihn auf das Nodion AI Gateway (https://api.nodion.ai/v1), und du codest mit Kimi K3, GLM 5.3 und GLM 5.3 Flash. Das Gateway routet nur zu Providern mit Sitz in der EU, die alle mit Zero Data Retention ausliefern. Ein Konto bei diesen Providern brauchst du nicht: OpenCode ruft alles mit deinem Nodion-API-Key auf.
Zur Version: OpenCode gibt es inzwischen in zwei Linien. OpenCode 1 ist das aktuelle GitHub-Release (v1.19.5, Oktober 2026) mit der Doku unter opencode.ai/docs. OpenCode 2 wird separat installiert und hat eigene Doku und andere native Config-Keys. Das Beispiel unten nutzt das V1-Config-Format. Es läuft im aktuellen Release, und OpenCode 2 nimmt es ebenfalls an; der Migrationsguide sagt: „The V1 config format remains supported.“
Was du brauchst
- Ein Nodion-Konto und ein Projekt mit AI Inference.
- Einen API-Key: einen Inference-Key aus AI Inference → Keys (er beginnt mit
nodion_ai_und wird einmal angezeigt) oder einen Key, den du auf deinem AI Coding Plan anlegst. Keys für die Nodion-Plattform-API funktionieren hier nicht. - Guthaben im Prepaid-Wallet, außer der Key liegt auf einem Coding Plan.
Exportier den Key in der Shell, die OpenCode startet:
export NODION_AI_KEY=nodion_ai_dein_key Den Provider in opencode.json eintragen
Nimm die globale Datei ~/.config/opencode/opencode.json oder eine opencode.json im Projekt-Root:
{
"$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: die OpenCode-Doku nennt@ai-sdk/openai-compatiblefür OpenAI-kompatible Provider auf/v1/chat/completions. Bleib bei diesem Weg. Für/v1/responsesverweist die Doku auf@ai-sdk/openai, dieser AI-SDK-Provider setztstoreaber standardmäßig auftrue, und der Responses-Endpoint von Nodion speichert nichts.apiKey:{env:NODION_AI_KEY}liest den Key aus der Umgebung. Ist die Variable nicht gesetzt, setzt OpenCode einen leeren String ein, du bekommst also einen Auth-Fehler statt eines Config-Fehlers.models: die Keys sind die Nodion-Model-IDs, mit Schrägstrich. OpenCode spricht ein Modell als Provider-ID plus Model-ID an, aus Kimi K3 wird alsonodion/moonshot/kimi-k3. Die Doku zeigt dieselbe Verschachtelung mitlmstudio/google/gemma-3n-e4b.limit: für Standard-Provider holt OpenCode Kontext- und Output-Limits von models.dev. Nodion steht dort nicht (geprüft am 29. Oktober 2026), setz beide Werte also selbst aus dem Katalog. Daran erkennt OpenCode, wie viel Kontext noch frei ist.
Statt {env:...} kannst du den Key auch mit /connect speichern: scroll zu Other, gib die Provider-ID nodion ein und füg den Key ein. Den Provider-Block in opencode.json brauchst du trotzdem.
Quellen, geprüft im Oktober 2026: OpenCode Providers, Models, Config, OpenCode 2 Providers, AI SDK OpenAI Provider, models.dev.
Das Modell auswählen
Das model auf oberster Ebene ist der Standard. Im TUI listet /models deinen eigenen Provider mit seinen Modellen. Auf der Kommandozeile wechselst du mit -m, opencode run läuft ohne TUI, und opencode models nodion zeigt, welche Modelle OpenCode für den Provider kennt:
opencode -m nodion/z-ai/glm-5.3
opencode run -m nodion/z-ai/glm-5.3-flash "Erklär das Build-Setup dieses Repos"
opencode models nodion Quellen: OpenCode CLI, Models.
Die drei Modelle im Vergleich
Werte aus dem öffentlichen Nodion-Katalog vom 29. Oktober 2026:
| Modell | ID | Kontext | Max. Output | Input | Reasoning Efforts |
|---|---|---|---|---|---|
| Kimi K3 | moonshot/kimi-k3 | 1.048.576 | 32.768 | Text, Bild, Video | low, high, max |
| GLM 5.3 | z-ai/glm-5.3 | 1.048.576 | 131.072 | Text | low, high, max |
| GLM 5.3 Flash | z-ai/glm-5.3-flash | 1.048.576 | 131.072 | Text, Bild, Video, Datei | low, high, max |
Alle drei unterstützen Tools, JSON Mode, Structured Outputs und Reasoning. GLM 5.3 nimmt nur Text, für Screenshots und andere Bilder brauchst du Kimi K3 oder GLM 5.3 Flash. Die Reasoning Efforts sind die Werte, die die API für reasoning_effort akzeptiert. Preise und Provider stehen auf der Modellseite des jeweiligen Modells.
Mit einem Coding-Plan-Key arbeiten
AI Coding Plans (Go, Pro und Max) bezahlen Chat-Modelle und Tools. Die Requests von OpenCode sind Chat Completions, sie zählen also gegen den Plan. Der Projekt-Owner kauft einen Plan pro Entwickler und weist ihn einem Projektmitglied zu, das auf diesem Plan in AI Inference Keys anlegt. Diesen Key legst du in NODION_AI_KEY, die Config bleibt gleich.
Die Nutzung zählt gegen ein 5-Stunden-, ein Wochen- und ein Monatsfenster. Ist eines voll, laufen Requests nur dann aus dem Wallet weiter, wenn der Plan Wallet-Nutzung erlaubt. Keys ohne Plan zahlen aus dem Prepaid-Wallet. Details unter AI Coding Plans.
Fehlersuche
- 401:
NODION_AI_KEYist in der Shell, die OpenCode gestartet hat, nicht gesetzt (der{env:...}-Wert ist dann leer), oder die Variable enthält einen Plattform-Key. Nimm einen Inference-Key (nodion_ai_…) oder einen Plan-Key. - 404
model not found: ein Key untermodelsist keine exakte Nodion-ID.curl https://api.nodion.ai/v1/modelslistet die IDs und braucht keinen Key. - Modell fehlt in
/models: prüf, dass es unterprovider.nodion.modelssteht.opencode models nodionzeigt, was OpenCode sieht. - OpenCode weiß nicht, wie viel Kontext frei ist: für das Modell fehlen
limit.contextundlimit.output. - 402: das Wallet deckt den Request nicht, oder ein Spend-Limit ist erreicht.
- 503: keine gesunde Route für das Modell passt zu den AI-Settings des Projekts, etwa weil seine Provider dort ausgeschlossen sind.
Quellen: AI-API-Referenz: Fehler und Limits, AI-Inference-Docs, AI Coding Plans.
Weiter geht's
- Codex statt OpenCode: Codex CLI mit EU-Modellen.
- Aider, Cline und Continue: Aider, Cline und Continue mit EU-Modellen.
- Alle Felder von Chat Completions auf Nodion: AI-API-Referenz.
- Ein Monatspaket für Coding-Agenten: AI Coding Plans.
Häufige Fragen
Wie trage ich in OpenCode einen eigenen Provider ein?
Ergänze in opencode.json einen provider-Block mit npm auf @ai-sdk/openai-compatible, options.baseURL, options.apiKey und einer models-Liste. Für Nodion ist die Base-URL https://api.nodion.ai/v1, der Key kann aus {env:NODION_AI_KEY} kommen.
Wie wähle ich in OpenCode ein eigenes Modell aus?
Mit der Provider-ID gefolgt von der Model-ID, zum Beispiel nodion/moonshot/kimi-k3. Setz das als model auf oberster Ebene, übergib es mit opencode -m oder wähl es im TUI in der Liste unter /models.
Warum kennt OpenCode das Kontextfenster meines eigenen Modells nicht?
Für Standard-Provider holt OpenCode die Limits von models.dev. Bei einem eigenen Provider wie Nodion setzt du limit.context und limit.output pro Modell in opencode.json.
Kann ich in OpenCode einen Key von einem AI Coding Plan nutzen?
Ja. Leg auf deinem Nodion AI Coding Plan einen Key an und setz ihn in NODION_AI_KEY, die Config bleibt gleich. Chat- und Tool-Nutzung zählt dann gegen das 5-Stunden-, Wochen- und Monatsfenster des Plans.