OpenCode es la respuesta predeterminada y Nanocoder es la opción deliberadamente minoritaria: el 19 de septiembre de 2026 OpenCode tenía 208.444 estrellas en GitHub frente a las 2.487 de Nanocoder, y su paquete npm se descargó 9.436.914 veces en los 30 días hasta el 16 de septiembre, frente a las 6.614 de Nanocoder. Ambos son agentes de programación de terminal gratuitos, con licencia MIT, que permiten apuntar a un endpoint de API personalizado. Elegir entre ellos no es una clasificación de calidad: es elegir entre la superficie más amplia, con dos productos oficiales compitiendo por tu gasto en tokens, y una superficie más reducida gestionada por un colectivo que no vende nada.
Considera esas cifras de descargas como órdenes de magnitud, no como recuentos de usuarios. OpenCode también se instala mediante un script de curl y Homebrew, y los ejecutores de CI inflan cualquier cifra de npm, mientras que Nanocoder se distribuye mediante Homebrew y Nix además de npm. La proporción es sólida en términos direccionales; las cifras absolutas no lo son.
Primero, asegúrate de comparar los dos proyectos correctos
Hay tres colisiones de nombres directamente en los resultados de búsqueda de esta comparación, y dos de ellas harán que una configuración falle en lugar de limitarse a confundirte.
| Nombre que quizá hayas encontrado | Lo que realmente es | ¿Está incluido en esta comparación? |
|---|---|---|
| anomalyco/opencode | El OpenCode de TypeScript en opencode.ai. No está archivado, tiene licencia MIT y su rama predeterminada es dev | Sí: este es el OpenCode al que nos referimos aquí |
| opencode-ai/opencode | La CLI original en Go. Archivada, con 13.752 estrellas y el último push del 18 de septiembre de 2025; su README dirige a los lectores a Crush | No. Consulta la entrada del directorio |
| OpenCoder | Una familia de modelos de lenguaje de gran escala de código abierto, no una CLI. No tiene archivo de configuración, ajuste de proveedor ni opción BYOK | No. Sus puntuaciones de referencia no dicen nada sobre el agente |
| Nano-Collective/nanocoder | Nanocoder, npm @nanocollective/nanocoder, documentación en docs.nanocollective.org | Sí: este es el Nanocoder al que nos referimos aquí |
| nanocode-project/nanocode | Un proyecto de Python independiente y prácticamente inactivo, creado el 1 de abril de 2026, que recibió un último push al día siguiente | No. Consulta la entrada del directorio |
Hay otro cambio que conviene conocer antes de seguir un tutorial antiguo. El repositorio al que muchas guías todavía llaman sst/opencode ahora redirige mediante un 301 a anomalyco/opencode, y la organización de GitHub sst está vacía, con una descripción que indica que se ha trasladado a anomalyco (API de GitHub, 19 de septiembre de 2026). La propia documentación de OpenCode lo corrobora en los comandos de instalación — brew install anomalyco/tap/opencode, ghcr.io/anomalyco/opencode — y todas las páginas de documentación llevan un pie de página con copyright de Anomaly. El nombre del producto no cambió, solo la organización. En las redes sociales circula una fecha del cambio de nombre; no se pudo verificar aquí, así que no se publica ninguna en esta página.
Quién debería elegir cuál
Parte de tu modelo predeterminado, no de la lista de funciones. Si tu día ya transcurre con un modelo de frontera alojado y la inferencia local es un experimento ocasional, el enfoque de OpenCode coincide con el tuyo. Si tu día transcurre con Ollama, llama.cpp, LM Studio, vLLM o MLX y una API alojada es la excepción, el de Nanocoder coincide contigo; aunque esta es una diferencia de configuración predeterminada, no de capacidad, porque OpenCode también documenta las URL base de Ollama, LM Studio y llama.cpp.
| Si esto se aplica a ti | Elegir | Porque |
|---|---|---|
| Quieres el agente en una TUI, una aplicación de escritorio y una extensión para IDE, además de un servidor y complementos | OpenCode | Nanocoder incluye una TUI de terminal con --vscode y un servidor ACP para Zed; esa es toda su superficie |
| Necesitas permisos declarativos y revisables por herramienta y por agente | OpenCode | Las reglas son datos: allow/ask/deny por herramienta, con comodines de bash, registrados en el repositorio |
| Quieres que los comandos de shell estén confinados por el sistema operativo, no por un prompt | Nanocoder | nanocoder.sandbox envuelve execute_bash en sandbox-exec o bwrap; OpenCode no tiene una bandera equivalente en su documentación de permisos |
Tu gateway ofrece /v1/responses y quieres ese formato de transmisión | OpenCode | La unión de proveedores de Nanocoder no tiene una opción genérica de Responses |
| Quieres que el responsable de mantenimiento de tu agente no tenga ningún interés en qué tokens compras | Nanocoder | No hay cuenta, nivel ni gateway de Nanocoder. OpenCode ofrece dos |
| Estás estandarizando un equipo y necesitas SSO y una configuración impuesta para toda la organización | OpenCode | Eso es exactamente lo que habilita OpenCode Enterprise, por puesto y a un precio no publicado |
| Quieres un único modelo de extensiones en lugar de varios subsistemas | Nanocoder | Skills es el paraguas único para comandos, subagentes, herramientas y activadores |
| Quieres un conjunto más amplio de incidencias, ejemplos e integraciones de terceros | OpenCode | La diferencia de adopción anterior es todo el argumento, y es una diferencia real |
El coste de migración es simétrico y pequeño en la capa de proveedores, y asimétrico por encima de ella. Un endpoint personalizado es un bloque JSON en cualquiera de los dos clientes, así que trasladar un gateway lleva minutos. Lo que no se traslada es lo que construiste encima: los paquetes de Skills de Nanocoder bajo .nanocoder/skills/ y sus hooks de ciclo de vida — donde un hook previo al uso de una herramienta que termina con un código distinto de cero deniega la llamada e indica al modelo el motivo — no tienen un equivalente de OpenCode en el que pegarlos, y los bloques de permisos por agente, los complementos y la configuración de LSP de OpenCode no tienen equivalente en Nanocoder. Cuenta ese trabajo antes de contar las líneas de configuración.
Cómo difieren realmente los dos clientes
| Dimensión | Nanocoder | OpenCode |
|---|---|---|
| Repositorio y licencia | Nano-Collective/nanocoder, MIT según package.json, y el texto de la licencia MIT está en LICENSE.md. El detector propio de GitHub todavía informa NOASSERTION para el repositorio | anomalyco/opencode, MIT según la API de GitHub |
| Versión actual | v1.30.0, 26 de agosto de 2026; npm @nanocollective/nanocoder 1.30.0 el mismo día | v1.18.31, 14 de septiembre de 2026; npm opencode-ai 1.18.31 el mismo día |
| Tiempo de ejecución | Node >= 22 según package.json | Se instala mediante un script de curl, npm, Homebrew, mise o Docker, según la documentación de instalación |
| Interfaces | TUI de terminal, --vscode, --acp para Zed | TUI de terminal, aplicación de escritorio, extensión para IDE, además de CLI, web, servidor, SDK y complementos |
| Archivo de configuración | agents.config.json — directorio del proyecto o directorio de configuración por sistema operativo; NANOCODER_CONFIG_DIR omite todas las demás búsquedas | opencode.json o ~/.config/opencode/opencode.json, JSON o JSONC, con interpolación de {env:VAR} y {file:path} |
| Precedencia de la configuración | Se resuelve bloque por bloque: el archivo con mayor precedencia que define un bloque proporciona el bloque completo, y los campos omitidos recurren a los valores predeterminados integrados, no a un archivo de menor precedencia | Se combinan ocho capas, no se reemplazan: las configuraciones posteriores sobrescriben las anteriores solo en las claves en conflicto |
| Control de ejecución | Cuatro modos globales alternables con Shift+Tab: Normal, Auto-Aceptar (bash y git destructivo siguen solicitando confirmación), Yolo y Plan | Reglas declarativas por herramienta para read, edit, bash, webfetch, task, skill, lsp y más, cada una con allow/ask/deny, comodines y anulaciones por agente |
| Sandbox a nivel del sistema operativo | nanocoder.sandbox, desactivado de forma predeterminada: sandbox-exec en macOS, bwrap en Linux, no compatible con Windows. La documentación indica explícitamente que no constituye un límite para secretos; las lecturas no se bloquean | No se ofrece como bandera en la documentación de permisos; doom_loop y external_directory tienen como valor predeterminado ask y las lecturas de .env se deniegan |
| Sin interfaz | nanocoder run "..." acepta automáticamente y termina; --plain --json emite un objeto JSON con la respuesta, el registro de herramientas y los archivos modificados. El límite de turnos nanocoder.maxTurns tiene un valor predeterminado de 200, y NANOCODER_MAX_TURNS lo anula | opencode run "..." es el equivalente no interactivo documentado, con --format json para obtener una salida legible por máquinas: eventos JSON sin procesar en lugar de un único objeto resumido. La documentación también incluye las superficies de servidor, SDK, GitHub y GitLab |
| Extensiones | Skills como un único paraguas para comandos, subagentes, herramientas y activadores, además de hooks de ciclo de vida y MCP | Subsistemas separados: complementos, skills de agente, servidores LSP, servidores MCP y ACP |
| Productos propios de pago | Ninguno. Sin cuenta, sin nivel y sin gateway | Zen (pago por uso), Go (10 $ al mes), Enterprise (por puesto, sin precio publicado) |
Fuentes de esta tabla, todas consultadas el 19 de septiembre de 2026 salvo que se indique lo contrario: la API de GitHub, el registro de npm, la documentación de configuración y funciones de Nanocoder, y las páginas de configuración, permisos y CLI de OpenCode.
Apuntar cualquiera de los dos a tu propio endpoint de API
Ambos documentan un endpoint personalizado, por lo que un gateway es una configuración compatible en cualquiera de los dos. La diferencia está en cuántos formatos de transmisión puedes utilizar.
OpenCode especifica un paquete npm en el bloque del proveedor, y esa elección selecciona el protocolo: @ai-sdk/openai-compatible utiliza /v1/chat/completions, y @ai-sdk/openai utiliza /v1/responses. Kunavo ofrece ambos, así que se trata de una elección real, no de una formalidad.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"kunavo": {
"npm": "@ai-sdk/openai-compatible",
"name": "Kunavo",
"options": {
"baseURL": "https://api.kunavo.com/v1",
"apiKey": "{env:KUNAVO_API_KEY}"
},
"models": {
"claude-sonnet-4-6": {
"name": "Claude Sonnet 4.6",
"limit": { "context": 200000, "output": 64000 }
}
}
}
}
}Hay dos detalles que la página de proveedores deja claros y que importan para cualquier endpoint que aún no conozca. Primero, registra la clave con /connect, desplázate hasta Other y utiliza el mismo ID de proveedor que usaste en el archivo; las credenciales se guardan en ~/.local/share/opencode/auth.json. Segundo, aquí conviene configurar el bloque limit: la documentación indica que los proveedores estándar obtienen automáticamente de models.dev los límites de contexto y de salida, y Kunavo no es uno de ellos. Los valores del bloque anterior son las cifras del ejemplo de la propia documentación, no los límites publicados de este modelo; establécelos a partir de la página del propio modelo antes de confiar en el medidor de contexto.
El equivalente de Nanocoder está en nanocoder.providers. Observa el baseUrl en minúsculas, que difiere del baseURL de OpenCode, y la sustitución de ${VAR} aplicada recursivamente a los campos de cadena.
{
"nanocoder": {
"providers": [
{
"name": "Kunavo",
"sdkProvider": "openai-compatible",
"baseUrl": "https://api.kunavo.com/v1",
"apiKey": "${KUNAVO_API_KEY}",
"models": ["claude-sonnet-4-6"],
"contextWindow": 200000
}
]
}
}Conviene leer tres trampas específicas de Nanocoder antes de pegar eso. La unión sdkProvider está cerrada en cinco valores en source/types/config.ts: openai-compatible, google, anthropic, chatgpt-codex y github-copilot; el cuarto está conectado a un inicio de sesión en el navegador contra el propio endpoint de Codex de ChatGPT, en lugar de una URL base arbitraria, por lo que no hay una opción genérica de Responses que declarar. Si, en cambio, apuntas sdkProvider: "anthropic" a un endpoint compatible con Anthropic, la propia documentación de proveedores de Nanocoder advierte que @ai-sdk/anthropic deriva el límite de salida del ID del modelo y recurre a 4096 tokens para cualquier modelo que no reconozca como Claude, truncando las respuestas largas a mitad de una frase sin producir ningún error; la solución es un maxOutputTokens explícito en la entrada del proveedor. Y como la configuración se resuelve bloque por bloque, un archivo de nivel de proyecto que defina nanocoder.providers proporciona el bloque completo; las entradas hermanas de tu configuración global no se combinan con él. nanocoder config diff es la forma documentada de ver qué se resolvió realmente.
Ninguno de los dos fragmentos se ha probado en tiempo de ejecución contra el endpoint de Kunavo. Kunavo publica una guía de configuración para OpenCode, que es una referencia de configuración, no una prueba de compatibilidad, y no publica ninguna para Nanocoder. Trata ambos bloques como puntos de partida, ejecuta una tarea acotada y lee lo que realmente registró tu cuenta.
Una carencia compartida: ninguno de los dos clientes conoce los metadatos de modelos de tu gateway
Ambos clientes dependen de models.dev para los límites de contexto, los límites de salida y el coste por token. Ese archivo incluía 222 proveedores cuando se comprobó el 19 de septiembre de 2026, y Kunavo no estaba entre ellos; esta página no puede determinar el motivo de la ausencia. La consecuencia difiere ligeramente entre clientes, pero se aplica por igual a ambos, así que no es una razón para preferir uno.
En OpenCode, declara limit.context y limit.output por modelo o el indicador de contexto restante calculará el presupuesto usando un valor predeterminado que no corresponde al de tu modelo. En Nanocoder, establece contextWindow o contextWindows por modelo; el pie de página de cada respuesta imprime el recuento de tokens y un coste estimado calculado a partir de los precios de models.dev, y su documentación aclara que el segmento de coste se omite cuando no hay precios disponibles, por lo que la ausencia de una cifra significa desconocido, no cero. En cualquier caso, la cifra del cliente es su propio cálculo sobre los tokens informados: concíliala con el registro de tu proveedor, no con el pie de página.
Cuánto te cuesta realmente cada uno
Ambos clientes son gratuitos. La asimetría está en lo que hay detrás de ellos.
Nanocoder no tiene cuenta, nivel, servicio alojado ni nada a lo que actualizarse; su README afirma que no hay niveles de pago que limiten las partes útiles, y el proyecto se describe como financiado por patrocinadores, no por usuarios. Hay una información que corresponde incluir aquí: Atlas Cloud aparece como patrocinador, y también figura en la propia lista de proveedores compatibles de Nanocoder y vende un plan de programación. Es un incentivo no neutral en un proyecto que, por lo demás, no depende de ningún proveedor, y conviene que lo sepas.
OpenCode también es gratuito, pero el mismo proveedor vende dos productos que compiten exactamente por el gasto que un gateway pretende captar. Ninguno es obligatorio: la documentación describe ambos como opcionales, y la página de objetivos de Zen se compromete a permitirte usar cualquier otro proveedor con OpenCode.
| Producto | Precio publicado | Lo que realmente deberías presupuestar |
|---|---|---|
| Nanocoder | $0, MIT | Tokens del modelo al precio del proveedor que configures, o hardware y electricidad para modelos locales |
| OpenCode | $0, MIT | Lo mismo: el cliente no cobra nada por sí mismo |
| OpenCode Go | $10 al mes | La oferta fija que la documentación denomina modelos de programación abiertos, que no se limita a modelos con pesos abiertos: incluye Grok 4.6 y GPT 5.6 Luna. Cada modelo tiene un límite mensual de 15 $ a 60 $, con un límite de 5 horas equivalente al 20 % de ese tope y uno semanal equivalente al 50 %. Solo un miembro por espacio de trabajo puede suscribirse |
| OpenCode Zen | Pago por uso, por 1 millón de tokens | Claude Opus 5 a 5,00 $ de entrada / 25,00 $ de salida; Claude Sonnet 5 a 2,00 $ / 10,00 $; Claude Haiku 4.5 a 1,00 $ / 5,00 $. La recarga automática añade 20 $ cada vez que el saldo baja de 5 $ |
| OpenCode Enterprise | Por puesto, sin cifra publicada | SSO, configuración para toda la organización y obligación de dirigir el tráfico a través de un único gateway interno. La página indica que, si tienes tu propio gateway, no se cobran los tokens |
Consultado el 19 de septiembre de 2026. Hay dos aspectos que esta tabla trata con cuidado. La página de objetivos de Zen expresa la intención de trasladar las bajadas de precio vendiendo al coste, con un margen añadido únicamente para cubrir las comisiones de procesamiento. Las tres tarifas de Claude que publica coinciden con las tarifas publicadas por la propia Anthropic para esos modelos: Opus 5 a 5 $ / 25 $, Sonnet 5 a 2 $ / 10 $ y Haiku 4.5 a 1 $ / 5 $; por tanto, para esos tres modelos, comparar con Zen equivale a comparar con la tabla de precios del proveedor del modelo. Esa comprobación se realizó únicamente para esos tres modelos, el 19 de septiembre de 2026, y no dice nada sobre el resto de la oferta de Zen. Además, los modelos gratuitos de Zen incluyen en la misma página textos sobre el uso de datos, desde el uso de datos para mejorar el modelo durante un periodo gratuito hasta endpoints de solo prueba que indican que no se deben enviar datos confidenciales. Un nivel gratuito con derechos de entrenamiento asociados es un producto distinto de un nivel gratuito sin ellos.
Una estimación calculada de la factura de tokens bajo cualquiera de los dos clientes
Esto es un cálculo ilustrativo de tokens, no el coste medido de una tarea ni un límite máximo de facturación. Supón una sesión que envía 200,000 tokens de entrada sin caché y recibe 15,000 tokens de salida. Las tarifas proceden del catálogo activo de Kunavo por millón de tokens; tus sesiones reales variarán según el tamaño del repositorio, la salida de las herramientas y la frecuencia con la que el agente vuelva a leer archivos.
| Modelo | Entrada/salida por 1M | Coste estimado, una sesión | Sesiones modeladas por cada 10 $ de crédito |
|---|---|---|---|
| Claude Haiku 4.5 | $0.70 / $3.50 | $0.192 | 51 |
| GPT-5.6 Terra | $0.70 / $4.20 | $0.203 | 49 |
| Claude Sonnet 4.6 | $2.10 / $10.50 | $0.578 | 17 |
| Claude Opus 5 | $3.50 / $17.50 | $0.963 | 10 |
La comparación que realmente interesa aquí es con los 10 $ mensuales de OpenCode Go, y no es equivalente. Go ofrece una oferta fija con límites mensuales por modelo de 15 $ a 60 $: su tabla de límites de uso no incluye ningún modelo Claude ni Gemini, su única entrada GPT es GPT 5.6 Luna, y también incluye Grok 4.6; por tanto, la expresión «modelos de programación abiertos» de la documentación no significa únicamente pesos abiertos (comprobado el 19 de septiembre de 2026). Los modelos anteriores pertenecen a una oferta completamente distinta. Con estos supuestos, 10 $ de crédito prepago de Kunavo permiten realizar aproximadamente 51 sesiones de ese tipo con Claude Haiku 4.5 a $0.192 cada una, y alrededor de 10 con Claude Opus 5. Esto sirve para dimensionar un presupuesto; no indica cuál produce un trabajo mejor en tu repositorio, y la tarifa más baja publicada no plantea la misma pregunta que el menor coste para terminar la tarea: un modelo más barato que necesita tres intentos puede costar más que uno que necesita uno.
La comparación equivalente es la oferta de pago por uso de Zen, donde el mismo modelo aparece en ambos lados. Zen publica Claude Opus 5 a 5,00 $ por millón de tokens de entrada y 25,00 $ por millón de salida; el catálogo de Kunavo actualmente indica $3.50 y $17.50 para el mismo modelo. Esa es la comparación que vale la pena hacer, y conviene leerla con atención: los 5,00 $ / 25,00 $ de Zen son la tarifa publicada por la propia Anthropic para este modelo, así que se trata de dos catálogos que fijan precios distintos para el mismo modelo, no de ofrecer un precio inferior al de un revendedor con precios inflados. Confirma ambos precios en el proceso de pago antes de trasladar un presupuesto, porque cualquiera de los dos catálogos puede cambiar sus tarifas.
El importe del catálogo de Kunavo es un mínimo de facturación, no un límite máximo: cuando el proveedor comunica su cargo, se factura el mayor de estos dos importes: el coste del catálogo o el coste del proveedor multiplicado por el factor de recargo aplicable. Los cargos por caché y las herramientas externas quedan fuera de este ejemplo. La recarga mínima es de $10 en crédito prepago, lo que constituye un mínimo de fondos que se deben añadir, no una tarifa por tarea ni una suscripción.
Configurar el que hayas elegido
Si has elegido OpenCode, el bloque de configuración anterior constituye toda la integración y la guía de integración de OpenCode cubre ambos formatos de transmisión en detalle; crea una cuenta de Kunavo cuando estés listo para cargar fondos en una clave. Si has elegido Nanocoder, utiliza la misma URL base mediante su proveedor openai-compatible y mantén disponible una ruta operativa mientras lo pruebas; aquí no se ha realizado ninguna prueba en tiempo de ejecución de Nanocoder con Kunavo.
¿Sigues decidiendo? Alternativas a OpenCode amplía el campo más allá de estos dos, la mejor API para OpenCode compara específicamente las rutas de proveedores para ese cliente, Precios de OpenCode profundiza en Zen y Go, y el directorio de API para agentes registra cómo gestiona cada cliente de este espacio una URL base personalizada. Si un bloque de proveedor ya está fallando, Proveedor de OpenCode no encontrado cubre la causa habitual, y API compatible con OpenAI explica qué garantiza y qué no garantiza esa expresión.
Preguntas frecuentes
¿Es Nanocoder u OpenCode mejor?
Ninguno es mejor en abstracto y no tienen el mismo nivel de adopción. OpenCode es la opción predominante: 208.444 estrellas en GitHub y 9.436.914 descargas de npm para opencode-ai en los 30 días hasta el 16 de septiembre de 2026, frente a 2.487 estrellas y 6.614 descargas de @nanocollective/nanocoder en el mismo periodo. Elige OpenCode cuando quieras una superficie más amplia —TUI, escritorio, extensión para IDE, servidor, plugins, integraciones con GitHub y GitLab y un sistema de configuración pensado para el control de toda la organización—. Elige Nanocoder cuando los modelos locales sean tu opción predeterminada y no un recurso de reserva, cuando quieras un aislamiento del sistema operativo para los comandos de shell o cuando prefieras que el mantenedor de tu agente no te venda también tokens. Las cifras de descargas están infladas por la CI y por los canales de instalación paralelos, así que léelas como órdenes de magnitud, no como recuentos de usuarios.
¿Es Nanocoder el mismo proyecto que nanocode?
No, y confundirlos romperá tu configuración. Nanocoder es Nano-Collective/nanocoder, publicado en npm como @nanocollective/nanocoder y documentado en docs.nanocollective.org. nanocode es nanocode-project/nanocode, un proyecto de Python independiente y casi inactivo creado el 1 de abril de 2026, cuyo último push fue al día siguiente. Sus comandos de instalación, archivos de configuración y ajustes de URL base son mutuamente incompatibles, y la compatibilidad anunciada de nanocode con OpenAI no existe en su código: envuelve el SDK de Anthropic, por lo que un endpoint simple de chat completions no funcionará con él.
¿Cuál es este OpenCode: el de Go o el de TypeScript?
El de TypeScript. El repositorio que antes estaba en sst/opencode ahora redirige con un 301 a anomalyco/opencode, y la organización de GitHub sst está vacía, con un aviso que indica que se ha trasladado a anomalyco. El nombre del producto sigue siendo OpenCode; la documentación de opencode.ai usa rutas de instalación de anomalyco y lleva al pie el copyright de Anomaly. Otro proyecto, opencode-ai/opencode, es una CLI de Go archivada cuyo último push fue el 18 de septiembre de 2025 y cuyo README dirige a los usuarios a Crush. Su formato de configuración y su lista de proveedores no se aplican al OpenCode actual.
¿Pueden Nanocoder y OpenCode usar ambos un gateway de API de terceros?
Sí, ambos documentan un endpoint personalizado, pero la superficie de protocolos accesible difiere. OpenCode elige el formato de comunicación nombrando un paquete npm en el bloque del proveedor: @ai-sdk/openai-compatible para /v1/chat/completions y @ai-sdk/openai para /v1/responses, según su documentación de proveedores. La unión sdkProvider de Nanocoder está cerrada en cinco valores en source/types/config.ts: openai-compatible, google, anthropic, chatgpt-codex y github-copilot; y chatgpt-codex está vinculado a un inicio de sesión en el navegador contra el propio endpoint de Codex de ChatGPT, no contra una URL base arbitraria, por lo que no existe una opción genérica de Responses. Un gateway que sirva /v1/responses debe alcanzarse a través de su interfaz de chat completions en Nanocoder.
¿OpenCode te obliga a comprar OpenCode Zen o OpenCode Go?
No. La documentación propia de OpenCode describe Zen y Go como opcionales, y la página de objetivos de Zen se compromete a permitirte usar cualquier otro proveedor con OpenCode. La barrera comercial es OpenCode Enterprise, con precio por plaza y sin una cifra publicada, y lo que restringe es el control central —SSO, configuración para toda la organización y forzar el tráfico a través de un gateway interno—, no la capacidad de configurar un endpoint personalizado. La página de objetivos de Zen también declara la intención de trasladar las bajadas de precio vendiendo al coste, con un margen solo para cubrir las comisiones de procesamiento; las tres tarifas de Claude que publica coinciden con las tarifas publicadas por Anthropic para esos modelos, comprobadas el 19 de septiembre de 2026.
¿Por qué mi modelo no muestra ningún coste o muestra un límite de contexto incorrecto en cualquiera de los dos clientes?
Porque ambos clientes leen los metadatos de los modelos desde models.dev, cuyo api.json enumeraba 222 proveedores al comprobarlo el 19 de septiembre de 2026 y no incluye Kunavo. En OpenCode declaras manualmente models.<id>.limit.context y .limit.output, porque la documentación indica que solo los proveedores estándar los obtienen automáticamente de models.dev; si los omites, el cliente calcula el contexto restante respecto a un valor predeterminado que no es el de tu modelo. En Nanocoder estableces contextWindow o contextWindows por modelo, y el pie de coste por respuesta simplemente no muestra nada cuando no hay precios disponibles; su documentación deja claro que la ausencia de una cifra significa desconocido, nunca cero.
¿Cuánto cuesta cambiar de uno al otro?
El bloque del proveedor es la parte fácil; las instrucciones del agente y las extensiones no lo son. Ambos aceptan una configuración JSON con una URL base, una clave y una lista de modelos, por lo que volver a declarar un gateway lleva diez minutos en cualquiera de las dos direcciones. Lo que no se puede trasladar es todo lo construido encima: los paquetes de Skills de Nanocoder bajo .nanocoder/skills/ y sus hooks de ciclo de vida no tienen un equivalente en OpenCode donde copiarlos, y las reglas de permisos por herramienta, las definiciones de agentes, los plugins y la integración con LSP de OpenCode tampoco tienen equivalente en Nanocoder. Calcula la migración según cuánto hayas escrito de todo eso, no según el bloque del proveedor.
Las cifras del repositorio, las versiones y las descargas se obtuvieron de la API de GitHub y del registro de npm el 19 de septiembre de 2026; las afirmaciones sobre comportamiento y precios proceden de la documentación propia de ambos proyectos de esa misma fecha, y la lista de proveedores de models.dev también se comprobó entonces. Ninguno de los dos clientes se probó en tiempo de ejecución contra el endpoint de Kunavo, no se realizó ninguna prueba de rendimiento o compatibilidad, y todas las cifras en dólares de Kunavo de esta página son cálculos ilustrativos de tokens basados en el catálogo activo, no el coste medido de una tarea.