Documentación
twinny
twinny no solicita una URL base. Solicita un protocolo, un nombre de host, un puerto y una ruta de API; para el chat, esa ruta es la base de la API. Por tanto, usa https, api.kunavo.com y /v1, y deja el puerto en blanco.
twinny no tiene un campo para la URL base — Add provider → OpenAI-compatible server, después Protocol https, Hostname api.kunavo.com, Port vacío y API path /v1; su panel de chat usará tu clave.
Label Kunavo
Type Chat
Provider OpenAI-compatible server
Hostname api.kunavo.com
Port (leave blank — "Blank means the protocol's default")
Protocol https
API path /v1
Model name claude-sonnet-5
FIM template (Autocomplete only — not part of a Chat provider)
API key sk-kn-.../v1, no /v1/chat/completions. La tabla de proveedores de twinny lo resuelve en una sola frase: «Para el chat, la ruta es la base de la API; twinny añade /chat/completions». Por eso, si la ruta ya incluye ese segmento, se genera /v1/chat/completions/chat/completions y un error 404. Aquí no hay un único campo de URL base que puedas configurar mal, pero la misma tabla ofrece un atajo: pega https://api.kunavo.com/v1 en Hostname y se «divide en protocolo, host, puerto y ruta».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 twinny.Paso a paso
- Cree una clave en
/app/keysy cópiela: se muestra una sola vez. - Abre la pestaña Providers desde el icono del robot en la parte superior de la barra lateral, o ejecuta Manage twinny providers desde la paleta de comandos.
- Add provider → en On your machine, elige
OpenAI-compatible server, el ajuste preestablecido genérico. Aparece configurado paralocalhost:8080. - Establece Protocol en
https, Hostname enapi.kunavo.com, deja Port en blanco y establece API path en/v1. Deja Type enChat. - Pega la clave en API key: twinny la envía como
Authorization: Bearer. Después, establece Model name, escribiéndolo o mediante Choose from the server's models, ya que Kunavo responde aGET /v1/models. - Pulsa Test provider y luego Use this provider para establecerlo como proveedor de chat activo. Usa Copy para duplicar la fila y añadir un segundo modelo, en lugar de volver a escribir los cuatro campos del endpoint.
Comprobado con la página Other local servers de twinny 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 twinny.
# 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 twinny |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | el panel de chat, la edición en línea y la revisión de código: la configuración predeterminada para el trabajo |
claude-haiku-4-5 | $0.70 / $3.50 | mensajes de confirmación, asistentes de terminal y acciones de código, donde predomina el volumen |
gpt-5-6-terra | $0.70 / $4.20 | archivos largos pegados en el chat y una segunda opinión de otra familia cuando una revisión se queda corta |
El chat funciona. El autocompletado y el índice, no.
twinny divide el trabajo entre tres tipos de proveedores, y cada uno se configura por separado; por eso, decir que «twinny funciona con Kunavo» solo es cierto para uno de ellos. Los otros dos no son opciones de configuración que aún no hayas encontrado: las rutas que necesitan no están disponibles en Kunavo.
| Tipo de proveedor | Qué envía twinny | En api. |
|---|---|---|
| Chat | POST con formato OpenAI a <API path>/ | Funciona: esta es la configuración descrita arriba. |
| Autocompletado (FIM) | un prompt sin procesar de tipo fill-in-the-middle a /v1/ | No. Kunavo no tiene una ruta /v1/ |
| Representaciones vectoriales | una solicitud a /v1/ | No. Kunavo no ofrece ningún modelo de embeddings, así que aquí no se puede crear el índice del espacio de trabajo. |
Ninguna de las dos limitaciones impide la configuración, porque twinny mantiene un proveedor activo por tipo y son independientes entre sí. La página de API alojadas de twinny denomina a esta combinación «una configuración habitual»: un modelo base local pequeño para el completado y un modelo alojado para el chat, las revisiones y las ediciones. El índice del espacio de trabajo sigue el mismo esquema: aquí no se ofrece el paso de generación de embeddings, y la documentación de twinny recomienda usar para ello un modelo local, como nomic-embed-text en Ollama. Los vectores de distintos modelos no se pueden combinar, así que cambiar ese modelo requiere volver a crear el índice, no actualizarlo.
Preguntas frecuentes
¿Cómo conecto twinny a un endpoint de API personalizado?
Abre la pestaña Providers desde el icono del robot en la barra lateral de twinny, elige Add provider y, en «On your machine», selecciona el ajuste preestablecido genérico llamado «OpenAI-compatible server». La documentación de twinny indica que el formulario del proveedor acepta cualquier nombre de host, puerto, protocolo y ruta; por tanto, establece Protocol en https, Hostname en el host de tu endpoint, deja Port en blanco para usar el puerto predeterminado del protocolo y establece API path en la base de la API. Pega tu clave en el campo API key, que twinny envía en un encabezado Authorization: Bearer, y pulsa Test provider: se envía una solicitud pequeña para la función de ese proveedor y se informa del éxito o del error devuelto por el servidor, junto con la URL a la que se llamó.
¿La ruta de la API de twinny debe ser /v1 o /v1/chat/completions?
Para un proveedor de chat, es /v1. La tabla de proveedores de twinny indica: «Para el chat, la ruta es la base de la API; twinny añade /chat/completions». Así, la extensión construye la ruta completa y, si la ruta ya lo incluye, se obtiene /v1/chat/completions/chat/completions, que devuelve un error 404 en lugar de un error de autenticación. En ese mismo formulario, el autocompletado y los embeddings siguen la convención contraria: allí la ruta de la API es la ruta completa; en los valores predeterminados del ajuste genérico son /v1/completions y /v1/embeddings.
¿Dónde va la clave de API de twinny y hay un campo para la URL base?
La clave va en el campo API key del proveedor y se envía como Authorization: Bearer; la documentación de twinny indica que las claves se guardan con el proveedor en el almacenamiento de VS Code y se ocultan en los registros de twinny. No hay un único campo para la URL base: el endpoint se divide entre Protocol, Hostname, Port y API path. Hay un atajo: puedes pegar una URL completa en Hostname. La documentación indica que una URL pegada, como https://my-box:8080/v1, se divide en protocolo, host, puerto y ruta; por tanto, al pegar https://api.kunavo.com/v1 se rellenan tres campos a la vez.
¿Puede funcionar el autocompletado de twinny a través de una pasarela alojada como Kunavo?
No; el problema es que falta una ruta, no una opción de configuración. El ajuste preestablecido genérico de twinny compatible con OpenAI envía un prompt sin procesar de tipo fill-in-the-middle a una ruta del tipo /v1/completions, y api.kunavo.com no ofrece /v1/completions. El catálogo tampoco incluye un modelo base o de código entrenado para fill-in-the-middle. Mantén el autocompletado en un servidor local: las preguntas frecuentes de twinny sugieren qwen2.5-coder:1.5b-base en Ollama, y usa el proveedor alojado para el chat. twinny denomina a esta combinación una configuración habitual y, como el proveedor activo se elige por tipo, no hace falta cambiarlo.
¿Puede Kunavo alimentar el índice del espacio de trabajo de twinny?
No. El índice del espacio de trabajo genera embeddings de tus archivos mediante un proveedor de Embeddings, y Kunavo no ofrece ningún modelo de embeddings: ningún modelo de su catálogo tiene ese endpoint, así que la solicitud se rechaza en lugar de recibir una respuesta. La documentación de twinny recomienda nomic-embed-text en Ollama para esta tarea; se ejecuta en tu equipo y es independiente del proveedor que atienda el chat. Esta configuración dividida funciona; si más adelante cambias el modelo de embeddings, tendrás que volver a crear el índice, ya que los vectores de modelos distintos no se pueden combinar.
¿Por qué no usar el ajuste preestablecido OpenAI o Anthropic de twinny con una clave de Kunavo?
Porque esos ajustes preestablecidos no envían la solicitud al destino que esperas. La página de API alojadas de twinny indica que las solicitudes de chat a una API alojada pasan por el SDK del proveedor hasta su endpoint fijo, por lo que los campos de nombre de host, puerto y ruta quedan ocultos. La clave que pegues se enviaría al endpoint del propio proveedor, no a tu pasarela. El ajuste preestablecido genérico «OpenAI-compatible server» permite editar los campos del endpoint, por eso se indica arriba. Los IDs de modelo se transmiten tal cual al endpoint que hayas configurado, así que un ID de Claude con un proveedor compatible con OpenAI es la combinación prevista, no una incompatibilidad.
¿Ha probado Kunavo twinny?
No. Kunavo no ha realizado ninguna prueba de funcionamiento de este cliente; la configuración anterior se basa en la documentación de twinny, consultada el 21 de septiembre de 2026, y en la tabla de rutas de Kunavo. Publicar una guía de configuración no equivale a hacer una prueba. Puedes comprobarlo sin coste con el botón Test provider de twinny, que muestra la URL a la que llamó junto con la respuesta del servidor. Una solicitud curl a /v1/models permite determinar si el problema está en el endpoint, la clave o el formulario.