OpenCode con Kimi K3, GLM 5.3 y GLM 5.3 Flash: añade un proveedor personalizado en la UE
En resumen
- OpenCode usa Nodion como proveedor personalizado: un bloque en
opencode.jsoncon@ai-sdk/openai-compatible, la URL basehttps://api.nodion.ai/v1y la clave de{env:NODION_AI_KEY}, en el formato de configuración V1, que OpenCode 2 también acepta. - Los modelos se indican como ID del proveedor más ID del modelo, por ejemplo nodion/moonshot/kimi-k3, y necesitan limit.context y limit.output puestos a mano, porque Nodion no está en models.dev.
- En el catálogo de Nodion, Kimi K3, GLM 5.3 y GLM 5.3 Flash tienen cada uno un contexto de 1.048.576 tokens y los niveles de esfuerzo de razonamiento low, high y max; GLM 5.3 solo acepta texto. Los precios y los proveedores están en el catálogo de AI Inference.
- El Nodion AI Gateway solo enruta a proveedores con sede en la UE, todos con zero data retention, y una clave de un AI Coding Plan funciona con la misma configuración.
OpenCode funciona con cualquier API compatible con OpenAI mediante un proveedor personalizado en opencode.json. Apúntalo al Nodion AI Gateway (https://api.nodion.ai/v1) y podrás programar con Kimi K3, GLM 5.3 y GLM 5.3 Flash. El gateway solo enruta a proveedores con sede en la UE, todos con zero data retention. No necesitas cuenta en esos proveedores: OpenCode hace todas las llamadas con tu clave de API de Nodion.
Antes, una nota sobre versiones: OpenCode tiene ahora dos líneas de versiones. OpenCode 1 es la release actual en GitHub (v1.19.5, octubre de 2026), documentada en opencode.ai/docs. OpenCode 2 se instala por separado, con su propia documentación y otras claves de configuración nativas. El ejemplo de abajo usa el formato de configuración V1. Funciona en la release actual y OpenCode 2 también lo acepta; su guía de migración dice: “The V1 config format remains supported.”
Qué necesitas
- Una cuenta de Nodion y un proyecto con AI Inference.
- Una clave de API: una clave de inferencia de AI Inference → Keys (empieza por
nodion_ai_y se muestra una sola vez) o una clave que crees en tu AI Coding Plan. Las claves de la API de la plataforma Nodion no sirven aquí. - Saldo prepago, salvo que la clave pertenezca a un coding plan.
Exporta la clave en la shell desde la que arrancas OpenCode:
export NODION_AI_KEY=nodion_ai_your_key Añade el proveedor a opencode.json
Usa el archivo global ~/.config/opencode/opencode.json o un opencode.json en la raíz del proyecto:
{
"$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 documentación de OpenCode indica@ai-sdk/openai-compatiblepara proveedores compatibles con OpenAI en/v1/chat/completions. Usa esta ruta. Para/v1/responsesla documentación remite a@ai-sdk/openai, pero ese proveedor del AI SDK ponestoreatruepor defecto, y el endpoint Responses de Nodion no guarda nada.apiKey:{env:NODION_AI_KEY}lee la clave del entorno. Si la variable no está definida, OpenCode pone una cadena vacía, así que obtienes un error de autenticación en lugar de un error de configuración.models: las claves son los IDs de modelo de Nodion, incluida la barra. OpenCode se refiere a un modelo como ID del proveedor más ID del modelo, así que Kimi K3 queda comonodion/moonshot/kimi-k3. Su documentación muestra el mismo anidamiento conlmstudio/google/gemma-3n-e4b.limit: para los proveedores estándar, OpenCode toma los límites de contexto y de salida de models.dev. Nodion no tiene ahí ninguna entrada (comprobado el 29 de octubre de 2026), así que fija ambos a mano a partir del catálogo. Con ellos OpenCode sabe cuánto contexto queda.
En lugar de {env:...} puedes guardar la clave con /connect: baja hasta Other, introduce el ID de proveedor nodion y pega la clave. El bloque del proveedor en opencode.json lo sigues necesitando.
Fuentes, consultadas en octubre de 2026: proveedores de OpenCode, modelos, configuración, proveedores de OpenCode 2, proveedor OpenAI del AI SDK, models.dev.
Elige el modelo
El campo model de nivel superior define el modelo predeterminado. En la TUI, /models lista tu proveedor personalizado y sus modelos. En la línea de comandos puedes cambiar de modelo con -m. opencode run funciona sin la TUI, y opencode models nodion muestra qué modelos conoce OpenCode para el proveedor:
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 Fuentes: CLI de OpenCode, modelos.
Los tres modelos comparados
Valores del catálogo público de Nodion a 29 de octubre de 2026:
| Modelo | ID | Contexto | Salida máxima | Entrada | Esfuerzo de razonamiento |
|---|---|---|---|---|---|
| Kimi K3 | moonshot/kimi-k3 | 1.048.576 | 32.768 | Texto, imagen, vídeo | low, high, max |
| GLM 5.3 | z-ai/glm-5.3 | 1.048.576 | 131.072 | Texto | low, high, max |
| GLM 5.3 Flash | z-ai/glm-5.3-flash | 1.048.576 | 131.072 | Texto, imagen, vídeo, archivo | low, high, max |
Los tres admiten herramientas (tools), modo JSON, salidas estructuradas y razonamiento. GLM 5.3 solo acepta texto, así que para capturas de pantalla y otras imágenes necesitas Kimi K3 o GLM 5.3 Flash. Los niveles de esfuerzo de razonamiento son los valores que la API acepta para reasoning_effort. Los precios y los proveedores están en la página de cada modelo.
Usa una clave de coding plan
Los AI Coding Plans (Go, Pro y Max) cubren los modelos de chat y las herramientas. Las peticiones de OpenCode son chat completions, así que cuentan para el plan. El propietario del proyecto compra un plan por desarrollador y lo asigna a un miembro del proyecto, que crea claves en ese plan dentro de AI Inference. Pon esa clave en NODION_AI_KEY; la configuración no cambia.
El uso se contabiliza en tres ventanas: una de 5 horas, una semanal y una mensual. Cuando se agota uno de esos límites, las peticiones siguen con cargo al saldo solo si el plan permite usarlo. Las claves sin plan pagan con el saldo prepago. Detalles en AI Coding Plans.
Solución de problemas
- 401:
NODION_AI_KEYno está definida en la shell que arrancó OpenCode (y entonces el valor{env:...}queda vacío) o contiene una clave de la plataforma. Usa una clave de inferencia (nodion_ai_…) o una clave de plan. - 404
model not found: una clave dentro demodelsno es un ID exacto de Nodion.curl https://api.nodion.ai/v1/modelslista los IDs y no necesita clave. - Falta un modelo en
/models: comprueba que esté enprovider.nodion.models.opencode models nodionmuestra lo que ve OpenCode. - OpenCode no sabe cuánto contexto queda: faltan
limit.contextylimit.outputpara ese modelo. - 402: el saldo no cubre la petición o se ha alcanzado un límite de gasto.
- 503: ninguna ruta operativa del modelo cumple los ajustes de IA del proyecto, por ejemplo porque ahí sus proveedores están excluidos.
Fuentes: Referencia de la API de IA: errores y límites, documentación de AI Inference, AI Coding Plans.
Siguientes pasos
- Codex en lugar de OpenCode: Codex CLI con modelos de la UE.
- Aider, Cline y Continue: Aider, Cline y Continue con modelos de la UE.
- Todos los campos de chat completions en Nodion: Referencia de la API de IA.
- Un plan mensual para agentes de programación: AI Coding Plans.
Preguntas frecuentes
¿Cómo añado un proveedor personalizado a OpenCode?
Añade a opencode.json un bloque provider con npm en @ai-sdk/openai-compatible, options.baseURL, options.apiKey y un mapa models. Para Nodion, la URL base es https://api.nodion.ai/v1 y la clave puede venir de {env:NODION_AI_KEY}.
¿Cómo selecciono un modelo personalizado en OpenCode?
Usa el ID del proveedor seguido del ID del modelo, por ejemplo nodion/moonshot/kimi-k3. Ponlo como model de nivel superior, pásalo con opencode -m o elígelo en la lista /models de la TUI.
¿Por qué OpenCode no conoce la ventana de contexto de mi modelo personalizado?
OpenCode rellena los límites de los proveedores estándar a partir de models.dev. Para un proveedor personalizado como Nodion, define limit.context y limit.output para cada modelo en opencode.json.
¿Puedo usar una clave de AI Coding Plan en OpenCode?
Sí. Crea una clave en tu AI Coding Plan de Nodion y ponla en NODION_AI_KEY; la configuración no cambia. El uso de chat y herramientas cuenta entonces para las ventanas de 5 horas, semanal y mensual del plan.