Documentación

Documentación

Mistral Vibe CLI

Vibe CLI se conecta a un endpoint de terceros mediante un bloque TOML editado a mano, y la propia documentación de Mistral usa una pasarela como ejemplo. Añade cinco líneas bajo [[providers]] y el agente podrá ejecutar Claude o GPT con tu clave.

Un bloque [[providers]] de cinco líneas en .vibe/config.toml — api_base, api_key_env_var, api_style — dirige Vibe CLI a Kunavo, con la clave almacenada en una variable de entorno en lugar del archivo.

.vibe/config.toml
# ./.vibe/config.toml (project) or ~/.vibe/config.toml (user).
# "Project-level configuration takes precedence over user-level
# configuration", and the project file loads only in a trusted folder.
active_model = "sonnet-kunavo"

[[providers]]
name = "kunavo"
api_base = "https://api.kunavo.com/v1"
api_key_env_var = "KUNAVO_API_KEY"
api_style = "openai"
backend = "generic"

[[models]]
name = "claude-sonnet-5"
provider = "kunavo"
alias = "sonnet-kunavo"
# Optional, and documented on the api-keys-profiles page:
#   temperature   sampling temperature
#   input_price   indicative per-input cost, fed to --max-price
#   output_price  indicative per-output cost, fed to --max-price
# Take the two prices from the table further down this page if you want
# --max-price to mean anything.

# The key never goes in config.toml. api_key_env_var names the variable:
#   export KUNAVO_API_KEY="sk-kn-..."
api_base conserva el sufijo /v1. La referencia de Mistral solo describe el campo como “URL base de la API del proveedor” y no indica ninguna regla sobre el sufijo. La respuesta está en el valor que usa su propio ejemplo en las dos páginas de documentación, api_base = "https://openrouter.ai/api/v1", y en la razón que muestra el código fuente de la versión v2.25.5: el adaptador openai añade /chat/completions a api_base y nada más; por la misma razón, el proveedor Mistral integrado en la CLI usa como valor predeterminado una URL base /v1. Si quitas el sufijo, la solicitud va a /chat/completions en la raíz y devuelve un 404, no un error de autenticación.
Esta configuración se obtuvo de la propia documentación de Mistral y del propio código fuente de Vibe en la fecha indicada a continuación. Kunavo no ha ejecutado Vibe CLI contra su endpoint — ninguna sesión, ningún turno en streaming, ningún ciclo de ida y vuelta con herramientas. Una página de configuración publicada no es una prueba de ejecución, y nada de lo que aparece aquí debe interpretarse como tal. El curl que aparece a continuación es la parte que puedes resolver en diez segundos; todo lo que el cliente haga después depende de ti y de Vibe.
Kunavo no ofrece modelos de generación de embeddings, conversión de texto a voz ni conversión de voz a texto, así que este endpoint solo responde a solicitudes de chat completions; el bloque de proveedor configurado aquí cubre los turnos del modelo, pero no otras funciones.
Hay un detalle que juega a tu favor, y conviene saber por qué. La ruta OpenAI de Vibe construye todos los payloads con un campo temperature, mientras que varios ID de Claude —entre ellos claude-sonnet-5 y claude-opus-5— responden upstream a 400 para el conjunto completo de tres parámetros de muestreo. Kunavo elimina esos parámetros antes de enviar la solicitud precisamente para los ID que los rechazan, así que el campo que el cliente incluye siempre no provoca un rechazo. Por tanto, aquí la clave temperature de un ajuste preestablecido [[models]] es inocua y tampoco tiene efecto en esos ID.
¿Aún no tienes una clave? Crea una cuenta de Kunavo, genera una clave (empieza por 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 Mistral Vibe CLI.

Paso a paso

  1. Cree una clave en /app/keys y cópiela: se muestra una sola vez.
  2. Abre ~/.vibe/config.toml (o crea ./.vibe/config.toml en el repositorio donde quieras aplicar esta configuración) y pega el bloque anterior. No hay ninguna opción que puedas seleccionar para añadir el proveedor: Mistral indica que este archivo se edita a mano, y /config y /model solo permiten cambiar entre los ajustes preestablecidos que ya existen.
  3. Exporta la variable que nombraste en api_key_env_var: export KUNAVO_API_KEY="sk-kn-...". La página de credenciales de Mistral indica que la CLI carga ~/.vibe/.env al iniciarse para obtener las credenciales, y su propio ejemplo con un proveedor externo usa un export de terminal para la clave que no es de Mistral.
  4. Añade un ajuste preestablecido [[models]] por cada ID que quieras usar, cada uno con su propio alias, y luego asigna active_model a uno de esos alias. El alias es local: es lo que muestra /model en la lista; name es el ID que realmente se envía al endpoint.
  5. Ejecuta vibe en una carpeta de confianza y asígnale una tarea que modifique un archivo, no un saludo. Una primera interacción que lea y edite un archivo permite comprobar el uso de herramientas, que suele ser donde se revela una configuración incorrecta del proveedor.

Comprobado con página de configuración de Vibe Code CLI de Mistral 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.

Esta es la versión breve. El tutorial completo —elección del modelo, coste de una sesión real y modos de fallo— está en comparación entre Vibe CLI y Claude Code.

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 Mistral Vibe CLI.

# 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 modeloEntrada / salida de KunavoDónde encaja en Mistral Vibe CLI
claude-sonnet-5$1.40 / $7.00el alias de trabajo, al que active_model apunta la mayoría de los días
claude-opus-5$3.50 / $17.50un segundo ajuste preestablecido para el modo de planificación, en el que un plan incorrecto es lo más costoso
claude-haiku-4-5$0.70 / $3.50turnos baratos y clasificación rápida de archivos, con un alias propio para seleccionarlo
gpt-5-6-sol$2.00 / $12.00una familia distinta detrás del mismo bloque de proveedor y la misma clave
La facturación es por token desde un saldo prepago, sin cuota mensual; consulta facturación. Con contexto repetido —que constituye la mayor parte de lo que envía un editor o cliente de chat—, la caché de indicaciones cambia más la factura que la elección del modelo.

No todo el tráfico pasa por este proveedor

Este es el aspecto que no se puede deducir del bloque de configuración y que depende de Vibe, no de Kunavo. En la versión v2.25.5, cuando hay un proveedor Mistral disponible, la CLI dirige las solicitudes de finalización de “utilidad” en segundo plano —las llamadas pequeñas que asignan nombres a conversaciones y árboles de trabajo— al modelo mistral-vibe-cli-fast propio de Mistral. Los valores predeterminados incluidos siempre configuran uno, incluso cuando el modelo activo de la sesión es el tuyo. El código fuente especifica tanto la preferencia como la alternativa: si no hay ningún proveedor Mistral disponible, la llamada de utilidad se dirige al modelo activo de la sesión.

Por tanto, si quieres que todas las solicitudes de la sesión lleguen al proveedor que configuraste, debe cumplirse una de estas condiciones:

  • MISTRAL_API_KEY no está configurado, de modo que no se pueden resolver las credenciales del modelo rápido y la llamada de utilidad usa la alternativa; o
  • el alias del modelo rápido está excluido mediante allowed_models, lo que tiene el mismo efecto por la lista de permitidos en lugar de por la clave.

El clasificador Smart Approve va más allá: la entrada de su registro de cambios de la versión 2.25.1 indica que usa el modelo rápido de Mistral independientemente del modelo activo de la sesión. Por eso, en la práctica, una sesión que use únicamente Kunavo se ejecutará en accept-edits o plan, y no en Smart Approve. Nada de esto invalida la configuración anterior; solo significa que el bloque de proveedor cubre los turnos de tu modelo, no todas las solicitudes que envía el binario.

Los otros valores de api_style

La documentación enumera un valor para api_style y lo presenta como ejemplo: "openai". El código fuente de la versión v2.25.5 incluye cuatro valores más —"anthropic", "openai-responses", "reasoning" y "vertex-anthropic"— en un diccionario sin validación. Por eso, un error tipográfico solo se detecta al enviar una solicitud, no al cargar el archivo. Considéralos verificados en el código fuente, pero no documentados. Si pruebas el valor de Anthropic, ten en cuenta este detalle: el endpoint de su adaptador es /v1/messages, así que api_base debe ser el origen sin más, https://api.kunavo.com, sin /v1; justo lo contrario del bloque anterior. Kunavo sí responde a /v1/messages para los ID que comienzan con claude-. Esta página muestra el estilo openai porque es el que documenta Mistral.

Preguntas frecuentes

¿Cómo agrego un proveedor personalizado a Mistral Vibe CLI?

Manualmente, en config.toml: no hay una interfaz para agregar proveedores. La página de configuración de Mistral documenta ./.vibe/config.toml en el directorio de trabajo y ~/.vibe/config.toml en el directorio personal, y establece que el archivo del proyecto tiene prioridad. Su ejemplo práctico incluye una tabla [[providers]] con name, api_base, api_key_env_var, api_style y backend, además de una tabla [[models]] con name, provider y alias, y un active_model que apunta a ese alias. La clave nunca se incluye en el archivo: api_key_env_var indica la variable de entorno que la contiene.

¿api_base de Vibe CLI necesita terminar en /v1?

Para api_style “openai”, sí. La referencia de configuración de Mistral solo describe api_base como la URL base de la API del proveedor y no establece ninguna regla sobre el sufijo, pero el ejemplo práctico de ambas páginas usa un valor que termina en /v1, y el código fuente de v2.25.5 explica por qué: el adaptador de estilo OpenAI agrega /chat/completions a api_base y nada más, y el proveedor Mistral integrado en la CLI usa de forma predeterminada una base /v1. Por tanto, para Kunavo el valor es https://api.kunavo.com/v1. Si se omite el sufijo, se produce un 404, no un error de autenticación. El estilo “anthropic”, que no está documentado, es el caso opuesto: su endpoint es /v1/messages, así que api_base no debe incluir /v1.

¿Mistral Vibe CLI puede ejecutar modelos Claude?

Sí, mediante un ajuste preestablecido de proveedor, no con un interruptor. api_style indica el protocolo de comunicación, no el proveedor, y el campo name del ajuste preestablecido del modelo llega al endpoint tal como está escrito, por lo que un ID de Claude se resuelve en el endpoint que configuraste, no dentro de la CLI. La documentación de Mistral muestra este patrón con una pasarela de terceros, así que es una vía documentada y no una solución alternativa.

¿Por qué Vibe CLI sigue llamando a Mistral después de que configuro mi propio proveedor?

Porque las completaciones de utilidad en segundo plano se enrutan por separado. En v2.25.5, la CLI prefiere el modelo propio de Mistral mistral-vibe-cli-fast para pequeñas llamadas en segundo plano —como nombrar conversaciones y árboles de trabajo— siempre que haya un proveedor Mistral disponible; los valores predeterminados incluidos siempre configuran uno, aunque el modelo activo de tu sesión sea otro. Recurre al modelo activo cuando no hay un proveedor Mistral disponible, lo que en la práctica significa que MISTRAL_API_KEY no está definida o que ese alias está excluido mediante allowed_models. El clasificador Smart Approve es aún más estricto: su registro de cambios indica que se ejecuta con el modelo rápido de Mistral independientemente del modelo activo de la sesión.

¿Kunavo ha probado Mistral Vibe CLI?

No. Lo que se comprobó el 21 de septiembre de 2026 fue la documentación de Mistral —de ahí provienen los nombres y el orden de los campos, así como la respuesta sobre /v1—, y el razonamiento sobre la URL base se confirmó con el código fuente v2.25.5 del paquete mistral-vibe. Kunavo no ha ejecutado una sesión de Vibe contra su endpoint ni afirma nada sobre la transmisión en streaming, los intercambios de herramientas o el comportamiento del cliente durante una tarea prolongada. El endpoint y la clave se pueden comprobar por separado con el comando curl de esta página; lo demás depende de ti y del cliente.

¿De dónde obtiene Vibe CLI la clave API?

De la variable de entorno indicada en api_key_env_var; en un bloque de proveedor de Kunavo, será el nombre que le hayas dado, por ejemplo KUNAVO_API_KEY. La página de credenciales de Mistral documenta tres fuentes, en orden de prioridad, para su propia clave: el flujo de configuración interactivo, que escribe en ~/.vibe/.env; una variable de entorno exportada, que tiene prioridad sobre ese archivo; y la edición directa de ~/.vibe/.env, que la CLI carga al iniciarse. Su ejemplo de terceros usa una exportación del shell. La misma página señala que .env es solo para credenciales y que la configuración general debe ir en config.toml.