Documentazione
Mistral Vibe CLI
Vibe CLI si collega a un endpoint di terze parti tramite un blocco TOML da modificare manualmente; nella propria documentazione, Mistral usa un gateway come esempio pratico. Bastano cinque righe sotto [[providers]] per avviare l’agente con Claude o GPT usando la tua chiave.
Un blocco [[providers]] di cinque righe in .vibe/config.toml — api_base, api_key_env_var, api_style — collega Vibe CLI a Kunavo, mantenendo la chiave in una variabile d'ambiente anziché nel file.
# ./.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 mantiene il /v1. Il riferimento di Mistral descrive il campo solo come «URL di base per l’API del provider» e non specifica alcuna regola sul suffisso. A chiarire il punto è il valore usato nei propri esempi pratici su entrambe le pagine di documentazione: api_base = "https://openrouter.ai/api/v1". Lo conferma anche il motivo, visibile nel codice sorgente della v2.25.5: l’adattatore openai aggiunge /chat/completions a api_base e nient’altro; per lo stesso motivo, il provider Mistral integrato nella CLI usa per impostazione predefinita un URL di base /v1. Se rimuovi il suffisso, la richiesta a /chat/completions finisce alla radice e restituisce un 404, non un errore di autenticazione.curl qui sotto è la parte che puoi verificare in dieci secondi; tutto ciò che il client fa in seguito va verificato con Vibe.temperature in ogni payload, mentre diversi ID Claude, tra cui claude-sonnet-5 e claude-opus-5, restituiscono a monte 400 per tutti e tre i parametri di campionamento. Kunavo rimuove tali parametri prima dell’invio per gli ID che li rifiutano, quindi il campo aggiunto incondizionatamente dal client non causa un rifiuto definitivo. Perciò, la chiave temperature in un preset [[models]] è innocua in questo caso e non ha effetto su quegli ID.sk-kn-) e aggiungi credito da $10: le chiamate vengono pagate con quel saldo e le chiamate non riuscite non vengono addebitate. La dashboard si apre quindi sulla configurazione Mistral Vibe CLI.Passo dopo passo
- Crea una chiave su
/app/keyse copiala: viene mostrata una sola volta. - Apri
~/.vibe/config.toml(oppure crea./.vibe/config.tomlnel repository in cui vuoi applicare la configurazione) e incolla il blocco qui sopra. Non c’è alcuna procedura guidata per aggiungere un provider: Mistral indica di modificare questo file manualmente, mentre/confige/modelconsentono soltanto di passare da un preset già esistente all’altro. - Esporta la variabile indicata in
api_key_env_var:export KUNAVO_API_KEY="sk-kn-...". La pagina di Mistral dedicata alle credenziali specifica che la CLI carica~/.vibe/.envall’avvio; l’esempio ufficiale per un provider di terze parti usa il comando shellexportper la chiave non Mistral. - Aggiungi un preset
[[models]]per ogni ID desiderato, ciascuno con il proprioalias, quindi impostaactive_modelsu uno di questi alias. L’alias è locale: è quello elencato da/model, mentrenameè l’ID effettivamente inviato all’endpoint. - Esegui
vibein una cartella attendibile e assegnagli un’attività che modifichi un file, non un semplice saluto. Un primo turno che legge e modifica un file mette alla prova la chiamata degli strumenti, il punto in cui di solito si manifesta una configurazione errata del provider.
Verificato rispetto a Pagina di configurazione di Vibe Code CLI di Mistral il 21 settembre 2026. Le impostazioni di terze parti cambiano; se il nome di un campo qui non corrisponde più a quello visualizzato, fa fede quella pagina, non questa.
Verifica prima di eseguire il debug del client
Una sola richiesta stabilisce se il problema riguarda l'endpoint, la chiave o il file di configurazione. Se restituisce JSON, lo stesso base URL e la stessa chiave funzionano in 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-..."Quale model id inserire nel campo
Ogni modello di testo è raggiungibile come model id: l'elenco aggiornato è GET /v1/models e il catalogo con i prezzi è nella pagina dei modelli. Le tariffe sono in USD per 1M di token, input / output.
| ID del modello | Kunavo ingresso / uscita | Dove si inserisce in Mistral Vibe CLI |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | l’alias operativo, quello a cui punta active_model nella maggior parte dei giorni |
claude-opus-5 | $3.50 / $17.50 | un secondo preset per la modalità di pianificazione, in cui un piano errato è la parte più costosa |
claude-haiku-4-5 | $0.70 / $3.50 | turni economici e rapida classificazione dei file, con un alias dedicato da selezionare |
gpt-5-6-sol | $2.00 / $12.00 | una famiglia diversa dietro lo stesso blocco provider e la stessa chiave |
Non tutto il traffico passa da questo provider
È un aspetto che un blocco di configurazione non può rivelare e che riguarda Vibe, non Kunavo. Nella versione v2.25.5, la CLI indirizza i completamenti di utilità in background — le chiamate minori che assegnano un nome alle conversazioni e agli alberi di lavoro — al modello mistral-vibe-cli-fast di Mistral ogni volta che è disponibile un provider Mistral. Le impostazioni predefinite distribuite ne configurano sempre uno, anche quando la sessione usa attivamente il tuo modello. Il codice sorgente esplicita sia la preferenza sia il ripiego: se non è disponibile alcun provider Mistral, la chiamata di utilità viene indirizzata al modello attivo della sessione.
Quindi, affinché tutte le richieste della sessione raggiungano il provider configurato, deve essere vera una delle seguenti condizioni:
MISTRAL_API_KEYnon è impostato, quindi le credenziali del modello rapido non vengono risolte e la chiamata di utilità ricade sul modello attivo; oppure- l’alias del modello rapido è escluso tramite
allowed_models, ottenendo lo stesso effetto tramite l’elenco consentito anziché tramite la chiave.
Il classificatore Smart Approve va oltre: la voce nel changelog della versione 2.25.1 dice che usa il modello Mistral rapido indipendentemente dal modello attivo della sessione. Perciò, in pratica, una sessione che usa solo Kunavo deve funzionare in modalità accept-edits o plan, non in modalità Smart Approve. Nulla di tutto questo impedisce la configurazione descritta sopra; significa solo che il blocco provider riguarda i turni del tuo modello, non ogni richiesta inviata dal programma.
Gli altri valori di api_style
La documentazione elenca un valore per api_style e lo presenta come esempio: "openai". Il codice sorgente della v2.25.5 ne include altri quattro — "anthropic", "openai-responses", "reasoning" e "vertex-anthropic" — in un semplice dizionario senza convalida. Per questo, un errore di battitura si manifesta al momento della richiesta, non quando viene caricato il file. Considerali valori verificati nel codice sorgente ma non documentati. Se provi il valore Anthropic, fai attenzione a un’insidia: l’endpoint del relativo adattatore è /v1/messages, quindi api_base deve essere l’origine senza suffisso, https://api.kunavo.com, priva di /v1: il contrario del blocco sopra. Kunavo risponde anche a /v1/messages, per gli ID che iniziano con claude-. Questa pagina mostra lo stile openai perché è quello documentato da Mistral.
Domande frequenti
Come aggiungo un provider personalizzato alla CLI Mistral Vibe?
Manualmente, in config.toml: non esiste un'interfaccia per aggiungere provider. La pagina di configurazione di Mistral documenta ./.vibe/config.toml nella directory di lavoro e ~/.vibe/config.toml nella directory home, con precedenza per il file del progetto, e il suo esempio pratico usa una tabella [[providers]] con name, api_base, api_key_env_var, api_style e backend, oltre a una tabella [[models]] con name, provider e alias, e un active_model che punta a quell'alias. La chiave stessa non viene mai inserita nel file: api_key_env_var indica la variabile d'ambiente che la contiene.
api_base della CLI Vibe deve terminare con /v1?
Per api_style “openai”, sì. Il riferimento di configurazione di Mistral descrive api_base solo come URL di base per l'API del provider e non specifica alcuna regola sul suffisso, ma l'esempio pratico in entrambe le sue pagine usa un valore che termina con /v1; inoltre, il codice sorgente della v2.25.5 chiarisce il motivo: l'adattatore in stile OpenAI aggiunge /chat/completions a api_base e nient'altro, e il provider Mistral integrato nella CLI usa per impostazione predefinita una base /v1. Per Kunavo, quindi, il valore è https://api.kunavo.com/v1. Se si omette il suffisso si ottiene un 404, non un errore di autenticazione. Lo stile “anthropic”, non documentato, è il caso opposto: il suo endpoint è /v1/messages, quindi api_base non deve includere /v1.
La CLI Mistral Vibe può eseguire modelli Claude?
Sì, tramite una configurazione preimpostata del provider, non tramite un interruttore. api_style indica il protocollo di comunicazione, non il fornitore, e il campo name della configurazione del modello viene inviato all'endpoint così com'è; quindi un ID Claude viene risolto presso l'endpoint configurato, non all'interno della CLI. La documentazione di Mistral mostra il modello con un gateway di terze parti, perciò si tratta di una procedura documentata, non di una soluzione alternativa.
Perché la CLI Vibe continua a chiamare Mistral dopo che configuro il mio provider?
Perché le richieste di completamento delle utilità in background vengono instradate separatamente. Nella v2.25.5, quando è disponibile un provider Mistral, la CLI preferisce il modello mistral-vibe-cli-fast di Mistral per le piccole richieste in background, come assegnare nomi alle conversazioni e ai worktree; inoltre, le impostazioni predefinite distribuite configurano sempre un provider Mistral, anche quando il modello attivo della sessione è un altro. Se non è disponibile alcun provider Mistral, viene usato il modello attivo; in pratica, ciò accade quando MISTRAL_API_KEY non è impostata oppure quando l'alias è escluso tramite allowed_models. Il classificatore Smart Approve applica una regola ancora più rigida: secondo il changelog, viene eseguito sul modello Mistral veloce indipendentemente dal modello attivo della sessione.
Kunavo ha testato la CLI Mistral Vibe?
No. In data 21 settembre 2026 è stata verificata la documentazione di Mistral: i nomi e l'ordine dei campi, oltre alla questione di /v1, provengono da lì; il ragionamento sull'URL di base è stato confermato con il codice sorgente della versione v2.25.5 del pacchetto mistral-vibe. Kunavo non ha avviato una sessione Vibe sul proprio endpoint e non dichiara nulla sullo streaming, sulle interazioni di andata e ritorno degli strumenti o sul comportamento del client durante un'attività prolungata. È possibile verificare separatamente l'endpoint e la chiave con il comando curl presente in questa pagina; per il resto, la verifica dipende dal client.
Da dove legge la chiave API la CLI Vibe?
Dalla variabile d'ambiente indicata in api_key_env_var: nel blocco di un provider Kunavo, quella che hai scelto, ad esempio KUNAVO_API_KEY. La pagina di Mistral sulle credenziali documenta tre fonti, in ordine di precedenza, per la propria chiave: la procedura di configurazione interattiva, che scrive in ~/.vibe/.env; una variabile d'ambiente esportata, che ha la precedenza su quel file; e la modifica diretta di ~/.vibe/.env, che la CLI carica all'avvio. L'esempio per provider di terze parti usa un export della shell. La stessa pagina precisa che .env è riservato alle credenziali e che la configurazione generale va inserita in config.toml.