Intermedio 11 minIDE

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.

Di Léa B.·Agg. 2026-10-19·Testato su Windows, macOS e Linux

#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.

i
Vibe CLI non è l'applicazione Vibe
Mistral ha rinominato il suo assistente per il grande pubblico Le Chat in « Vibe » nel corso del 2026. L'applicazione Vibe (web e mobile) è un chatbot ospitato da Mistral, con un account e un abbonamento. Mistral Vibe CLI è uno strumento per sviluppatori installato nel tuo terminale. Entrambi condividono un nome e un editore, non l'uso. La parola chiave « mistral vibe » da sola rimanda spesso all'applicazione: se è quella che cerchi, la nostra guida sull'AI gratuito di Mistral la confronta con i modelli in locale.

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

Il kit Copilota Locale

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.

→
Un modello più piccolo per testare la catena
Se la tua macchina è al limite, verifica prima l'installazione e il file config.toml con un modello di codice leggero da 7 a 8 miliardi di parametri (circa 5 GB in Q4). La configurazione è identica: cambia solo il nome del modello. Passerai a Devstral Small 2 una volta verificata la catena.

#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.

Terminale
curl -LsSf https://mistral.ai/vibe/install.sh | bash

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.

Terminale — alternativa con uv
# Installer uv si besoin : https://docs.astral.sh/uv/
uv tool install mistral-vibe

# Ou avec pip, dans un environnement virtuel
python3 -m venv ~/.venvs/vibe
source ~/.venvs/vibe/bin/activate
pip install mistral-vibe

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.

Terminale
vibe --version
vibe --help
!
Leggere uno script prima di eseguirlo
Il comando curl | bash esegue uno script scaricato senza mostrartelo. È l'uso proposto da Mistral, ma se la tua policy di sicurezza lo vieta, scarica prima lo script con curl -o, leggilo e poi eseguilo. La variante uv tool install evita completamente il problema.

#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.

Terminale
ollama pull devstral-small-2
ollama list

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.

Terminale — contesto di 32k tramite un Modelfile
cat > Modelfile.devstral <<'EOF'
FROM devstral-small-2
PARAMETER num_ctx 32768
EOF

ollama create devstral-small-2-32k -f Modelfile.devstral
ollama run devstral-small-2-32k "Réponds en un mot : prêt ?"

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.

~/.vibe/config.toml
# Modèle utilisé au lancement (doit correspondre à un alias ci-dessous)
active_model = "devstral-small-local"

# Fournisseur : votre Ollama local, API au format OpenAI
[[providers]]
name = "ollama"
api_base = "http://localhost:11434/v1"
api_key_env_var = ""
api_style = "openai"
backend = "generic"

# Modèle : le nom exact affiché par `ollama list`
[[models]]
name = "devstral-small-2-32k"
provider = "ollama"
alias = "devstral-small-local"
input_price = 0.0
output_price = 0.0

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.

!
I nomi delle chiavi seguono la documentazione, non il contrario
Questo esempio riprende la struttura fornita dalla pagina « offline models » di docs.mistral.ai al momento della stesura. La CLI evolve rapidamente e il nome di una chiave può cambiare da una versione all'altra. Se vibe rifiuta il tuo file o ignora il modello, confronta il tuo config.toml con l'esempio ufficiale invece di tirare a indovinare: fa fede la documentazione.

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.

Terminale — verificare cosa annuncia il server
curl -s http://localhost:11434/v1/models | python3 -m json.tool

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

  1. 01
    Posizionarsi in un progetto
    Apri 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.
  2. 02
    Avviare la CLI
    Digita 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.
  3. 03
    Verificare il modello attivo
    L'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.
  4. 04
    Assegnare un primo compito circoscritto
    Inizia 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.
  5. 05
    Rivedere prima di accettare
    Vibe 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.

Terminale — in una seconda scheda
ollama ps
nvidia-smi --query-gpu=memory.used,memory.total --format=csv

#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.

Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.