OpenCode avec Kimi K3, GLM 5.3 et GLM 5.3 Flash : ajoutez un fournisseur personnalisé dans l'UE
En bref
- OpenCode utilise Nodion comme fournisseur personnalisé : un bloc dans
opencode.jsonavec@ai-sdk/openai-compatible, l'URL de basehttps://api.nodion.ai/v1et la clé tirée de{env:NODION_AI_KEY}, au format de configuration V1, qu'OpenCode 2 accepte aussi. - Les modèles sont désignés par l'identifiant du fournisseur suivi de celui du modèle, par exemple nodion/moonshot/kimi-k3, et limit.context et limit.output doivent être définis à la main, car Nodion ne figure pas sur models.dev.
- Dans le catalogue Nodion, Kimi K3, GLM 5.3 et GLM 5.3 Flash ont chacun un contexte de 1 048 576 tokens et les niveaux de raisonnement low, high et max ; GLM 5.3 n'accepte que du texte. Les prix et les fournisseurs figurent dans le catalogue AI Inference.
- Nodion AI Gateway ne route que vers des fournisseurs basés dans l'UE, qui servent tous avec zero data retention, et une clé liée à une offre AI Coding Plans fonctionne avec la même configuration.
OpenCode fonctionne avec n'importe quelle API compatible OpenAI grâce à un fournisseur personnalisé (custom provider) dans opencode.json. Pointez-le vers Nodion AI Gateway (https://api.nodion.ai/v1) et vous pouvez coder avec Kimi K3, GLM 5.3 et GLM 5.3 Flash. La passerelle n'achemine les requêtes que vers des fournisseurs basés dans l'UE, qui appliquent tous la zero data retention. Vous n'avez besoin d'aucun compte chez ces fournisseurs : OpenCode fait tous les appels avec votre clé d'API Nodion.
D'abord, une précision sur les versions : OpenCode existe désormais en deux lignes. OpenCode 1 est la release actuelle sur GitHub (v1.19.5, octobre 2026), documentée sur opencode.ai/docs. OpenCode 2 s'installe séparément, avec sa propre documentation et d'autres clés de configuration natives. L'exemple ci-dessous utilise le format de configuration V1. Il fonctionne dans la release actuelle, et OpenCode 2 l'accepte aussi ; son guide de migration indique : « The V1 config format remains supported. »
Ce qu'il vous faut
- Un compte Nodion et un projet avec AI Inference.
- Une clé d'API : une clé d'inférence créée sous AI Inference → Keys (elle commence par
nodion_ai_et ne s'affiche qu'une fois), ou une clé que vous créez sur votre AI Coding Plan. Les clés de l'API de la plateforme Nodion ne fonctionnent pas ici. - Du crédit sur le solde prépayé, sauf si la clé est liée à une offre de code IA.
Exportez la clé dans le shell qui lance OpenCode :
export NODION_AI_KEY=nodion_ai_your_key Ajoutez le fournisseur dans opencode.json
Utilisez le fichier global ~/.config/opencode/opencode.json ou un opencode.json à la racine du projet :
{
"$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 documentation d'OpenCode indique@ai-sdk/openai-compatiblepour les fournisseurs compatibles OpenAI sur/v1/chat/completions. Restez sur cette route. Pour/v1/responses, la documentation renvoie à@ai-sdk/openai, mais ce provider de l'AI SDK metstoreàtruepar défaut, alors que l'endpoint Responses de Nodion ne stocke rien.apiKey:{env:NODION_AI_KEY}lit la clé dans l'environnement. Si la variable n'est pas définie, OpenCode insère une chaîne vide : vous obtenez alors une erreur d'authentification plutôt qu'une erreur de configuration.models: les clés sont les identifiants de modèle Nodion, barre oblique comprise. OpenCode désigne un modèle par l'identifiant du fournisseur suivi de celui du modèle : Kimi K3 devient doncnodion/moonshot/kimi-k3. Sa documentation montre la même imbrication aveclmstudio/google/gemma-3n-e4b.limit: pour les fournisseurs standard, OpenCode récupère les limites de contexte et de sortie sur models.dev. Nodion n'y a pas d'entrée (vérifié le 29 octobre 2026) : définissez donc les deux à la main à partir du catalogue. Elles indiquent à OpenCode combien de contexte il reste.
Au lieu de {env:...}, vous pouvez enregistrer la clé avec /connect : faites défiler jusqu'à Other, saisissez l'identifiant de fournisseur nodion et collez la clé. Le bloc du fournisseur dans opencode.json reste nécessaire.
Sources, vérifiées en octobre 2026 : fournisseurs OpenCode, modèles, configuration, fournisseurs OpenCode 2, provider OpenAI de l'AI SDK, models.dev.
Choisissez le modèle
Le champ model à la racine définit le modèle par défaut. Dans la TUI, /models liste votre fournisseur personnalisé et ses modèles. En ligne de commande, vous changez de modèle avec -m, opencode run fonctionne sans la TUI, et opencode models nodion affiche les modèles qu'OpenCode connaît pour ce fournisseur :
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 Sources : CLI OpenCode, modèles.
Les trois modèles côte à côte
Valeurs du catalogue public de Nodion au 29 octobre 2026 :
| Modèle | Identifiant | Contexte | Sortie max. | Entrée | Niveaux de raisonnement |
|---|---|---|---|---|---|
| Kimi K3 | moonshot/kimi-k3 | 1 048 576 | 32 768 | Texte, image, vidéo | low, high, max |
| GLM 5.3 | z-ai/glm-5.3 | 1 048 576 | 131 072 | Texte | low, high, max |
| GLM 5.3 Flash | z-ai/glm-5.3-flash | 1 048 576 | 131 072 | Texte, image, vidéo, fichier | low, high, max |
Les trois prennent en charge les outils (tools), le mode JSON, les sorties structurées et le raisonnement. GLM 5.3 n'accepte que du texte : pour les captures d'écran et les autres images, il vous faut Kimi K3 ou GLM 5.3 Flash. Les niveaux de raisonnement sont les valeurs que l'API accepte pour reasoning_effort. Les prix et les fournisseurs figurent sur la page de chaque modèle.
Utilisez une clé d'offre de code IA
Les AI Coding Plans (Go, Pro et Max) couvrent les modèles de chat et les outils. Les requêtes d'OpenCode sont des chat completions : elles sont donc décomptées de l'offre. Le propriétaire du projet achète une offre par développeur et l'attribue à un membre du projet, qui crée des clés sur cette offre dans AI Inference. Mettez cette clé dans NODION_AI_KEY ; la configuration reste la même.
L'usage est décompté sur une fenêtre de 5 heures, une fenêtre hebdomadaire et une fenêtre mensuelle. Quand l'une d'elles est pleine, les requêtes continuent sur le solde prépayé uniquement si l'offre autorise son utilisation. Les clés sans offre puisent dans le solde prépayé. Détails sur AI Coding Plans.
Dépannage
- 401 :
NODION_AI_KEYn'est pas définie dans le shell qui a lancé OpenCode (la valeur{env:...}est alors vide), ou elle contient une clé de plateforme. Utilisez une clé d'inférence (nodion_ai_…) ou une clé liée à une offre. - 404
model not found: une clé sousmodelsn'est pas un identifiant Nodion exact.curl https://api.nodion.ai/v1/modelsliste les identifiants et ne demande pas de clé. - Modèle absent de
/models: vérifiez qu'il figure sousprovider.nodion.models.opencode models nodionmontre ce que voit OpenCode. - OpenCode ne sait pas combien de contexte il reste :
limit.contextetlimit.outputmanquent pour ce modèle. - 402 : le solde ne couvre pas la requête, ou une limite de dépenses a été atteinte.
- 503 : aucune route disponible pour le modèle ne correspond aux paramètres IA du projet, par exemple parce que ses fournisseurs y sont exclus.
Sources : Référence de l'API IA : erreurs et limites, documentation AI Inference, AI Coding Plans.
Prochaines étapes
- Codex au lieu d'OpenCode : Codex CLI avec des modèles de l'UE.
- Aider, Cline et Continue : Aider, Cline et Continue avec des modèles de l'UE.
- Tous les champs des chat completions sur Nodion : Référence de l'API IA.
- Une offre mensuelle pour les agents de code : AI Coding Plans.
Questions fréquentes
Comment ajouter un fournisseur personnalisé dans OpenCode ?
Ajoutez un bloc provider dans opencode.json, avec npm réglé sur @ai-sdk/openai-compatible, options.baseURL, options.apiKey et une table models. Pour Nodion, l'URL de base est https://api.nodion.ai/v1 et la clé peut provenir de {env:NODION_AI_KEY}.
Comment sélectionner un modèle personnalisé dans OpenCode ?
Utilisez l'identifiant du fournisseur suivi de celui du modèle, par exemple nodion/moonshot/kimi-k3. Définissez-le comme model de premier niveau, passez-le avec opencode -m ou choisissez-le dans la liste /models de la TUI.
Pourquoi OpenCode ne connaît-il pas la fenêtre de contexte de mon modèle personnalisé ?
OpenCode renseigne les limites des fournisseurs standard à partir de models.dev. Pour un fournisseur personnalisé comme Nodion, définissez limit.context et limit.output pour chaque modèle dans opencode.json.
Puis-je utiliser une clé d'AI Coding Plan dans OpenCode ?
Oui. Créez une clé sur votre offre AI Coding Plans de Nodion et mettez-la dans NODION_AI_KEY ; la configuration reste la même. L'usage du chat et des outils est alors décompté des quotas de l'offre sur des fenêtres de 5 heures, hebdomadaires et mensuelles.