Documentación
Nanocoder
Nanocoder trata los endpoints remotos igual que Ollama: como una entrada en nanocoder.providers con nombre, URL base, clave y lista de modelos. sdkProvider usa openai-compatible de forma predeterminada, así que no hace falta declarar nada más.
Una entrada Custom Provider bajo nanocoder.providers en agents.config.json — name, baseUrl, apiKey, models — sin necesidad de una línea sdkProvider, ya que el valor predeterminado es openai-compatible.
{
"nanocoder": {
"providers": [
{
"name": "Kunavo",
"baseUrl": "https://api.kunavo.com/v1",
"apiKey": "${KUNAVO_API_KEY}",
"models": ["claude-sonnet-5", "claude-haiku-4-5", "gpt-5-6-sol"]
}
]
}
}/v1. La documentación de Nanocoder lo aclara con un ejemplo, no con una regla: la tabla de campos solo describe baseUrl como «URL del endpoint de la API», pero el ejemplo de la propia página Custom Provider es "baseUrl": "https://my-api.example.com/v1", y todas las páginas de proveedores compatibles con OpenAI del sitio hacen lo mismo: https://openrouter.ai/api/v1, http://localhost:11434/v1. Si omites el sufijo, se produce un 404 en la ruta, no un 401 por la clave.sdkProvider se omite arriba intencionalmente: la tabla de campos indica que su valor predeterminado es openai-compatible, el formato de conexión que Kunavo responde aquí. Los otros valores documentados (google, anthropic, github-copilot) cambian a otro SDK, y ninguno es necesario para acceder a un endpoint de chat completions.NANOCODER_PROVIDERS (o NANOCODER_PROVIDERS_FILE); después, agents.config.json en el directorio de trabajo; y, por último, la ubicación del usuario: ~/Library/Preferences/nanocoder/ en macOS, ~/.config/nanocoder/ en Linux y %APPDATA%\nanocoder\ en Windows. Se usa la primera que se encuentra, y configurar NANOCODER_CONFIG_DIR omite por completo la búsqueda en el proyecto y en el directorio personal. Si la clave que editaste no es la que se envía, comprueba este orden de precedencia.sk-kn-) y añade crédito desde $10; las llamadas se pagan con ese saldo y las llamadas fallidas no se facturan. El panel se abre entonces en la configuración de Nanocoder.Paso a paso
- Crea una clave en
/app/keysy cópiala; solo se muestra una vez. Expórtala comoKUNAVO_API_KEYen lugar de pegarla en el archivo: Nanocoder sustituye recursivamente$VAR,${VAR}y${VAR:-default}en todas las cadenas de una entrada de proveedor, y lee.envdesde el directorio de trabajo. - Ejecuta
/settings providersdentro de Nanocoder y selecciona Custom Provider. El asistente solicita, en este orden, Provider name, Base URL, API key (optional), Model names y Request timeout, y ofrece obtener la lista de modelos del endpoint. Kunavo respondeGET /v1/models, así que la lista se carga automáticamente. - También puedes omitir el asistente y escribir
agents.config.jsontú mismo con el bloque anterior. Ten en cuenta que la configuración se resuelve archivo por archivo: si un archivo de nivel de proyecto definenanocoder.providers, se usa ese bloque completo y no se combinan con él las entradas de la configuración global. - Configura una ventana de contexto. Nanocoder resuelve el límite en este orden:
/context-max, luegocontextWindows[model], despuéscontextWindow, a continuaciónNANOCODER_CONTEXT_LIMITy, por último, models.dev. Kunavo no es un proveedor de models.dev, así que, si no configuras una de las primeras cuatro opciones, el cálculo se basará en un límite alternativo que no corresponde a tu modelo. Los valores están en/models. - Abre
/model, selecciona uno de los ID que enumeraste —el selector los muestra bajonameque especificaste— y ejecuta una tarea pequeña que tenga que llamar a una herramienta. Si las llamadas a herramientas devuelven datos mal formados en un modelo concreto,disableToolModelspermite desactivarlo para cada modelo, en lugar de para todo el proveedor.
Comprobado con Página Custom Provider de Nanocoder el 21 de septiembre de 2026. La configuración de terceros puede cambiar; si el nombre de un campo ya no coincide con lo que ves, esa página es la autoridad, no esta.
Verifica antes de depurar el cliente
Una solicitud determina si el fallo está en el endpoint, la clave o el archivo de configuración. Si devuelve JSON, la misma URL base y la misma clave funcionan en Nanocoder.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Qué ID de modelo introducir en el campo
Todos los modelos de texto están disponibles mediante un ID de modelo; la lista activa está en GET /v1/models, y el catálogo con precios está en la página de modelos. Las tarifas son USD por 1M de tokens, entrada / salida.
| ID de modelo | Entrada / salida de Kunavo | Dónde encaja en Nanocoder |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | el modelo de trabajo predeterminado para el ciclo de edición y ejecución de un agente de terminal |
claude-haiku-4-5 | $0.70 / $3.50 | sesiones largas con muchas herramientas y clasificación rápida de archivos, donde el número de turnos determina el coste |
gpt-5-6-sol | $2.00 / $12.00 | una segunda opinión de otra familia con la misma clave |
claude-opus-5 | $3.50 / $17.50 | la única refactorización compleja de una sesión, donde un plan incorrecto sale caro |
Preguntas frecuentes
¿Nanocoder admite endpoints de API personalizados?
Sí. Es una función oficial documentada, no un campo sin documentar. La página «Custom Provider» del propio Nanocoder indica que se puede añadir cualquier servicio que exponga una API compatible con OpenAI como proveedor personalizado, e incluye el objeto que hay que escribir: name, baseUrl, apiKey y models. Puedes añadirlo de forma interactiva con el asistente /settings providers o editar agents.config.json manualmente. Esa era la documentación vigente al 21 de septiembre de 2026.
¿Dónde pongo la clave API de Nanocoder?
En el campo apiKey de la entrada del proveedor en agents.config.json. Nanocoder sustituye recursivamente las variables de entorno en los campos de cadena de las configuraciones del proveedor, así que la forma más segura es usar "apiKey": "${KUNAVO_API_KEY}" y exportar el valor en el shell o en un archivo .env del directorio de trabajo. Las sobrescrituras de entorno mediante NANOCODER_PROVIDERS tienen la mayor precedencia, seguidas de agents.config.json del proyecto y, después, del archivo del usuario. Si una edición parece no surtir efecto, normalmente es porque la configuración está siendo sobrescrita antes en ese orden.
¿Debe terminar baseUrl de Nanocoder en /v1?
Sí, para un endpoint compatible con OpenAI; por ejemplo, https://api.kunavo.com/v1. La documentación de Nanocoder no establece en el texto una regla sobre el sufijo; la tabla de campos solo describe baseUrl como la URL del endpoint de la API. Sin embargo, el ejemplo de su propia página Custom Provider lo aclara: usa https://my-api.example.com/v1 y todas las páginas de proveedores compatibles con OpenAI del sitio incluyen el mismo sufijo. Si falta /v1, se obtiene un 404 en la ruta, no un error de autenticación.
¿Por qué Nanocoder no muestra ningún coste o indica un tamaño de contexto incorrecto para estos modelos?
Porque Nanocoder lee los metadatos de modelos de models.dev y un gateway de terceros que no aparece allí no tiene ninguna entrada. El orden documentado para resolver el límite de contexto es /context-max o --context-max, luego contextWindows[model], después contextWindow, luego NANOCODER_CONTEXT_LIMIT y, por último, models.dev. Configura una de las primeras cuatro opciones en la entrada del proveedor para que el indicador vuelva a ser correcto. En cualquier caso, la cifra de coste por respuesta es un cálculo del propio cliente basado en los tokens informados. Compárala con el registro de uso de tu proveedor, no con el pie de página.