OpenCode con Kimi K3, GLM 5.3 e GLM 5.3 Flash: aggiungi un provider personalizzato nell'UE
In breve
- OpenCode usa Nodion come provider personalizzato: un blocco in
opencode.jsoncon@ai-sdk/openai-compatible, il base URLhttps://api.nodion.ai/v1e la chiave da{env:NODION_AI_KEY}, nel formato di configurazione V1 che accetta anche OpenCode 2. - I modelli si indicano con l'id del provider seguito dall'id del modello, per esempio nodion/moonshot/kimi-k3, e richiedono limit.context e limit.output impostati a mano, perché Nodion non è presente su models.dev.
- Nel catalogo di Nodion, Kimi K3, GLM 5.3 e GLM 5.3 Flash hanno ciascuno un contesto di 1.048.576 token e i reasoning effort low, high e max; GLM 5.3 accetta solo testo. Prezzi e provider sono nel catalogo AI Inference.
- Il Nodion AI Gateway instrada le richieste solo verso provider con sede nell'UE, tutti con zero data retention, e la chiave di un AI Coding Plan funziona con la stessa configurazione.
OpenCode funziona con qualsiasi API compatibile con OpenAI tramite un provider personalizzato in opencode.json. Puntalo sul Nodion AI Gateway (https://api.nodion.ai/v1) e puoi programmare con Kimi K3, GLM 5.3 e GLM 5.3 Flash. Il gateway instrada le richieste solo verso provider con sede nell'UE, tutti con zero data retention. Non ti serve un account presso questi provider: OpenCode chiama tutto con la tua chiave API Nodion.
Prima una nota sulle versioni: OpenCode ora esiste in due linee. OpenCode 1 è la release attuale su GitHub (v1.19.5, ottobre 2026), documentata su opencode.ai/docs. OpenCode 2 si installa a parte, con una propria documentazione e chiavi di configurazione native diverse. L'esempio qui sotto usa il formato di configurazione V1. Funziona nella release attuale e anche OpenCode 2 lo accetta; la sua guida alla migrazione dice: “The V1 config format remains supported.”
Cosa ti serve
- Un account Nodion e un progetto con AI Inference.
- Una chiave API: una chiave di inferenza da AI Inference → Keys (inizia con
nodion_ai_e viene mostrata una sola volta), oppure una chiave che crei sul tuo AI Coding Plan. Le chiavi per l'API della piattaforma Nodion qui non funzionano. - Credito prepagato disponibile, a meno che la chiave non sia su un coding plan.
Esporta la chiave nella shell che avvia OpenCode:
export NODION_AI_KEY=nodion_ai_your_key Aggiungi il provider in opencode.json
Usa il file globale ~/.config/opencode/opencode.json oppure un opencode.json nella root del progetto:
{
"$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: la documentazione di OpenCode indica@ai-sdk/openai-compatibleper i provider compatibili con OpenAI su/v1/chat/completions. Usa questa opzione. Per/v1/responsesla documentazione rimanda a@ai-sdk/openai, ma quel provider dell'AI SDK impostastoreatrueper impostazione predefinita, mentre l'endpoint Responses di Nodion non memorizza nulla.apiKey:{env:NODION_AI_KEY}legge la chiave dall'ambiente. Se la variabile non è impostata, OpenCode inserisce una stringa vuota, quindi ottieni un errore di autenticazione e non un errore di configurazione.models: le chiavi sono gli ID dei modelli Nodion, slash compreso. OpenCode indica un modello con l'ID del provider seguito dall'ID del modello, quindi Kimi K3 diventanodion/moonshot/kimi-k3. La sua documentazione mostra lo stesso annidamento conlmstudio/google/gemma-3n-e4b.limit: per i provider standard OpenCode prende i limiti di contesto e di output da models.dev. Nodion lì non ha una voce (verificato il 29 ottobre 2026), quindi imposta entrambi a mano dal catalogo. Servono a OpenCode per sapere quanto contesto resta.
Invece di {env:...} puoi salvare la chiave con /connect: scorri fino a Other, inserisci l'id del provider nodion e incolla la chiave. Il blocco del provider in opencode.json ti serve comunque.
Fonti, verificate a ottobre 2026: provider di OpenCode, modelli, configurazione, provider di OpenCode 2, provider OpenAI dell'AI SDK, models.dev.
Scegli il modello
Il model di primo livello è quello predefinito. Nella TUI, /models elenca il tuo provider personalizzato e i suoi modelli. Da riga di comando puoi cambiare modello con -m; opencode run funziona senza TUI e opencode models nodion mostra quali modelli OpenCode conosce per il provider:
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 Fonti: CLI di OpenCode, modelli.
I tre modelli a confronto
Valori dal catalogo pubblico di Nodion al 29 ottobre 2026:
| Modello | Id | Contesto | Output massimo | Input | Reasoning effort |
|---|---|---|---|---|---|
| Kimi K3 | moonshot/kimi-k3 | 1.048.576 | 32.768 | Testo, immagini, video | low, high, max |
| GLM 5.3 | z-ai/glm-5.3 | 1.048.576 | 131.072 | Testo | low, high, max |
| GLM 5.3 Flash | z-ai/glm-5.3-flash | 1.048.576 | 131.072 | Testo, immagini, video, file | low, high, max |
Tutti e tre supportano tool, modalità JSON, output strutturati e reasoning. GLM 5.3 accetta solo testo, quindi per screenshot e altre immagini ti servono Kimi K3 o GLM 5.3 Flash. I reasoning effort sono i valori che l'API accetta per reasoning_effort. Prezzi e provider sono sulla pagina di ciascun modello.
Usa la chiave di un coding plan
Gli AI Coding Plans (Go, Pro e Max) coprono i modelli di chat e i tool. Le richieste di OpenCode sono chat completions, quindi rientrano nel piano. Il proprietario del progetto acquista un piano per ogni sviluppatore e lo assegna al membro del progetto interessato, che crea le chiavi per quel piano in AI Inference. Metti quella chiave in NODION_AI_KEY; la configurazione resta la stessa.
L'utilizzo rientra in una finestra di 5 ore, una settimanale e una mensile. Quando una finestra è esaurita, le richieste proseguono sul credito solo se il piano consente l'uso del credito. Le chiavi senza piano pagano con il credito prepagato. Dettagli su AI Coding Plans.
Risoluzione dei problemi
- 401:
NODION_AI_KEYnon è impostata nella shell che ha avviato OpenCode (il valore{env:...}è quindi vuoto), oppure contiene una chiave della piattaforma. Usa una chiave di inferenza (nodion_ai_…) o la chiave di un piano. - 404
model not found: una chiave sottomodelsnon è un id Nodion esatto.curl https://api.nodion.ai/v1/modelselenca gli id e non richiede una chiave. - Modello assente in
/models: controlla che sia elencato sottoprovider.nodion.models.opencode models nodionmostra cosa vede OpenCode. - OpenCode non sa quanto contesto resta: per quel modello mancano
limit.contextelimit.output. - 402: il credito non copre la richiesta, oppure è stato raggiunto un limite di spesa.
- 503: nessuna route funzionante per il modello corrisponde alle impostazioni AI del progetto, per esempio perché lì i suoi provider sono esclusi.
Fonti: Riferimento API AI: errori e limiti, documentazione di AI Inference, AI Coding Plans.
Prossimi passi
- Codex invece di OpenCode: Codex CLI con modelli UE tramite un provider personalizzato.
- Aider, Cline e Continue: Aider, Cline e Continue con modelli UE.
- Tutti i campi delle chat completions su Nodion: Riferimento API AI.
- Un pacchetto mensile per i coding agent: AI Coding Plans.
Domande frequenti
Come aggiungo un provider personalizzato a OpenCode?
Aggiungi a opencode.json un blocco provider con npm impostato su @ai-sdk/openai-compatible, options.baseURL, options.apiKey e una mappa models. Per Nodion il base URL è https://api.nodion.ai/v1 e la chiave può arrivare da {env:NODION_AI_KEY}.
Come scelgo un modello personalizzato in OpenCode?
Usa l'id del provider seguito dall'id del modello, per esempio nodion/moonshot/kimi-k3. Impostalo come model di primo livello, passalo con opencode -m oppure sceglilo dall'elenco /models nella TUI.
Perché OpenCode non conosce la finestra di contesto del mio modello personalizzato?
Per i provider standard OpenCode prende i limiti da models.dev. Per un provider personalizzato come Nodion, imposta limit.context e limit.output per ogni modello in opencode.json.
Posso usare in OpenCode la chiave di un AI Coding Plan?
Sì. Crea una chiave sul tuo AI Coding Plan di Nodion e mettila in NODION_AI_KEY; la configurazione resta la stessa. L'utilizzo di chat e tool rientra poi nelle finestre di 5 ore, settimanale e mensile del piano.