Mistral Vibe CLI con Devstral in locale: configurazione route
Mistral Vibe CLI è l'agente di codice da terminale pubblicato da Mistral AI con Devstral 2, con licenza Apache 2.0 secondo l'annuncio. Per impostazione predefinita, invia le tue richieste all'API di Mistral. Questa guida lo installa, poi lo collega a un Devstral Small 2 fornito da Ollama sulla tua macchina, grazie al file config.toml descritto nella documentazione « offline models ». Si conclude con i limiti reali di un agente di codice che funziona interamente in locale.
#Mistral Vibe CLI: cos'è e cosa non è
Mistral Vibe CLI è un programma a riga di comando, scritto in Python, pubblicato a dicembre 2025 insieme a Devstral 2 e Devstral Small 2. Lo avvii nella cartella di un progetto, descrivi un'attività in linguaggio naturale e l'agente legge i tuoi file, propone modifiche, esegue comandi e itera fino al risultato. È lo stesso principio di Claude Code, OpenCode o Aider, ma progettato intorno ai modelli Devstral, addestrati per questo tipo di ciclo agentico.
Il codice sorgente è pubblicato su GitHub nel repository mistralai/mistral-vibe, con licenza Apache 2.0 secondo l'annuncio di Mistral. Puoi leggerlo, modificarlo e usarlo in azienda senza royalty. La CLI sa comunicare con l'API di Mistral, ma anche con qualsiasi server che esponga un'API nel formato OpenAI: Ollama, llama.cpp, LM Studio o vLLM. È questa seconda modalità, documentata nella pagina « offline models », che ci interessa qui.
Perché volere un Vibe CLI locale invece dell'API? Tornano tre motivi. Il codice non lascia la macchina, un aspetto importante per il codice proprietario o soggetto a un accordo di riservatezza. Non ci sono costi a consumo né quote: paghi l'elettricità e l'hardware che già possiedi. Infine, lo strumento continua a funzionare offline o dietro un firewall rigido. In cambio, rinunci al modello Devstral 2 da 123 miliardi di parametri, troppo grande per una workstation, e accetti una velocità inferiore a quella di un server di produzione.
#Prerequisiti: Python, Ollama e la memoria necessaria per Devstral Small 2
Questa guida ti porta al modello. Il kit ti porta al copilota che scrive codice nel tuo editor.
- Spazio online a vita
- PDF + file
- Rimborso in 30 g
Prima di installare qualsiasi cosa, verifica questi quattro punti. Evitano tre quarti dei problemi riscontrati con gli agenti di codice locali.
- Sistema
- Linux o macOS sono le piattaforme principali. Su Windows, usa WSL2 (Ubuntu): la CLI si installa come su Linux e Ollama per Windows resta raggiungibile da WSL tramite l'indirizzo localhost.
- Python recente
- La CLI è distribuita come pacchetto Python. Il repository indica la versione minima richiesta nel suo README; al momento dell'annuncio si trattava di Python 3.12 o successivo. Verifica con python3 --version prima di continuare.
- Ollama installato e avviato
- Ollama serve il modello ed espone un'API compatibile con OpenAI su http://localhost:11434. Se non l'hai ancora fatto, la nostra guida all'installazione di Ollama copre i tre sistemi.
- Memoria per un modello 24B
- Devstral Small 2 ha 24 miliardi di parametri. In quantizzazione Q4_K_M, i pesi occupano circa 14 GB, a cui si aggiunge la cache del contesto. Considera una GPU da 24 GB (RTX 3090, RTX 4090) oppure un Mac con 32 GB di memoria unificata per un funzionamento confortevole. L'annuncio di Mistral cita inoltre « una RTX 4090 o un Mac con 32 GB di RAM » come configurazione di riferimento.
Con una GPU da 16 GB (RTX 4080, RTX 5070 Ti desktop), il modello Q4 regge, ma il contesto trabocca rapidamente nella memoria di sistema e la velocità diminuisce. Con 12 GB (RTX 3060, RTX 4070), Ollama distribuisce i layer tra GPU e CPU: l'agente funziona, ma ogni ciclo richiede diverse decine di secondi. Non abbiamo quantificato queste velocità su queste schede; tieni semplicemente presente che 24 GB è la soglia di comfort per un 24B usato come agente, dove il contesto cresce a ogni file letto.
#Installare Mistral Vibe CLI
Mistral propone uno script di installazione con una sola riga, che configura la CLI in un ambiente isolato. È il metodo raccomandato nel README del repository.
Se preferisci controllare l'installazione, il pacchetto è pubblicato su PyPI con il nome mistral-vibe. Lo strumento uv lo installa in un ambiente dedicato, senza toccare gli altri progetti Python. Anche il pip classico funziona, preferibilmente in un ambiente virtuale.
Verifica poi che il comando vibe sia accessibile. Se il terminale non lo trova, chiudilo e riaprilo: lo script di installazione aggiunge una cartella al tuo PATH, che viene preso in considerazione al successivo avvio della shell.
#Preparare Devstral Small 2 in Ollama
Devstral Small 2 è pubblicato da Mistral con licenza Apache 2.0 e una finestra di contesto di 256 000 token. Ollama lo propone nella sua libreria; il comando qui sotto scarica la versione predefinita, in quantizzazione a 4 bit. Il download rappresenta circa 14 GB.
Il nome esatto del modello nella libreria Ollama può cambiare (variante di quantizzazione, suffisso della dimensione). Se il comando non va a buon fine, cerca « devstral » su ollama.com/library e riprendi il nome visualizzato. È questo nome, così come appare in ollama list, che dovrai ricopiare nella configurazione di Vibe.
Resta un'impostazione decisiva: la lunghezza del contesto. Ollama carica i modelli con un contesto predefinito breve, spesso di 4 096 token. Per un agente di codice è decisamente troppo poco: il prompt di sistema di Vibe, l'elenco degli strumenti, il contenuto dei file letti e la cronologia della sessione superano questa dimensione in pochi scambi. Il modello dimentica allora l'inizio della conversazione e l'agente gira a vuoto. Imposta un contesto di almeno 32 000 token, per esempio con un Modelfile derivato.
Puoi anche impostare globalmente il contesto con la variabile d'ambiente OLLAMA_CONTEXT_LENGTH all'avvio del servizio Ollama. Il Modelfile ha il vantaggio di riguardare solo questo modello e di mantenere un nome esplicito. Un contesto più lungo consuma più memoria: con 32k token su un 24B, prevedi da 2 a 4 GB aggiuntivi a seconda del tipo di cache KV. Su 24 GB è il limite confortevole; oltre 64k, tieni sotto controllo la memoria con nvidia-smi.
#Collegare il modello locale in config.toml
Mistral Vibe CLI legge la configurazione dal file ~/.vibe/config.toml. La documentazione « offline models » descrive due tabelle: providers, che dichiara un server e il suo indirizzo, e models, che associa un nome di modello a un provider. Una chiave active_model indica il modello usato per impostazione predefinita. Ecco una configurazione completa per l'Ollama preparato sopra.
Tre dettagli meritano una spiegazione. L'indirizzo termina con /v1, perché Vibe parla il dialetto OpenAI e Ollama espone questo formato solo con questo prefisso; l'API nativa di Ollama, senza /v1, non è adatta. La chiave api_key_env_var resta vuota: Ollama non richiede autenticazione in locale. I prezzi sono impostati a zero affinché la stima dei costi mostrata dalla CLI resti coerente; non hanno alcun effetto sul funzionamento.
Per un altro server locale, cambia solo la sezione providers. Con llama.cpp (llama-server), l'indirizzo è in genere http://localhost:8080/v1; con LM Studio, http://localhost:1234/v1; con vLLM, http://localhost:8000/v1. In ogni caso, il campo name del modello deve essere l'identificatore che il server si aspetta, quello che restituisce sulla sua route /v1/models.
Puoi dichiarare più modelli, per esempio Devstral Small 2 in locale e Devstral 2 tramite l'API Mistral, poi passare dall'uno all'altro nella sessione. Per il fornitore Mistral, la chiave API si legge da una variabile d'ambiente, in genere MISTRAL_API_KEY; non è necessario inserire la chiave in chiaro nel file. Se il tuo obiettivo è il 100 % locale, non aggiungere semplicemente alcun fornitore remoto: nulla uscirà dalla macchina.
#Prima sessione: avviare vibe e verificare il modello
- 01Posizionarsi in un progettoApri un terminale nella cartella di un repository Git, preferibilmente pulito (git status senza modifiche in sospeso). L'agente lavora sui file della cartella corrente; un repository pulito permette di rivedere e annullare le modifiche con git diff e git checkout.
- 02Avviare la CLIDigita vibe. Al primo avvio, la CLI potrebbe chiederti di inserire una chiave API Mistral e di creare la cartella ~/.vibe. Se hai scritto config.toml in precedenza, il tuo provider locale è già noto. Se la richiesta della chiave compare comunque, consulta /help: a seconda della versione, viene ignorata oppure può essere lasciata vuota quando è configurato un provider locale.
- 03Verificare il modello attivoL'interfaccia mostra il modello in uso. Dovrebbe essere il tuo alias devstral-small-local. Il comando /help elenca i comandi disponibili nella sessione, compreso quello per cambiare modello se ne hai dichiarati diversi.
- 04Assegnare un primo compito circoscrittoInizia in piccolo: «Leggi il README e riassumi l'architettura del progetto in cinque righe», poi «Aggiungi un test unitario per la funzione X nel file Y». Osserva la prima risposta: se il modello risponde senza usare uno strumento o inventa un percorso di file, il problema è generalmente un contesto troppo breve oppure un modello che non è stato preparato per il tool calling.
- 05Rivedere prima di accettareVibe chiede conferma prima delle azioni sensibili, come scrivere file o eseguire comandi. Leggi ogni diff proposto. Un modello locale da 24B sbaglia più spesso di un modello da 123B fornito tramite API, soprattutto su basi di codice ampie: la revisione fa parte del flusso di lavoro, non è un'eccezione.
Durante la sessione, tieni d'occhio il carico di Ollama: il comando ollama ps indica il modello caricato, la parte su GPU e CPU e il contesto effettivo. Se vedi una distribuzione parziale sulla CPU mentre pensavi di rientrare nella memoria video, è stato il contesto a far traboccare la scheda.
#Limiti di un Vibe CLI 100 % locale
Un agente di codice locale funziona, ma non è direttamente confrontabile con la versione API. Ecco cosa aspettarti, senza inventare numeri: non abbiamo condotto un benchmark di misurazione per questa guida, e i punteggi pubblicati da Mistral riguardano i modelli serviti in condizioni di riferimento, non una macchina desktop con un modello quantizzato.
- Devstral 2 resta fuori portata
- Il modello grande da 123 miliardi di parametri richiede decine di gigabyte di memoria anche se fortemente quantizzato. In locale lavori con Devstral Small 2, di cui Mistral dichiara il 68,0 % su SWE-bench Verified, contro il 72,2 % di Devstral 2. La differenza è modesta su questo benchmark, ma si avverte nelle attività lunghe e nei repository voluminosi.
- La quantizzazione cambia il modello
- Il punteggio dichiarato vale per i pesi completi. Un Q4_K_M riduce leggermente la precisione; un Q8_0 la preserva meglio, ma richiede circa 26 GB solo per i pesi, quindi una scheda da 32 GB o un Mac ben equipaggiato. Scegliere la quantizzazione è un compromesso da valutare consapevolmente.
- Il contesto locale è molto più breve di 256k
- Devstral Small 2 accetta 256 000 token, ma non li utilizzerai su 24 GB. Tra 32k e 64k token, l'agente copre un modulo o un piccolo servizio. Per un monorepo, devi delimitare l'attività file per file.
- La velocità dipende dall'hardware, non dalla CLI
- Un 24B denso genera più lentamente di un modello MoE di dimensioni comparabili a parità di memoria. Ogni ciclo dell'agente include una rilettura dell'intero contesto: più dura la sessione, più tarda ogni risposta. Prevedi sessioni brevi e attività suddivise.
- Chiamate agli strumenti e formati
- L'agente si basa su chiamate a strumenti strutturate. Un modello quantizzato può, ogni tanto, produrre una chiamata malformata che la CLI rifiuta. Devstral è stato addestrato per questo tipo di utilizzo e se la cava molto meglio di un modello generalista, ma il fenomeno non è nullo.
- Uno strumento giovane
- La CLI è stata pubblicata a dicembre 2025 e si evolve rapidamente. I comandi, il formato di configurazione e l'integrazione con gli editor cambiano. Aggiorna regolarmente (uv tool upgrade mistral-vibe oppure esegui di nuovo lo script di installazione) e rileggi il changelog su GitHub prima di lamentarti di un comportamento.
L'annuncio di Mistral menziona anche un'integrazione con gli editor tramite il protocollo ACP, in particolare con Zed. Se preferisci un editor al terminale, la nostra guida Zed + Ollama mostra come questo editor dialoghi già con un modello locale; combinarli significa lasciare a Vibe il controllo dell'agente e a Zed la visualizzazione dei diff.
#Risoluzione dei problemi
- « vibe: comando non trovato »
- La cartella degli eseguibili non è nel tuo PATH. Riapri il terminale. Con uv, il percorso è in genere ~/.local/bin; verifica con uv tool dir --bin e aggiungilo al file della shell se necessario.
- Errore di connessione a localhost:11434
- Ollama non è avviato oppure ascolta su un altro indirizzo. Prova curl http://localhost:11434/v1/models. In WSL2, assicurati che Ollama sia effettivamente in esecuzione sul lato Windows e che la variabile OLLAMA_HOST non sia stata limitata.
- Il modello è sconosciuto al server
- Il campo name della sezione models non corrisponde a un modello presente in ollama list. Ricopia il nome esatto, compreso il suffisso, incluso quello del tuo Modelfile derivato se ne hai creato uno.
- L'agente dimentica ciò che ha appena letto
- Contesto troppo breve. Verifica con ollama ps il valore di contesto effettivamente caricato; se è 4 096, il tuo Modelfile o la variabile OLLAMA_CONTEXT_LENGTH non sono stati presi in considerazione.
- Risposte molto lente, GPU poco utilizzata
- Una parte del modello è sulla CPU. Riduci il contesto, passa a una quantizzazione più leggera oppure chiudi gli altri modelli caricati da Ollama (OLLAMA_MAX_LOADED_MODELS).
- La CLI richiede una chiave API anche se tutto è locale
- Comportamento dipendente dalla versione. Verifica che config.toml si trovi effettivamente in ~/.vibe/config.toml, che active_model punti a un alias esistente, poi consulta la pagina «offline models» della documentazione per seguire la procedura aggiornata.
#Per approfondire
Vibe CLI è una buona scelta se tieni all'ecosistema Mistral e a Devstral. Se vuoi confrontare le opzioni prima di installare, OpenCode appartiene alla stessa categoria e supporta più provider, mentre la scelta del modello di codice locale è indipendente dall'agente selezionato.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.