Intermedio 10 minIDE

Usa Ollama in Claude Code e Cursor (modelli locaux)

Claude Code e Cursor sono diventati strumenti di riferimento per scrivere codice con un LLM, ma entrambi inviano il tuo codice ad Anthropic o OpenAI e costano almeno 20 $ al mese. Ollama espone un endpoint compatibile con OpenAI su localhost:11434/v1 che permette di collegare questi due IDE — e qualsiasi assistente che comunica tramite l'API OpenAI — a un modello locale. Questa guida mostra la configurazione esatta per Cursor (con integrazione nativa) e Claude Code (tramite proxy), quali modelli per il codice privilegiare nel 2026 e dove l'esecuzione locale resta indietro rispetto al cloud.

Di Mohamed Meguedmi·Agg. 2026-09-01·Testato su Windows, macOS e Linux

#Perché usare Ollama in Claude Code o Cursor?

Tre ragioni che tornano sempre. Prima la riservatezza: un progetto per un cliente coperto da un NDA, codice proprietario, segreti in chiaro nei file — niente di tutto questo dovrebbe essere inviato a terzi. Poi il costo: Cursor Pro costa 20 $/mese, Claude Code consuma token Anthropic la cui spesa arriva rapidamente a 50-100 $/mese con un uso intensivo. Con Ollama, il costo è zero dopo l'acquisto della GPU. Infine la resilienza: il tuo assistente non si ferma quando l'API di Anthropic ha un problema o quando la tua connessione ADSL si interrompe.

Il compromesso è onesto: un Qwen3-Coder 30B in locale non eguaglia Claude Sonnet 4.6 o GPT-5 nei compiti complessi svolti da agenti su più file. Ma per l'80% degli usi quotidiani — completare, rifattorizzare, scrivere un test, spiegare un blocco, generare un commit — un modello per il codice da 9 a 30B in Q4 svolge il lavoro più che adeguatamente. E puoi sempre mantenere il cloud in parallelo per i compiti più impegnativi.

i
Cosa tratta questa guida
Collegare Ollama (modello locale) a Cursor e a Claude Code tramite l'API compatibile con OpenAI. Scelta del modello per la programmazione. La guida non tratta il completamento inline in stile Copilot — per questo, vedi la guida Continue.dev / Tabby / CodeGeeX.

#L'endpoint di Ollama compatibile con OpenAI

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
  • Aggiornamenti a vita

Dalla versione 0.1.24, Ollama espone, oltre alla sua API nativa, un endpoint compatibile con l'API OpenAI ChatCompletions. È questo a rendere possibile tutto il resto: qualsiasi client OpenAI (SDK Python, SDK Node, Cursor, Cline, Aider, Continue, ecc.) può comunicare con Ollama senza modifiche, semplicemente cambiando l'URL di base.

Verificare che risponda
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-coder:30b",
    "messages": [{"role": "user", "content": "Bonjour"}]
  }'

Il formato della risposta è identico a quello di OpenAI: choices[0].message.content, usage con prompt_tokens e completion_tokens, supporto dello streaming tramite stream: true. La chiave API viene ignorata — puoi inviare qualsiasi cosa nell'header Authorization, Ollama l'accetta. Molti client, però, rifiutano un campo vuoto: inserisci ollama o anything per accontentarli.

→
Tre endpoint, un solo daemon
Ollama è in ascolto in parallelo su /api/* (API nativa, consigliata per i client Ollama veri e propri) e su /v1/* (compatibilità OpenAI). Non serve alcuna configurazione per attivare /v1: è già disponibile fin dall'installazione. La porta rimane 11434 in entrambi i casi.

#Prerequisiti

Ollama 0.5+
ollama --version deve rispondere. Su Windows, l'icona nell'area di notifica deve essere attiva. Se parti da zero, consultare la guida all'installazione di Ollama per il tuo sistema operativo.
GPU con 12 GB di VRAM o Mac M-series 16 GB+
Un Qwen 3.5 9B Q4 = circa 6,6 GB, un Devstral 24B Q4 = circa 14 GB, un Qwen3-Coder 30B-A3B Q4 = circa 19 GB. RTX 3060 12 GB = soglia minima utile (Qwen 3.5 9B); RTX 4070/4080 16 GB o Mac M3/M4 = Devstral 24B e Qwen3-Coder 30B interamente caricati.
Cursor 0.40+ o Claude Code CLI
Cursor dal sito cursor.com (modalità OpenAI custom integrata). Claude Code tramite npm install -g @anthropic-ai/claude-code.
Minima familiarità con le variabili d'ambiente
Per Claude Code, si utilizzeranno ANTHROPIC_BASE_URL e ANTHROPIC_AUTH_TOKEN.

#1. Collega Cursor a Ollama

Cursor ha un'opzione ufficiale per collegarsi a un endpoint compatibile con OpenAI. Funziona molto bene per la chat (Ctrl+L) e l'editing inline (Ctrl+K). L'agente Composer e il completamento automatico Tab, invece, restano vincolati ai modelli cloud di Cursor — è una limitazione del prodotto che Anthysphere accetta esplicitamente.

  1. 01
    Scaricare un modello per la programmazione
    Con 12 GB di VRAM, Qwen 3.5 9B (qwen3.5:9b) è un ottimo punto di partenza: se la cava discretamente in francese, supporta il tool calling e offre 256k di contesto. Con 16 GB, passa a Devstral 24B (devstral:24b); con 24 GB, a Qwen3-Coder 30B-A3B (qwen3-coder:30b), il MoE di riferimento per il codice.
  2. 02
    Aprire le impostazioni di Cursor
    Ctrl+Shift+J (Cmd+, su Mac) → scheda Models. Vedi l'elenco dei modelli Cursor (claude-3.5-sonnet, gpt-5, ecc.) con degli interruttori.
  3. 03
    Aggiungere un modello personalizzato
    Fai clic su Add Model in basso. Inserisci il nome esatto del modello Ollama: qwen3-coder:30b. Seleziona la casella per attivarlo.
  4. 04
    Configurare l'URL base
    Nella sezione OpenAI API Key, espandi Override OpenAI Base URL. Inserisci http://localhost:11434/v1, poi clicca su Save. Per API Key, inserisci un valore qualsiasi (ollama basta): Cursor non accetta un campo vuoto.
  5. 05
    Verificare la connessione
    Fai clic su Verify. Cursor invia una richiesta di test alla tua istanza di Ollama. Se Ollama risponde con il codice 200, il pulsante diventa verde e il modello appare nel selettore della chat.
Download del modello in Ollama
ollama pull qwen3-coder:30b
!
La modalità Privacy non basta
Abilitare Privacy Mode in Cursor impedisce che il tuo codice venga usato per addestrare i modelli, ma non cambia il fatto che il codice passi attraverso i server di Cursor per chiamare il modello. Solo il passaggio a un endpoint locale (questa configurazione) garantisce che nulla lasci la macchina — verificabile con tcpdump o un firewall in uscita.

Una volta completata la configurazione, la chat di Cursor (Ctrl+L) e l'editing inline (Ctrl+K) funzionano con il tuo modello locale. Il selettore del modello in alto nel pannello della chat elenca qwen3-coder:30b; i modelli cloud di Cursor restano accessibili se vuoi passare occasionalmente a uno di essi.

i
Ciò che non funziona con un modello personalizzato
L'agente Composer (Ctrl+I in modalità agente), il completamento automatico con Tab e la funzione Cursor Predicts continuano a usare i modelli cloud di Cursor — utilizzano modelli sottoposti a fine-tuning internamente e non possono essere indirizzati verso altri modelli. Per il completamento inline locale, usa Continue.dev in parallelo.

#2. Collega Claude Code a Ollama

Claude Code (la CLI di Anthropic) usa nativamente l'API Messages di Anthropic, non l'API Chat Completions di OpenAI. I due protocolli differiscono (ruoli, formato delle chiamate agli strumenti, streaming). Per far dialogare Claude Code con Ollama serve quindi un piccolo traduttore — un proxy che riceve richieste nel formato Anthropic Messages da un lato e le invia nel formato OpenAI Chat Completions dall'altro.

Il progetto di riferimento per questo si chiama claude-code-router (musistudio/claude-code-router su GitHub). Si installa con un comando, funziona localmente su una porta e accetta regole di routing per modello (es.: inviare haiku a Ollama, sonnet al vero Claude).

  1. 01
    Installare Claude Code
    npm install -g @anthropic-ai/claude-code se non è già stato fatto. claude --version deve restituire una risposta.
  2. 02
    Installare claude-code-router
    npm install -g @musistudio/claude-code-router. Le binaire ccr est ajouté au PATH.
  3. 03
    Pull del modello su Ollama
    Preferisci un modello che supporti le chiamate agli strumenti: qwen3-coder:30b, devstral:24b o glm-4.7-flash. Senza questo supporto, Claude Code non potrà chiamare i suoi strumenti interni (Read, Edit, Bash, ecc.) e perde il 90% della sua utilità.
  4. 04
    Configurare il router
    Crea ~/.claude-code-router/config.json con una voce Providers che punti a Ollama e una regola Router che associ i modelli Claude al tuo modello locale.
  5. 05
    Avviare tramite ccr
    ccr code al posto di claude. Il wrapper avvia il proxy in background, esporta ANTHROPIC_BASE_URL in modo che punti al proxy, poi avvia Claude Code. Al suo interno, /model permette di passare da una route all'altra.
Scaricare un modello adatto al tool calling
ollama pull qwen3-coder:30b
# ou pour du pur agent de code
ollama pull devstral:24b
~/.claude-code-router/config.json
{
  "Providers": [
    {
      "name": "ollama",
      "api_base_url": "http://localhost:11434/v1/chat/completions",
      "api_key": "ollama",
      "models": ["qwen3-coder:30b", "devstral:24b"]
    }
  ],
  "Router": {
    "default": "ollama,qwen3-coder:30b",
    "background": "ollama,qwen3-coder:30b",
    "think": "ollama,devstral:24b",
    "longContext": "ollama,qwen3-coder:30b"
  }
}
Avvio
ccr code
# Claude Code démarre, mais les requêtes filent vers Ollama
# Vérifier : /model affiche qwen3-coder:30b
!
Gli strumenti interni possono funzionare in modo inaffidabile
Claude Code utilizza ampiamente le chiamate agli strumenti per Read, Edit, Bash, Glob, Grep. Non tutti i modelli Ollama le gestiscono con la stessa affidabilità di Claude Sonnet: Qwen3-Coder e Devstral se la cavano bene, mentre alcuni modelli più piccoli dimenticano argomenti o inventano file. Se vedi Claude Code entrare in un ciclo ripetitivo o chiedere la stessa cosa più volte, probabilmente è il modello che sbaglia le chiamate agli strumenti.

Approccio minimalista senza router: puoi anche esportare direttamente ANTHROPIC_BASE_URL e ANTHROPIC_AUTH_TOKEN impostandoli per un proxy compatibile con Anthropic (LiteLLM in modalità --anthropic o y-router sono esempi di questi proxy). È più leggero, ma non offre la flessibilità delle regole per singola attività.

#3. Quale modello per programmare scegliere: Qwen3-Coder vs Devstral in locale

Su Ollama, alcune famiglie dominano nell'ambito del codice nell'estate 2026: Qwen3-Coder (Alibaba), Devstral (Mistral AI) e i modelli MoE versatili come GLM 4.7 Flash (Z.ai) o gpt-oss (OpenAI). Tutte sono open-weight e funzionano in Q4 su hardware di largo consumo.

Qwen3-Coder 30B-A3B (Alibaba, Apache 2.0)
Il modello di riferimento versatile nel 2026. Supporto solido per il tool calling, multilingue (francese corretto), buono in Python/JS/Go/Rust, 256k di contesto. È un MoE con 3B attivi: veloce come un modello denso da 14B, con la qualità di un modello da 30B. ≈ 19 GB in Q4. Pull: qwen3-coder:30b.
Devstral 24B (Mistral AI, Apache 2.0)
Pensato specificamente per gli agenti SWE (modifica di più file, navigazione della codebase). Eccellente in Aider, OpenHands e — per estensione — Claude Code. Modello denso da 24B ≈ 14 GB in Q4, entra in 16 GB. Pull: devstral:24b.
GLM 4.7 Flash (Z.ai, MIT) / gpt-oss 20B (OpenAI)
Due MoE molto performanti in modalità agente. GLM 4.7 Flash (30B-A3B, ≈ 19 GB) è un eccellente orchestratore di chiamate a strumenti; gpt-oss 20B (≈ 14 GB, MXFP4, 131k di contesto) è più veloce e si può caricare su 16 GB. Pull: glm-4.7-flash o gpt-oss:20b.
Qwen 3.5 9B (alternativa di ripiego per GPU da 8-12 GB)
Solo 6,6 GB, un modello generalista valido nella programmazione, con 256k di contesto e capacità di visione. Una buona alternativa quando la VRAM è limitata, prima di passare ai modelli da 24B in su. Pull: qwen3.5:9b.
→
Consiglio pratico
Se hai dubbi: qwen3.5:9b su 12 GB di VRAM, devstral:24b o gpt-oss:20b su 16 GB, qwen3-coder:30b o glm-4.7-flash su 24 GB. Devstral e GLM 4.7 Flash brillano in particolare quando l'IDE funziona in modalità agente (Claude Code, Aider); Qwen3-Coder è più versatile nelle conversazioni dirette in chat su Cursor.

VRAM per dimensione in Q4_K_M (la quantizzazione consigliata): 7B ≈ 5 GB, 14B ≈ 9 GB, 24B ≈ 14 GB, 32B ≈ 19 GB, 70B ≈ 40 GB. Il contesto consuma memoria in aggiunta: prevedi da 2 a 4 GB in più per 32k token di contesto, a seconda del modello.

#Limiti rispetto al cloud: dove i modelli locali restano indietro

Siamo onesti su ciò che i modelli locali non fanno altrettanto bene di Claude Sonnet 4.6 o GPT-5:

Finestra di contesto
Per impostazione predefinita, Ollama limita num_ctx a 4096 token; si può arrivare a 32k o persino a 128k a seconda del modello, ma consumando più VRAM. Cursor con Sonnet nel cloud gestisce 200k token senza problemi. In un grande monorepo, il modello nel cloud legge tutto, quello locale deve scegliere.
Ragionamento a più fasi
Un modello da 9-14B si perde quando l'agente concatena 10 chiamate a strumenti con dipendenze tra loro. Sonnet mantiene il filo. Per un'orchestrazione di agenti davvero complessa, il cloud resta in vantaggio — e di gran lunga.
Conoscenza delle API più recenti
I modelli open-weight hanno una data limite delle conoscenze (spesso il 2025) e non conoscono le API uscite successivamente. Cursor nel cloud beneficia dell'aggiornamento continuo e degli strumenti di ricerca web.
Latenza first-token
Paradossalmente, il cloud può essere più rapido all'avvio (nessun caricamento del modello). In locale, il modello resta caricato tra una chiamata e l'altra — dopo il primo prompt, il vantaggio torna alla soluzione locale.
Costo dell'elettricità
Una RTX 4090 sotto carico consuma 350 W. 8 ore al giorno di programmazione intensiva = ~70 kWh/mese = ~15 € in Francia. Il costo resta molto inferiore ai 20 $/mese di Cursor + 50 $/mese di Claude, ma non è gratis.
i
Strategia ibrida pragmatica
L'approccio che funziona in pratica: Ollama come opzione predefinita per l'80% delle attività quotidiane (completare, spiegare, fare piccoli refactoring). Cloud (Claude Sonnet o GPT-5) su richiesta per il 20% che richiede ragionamento approfondito o contesto lungo. Cursor lo permette nativamente tramite il selettore del modello; per Claude Code, claude-code-router lo permette tramite /model durante la sessione.

#Suggerimenti e risoluzione dei problemi

Cursor restituisce "OpenAI API key invalid"
Il campo API Key deve contenere un valore non vuoto. Metti ollama, sk-anything o qualcosa di plausibile. È solo un aspetto estetico: Ollama ignora l'intestazione.
Cursor non vede il modello
Il nome del modello in Cursor (Add Model) deve essere ESATTAMENTE quello restituito da ollama list (tag incluso, ad esempio qwen3-coder:30b). Non qwen3-coder da solo, né Qwen3 Coder.
Claude Code entra in un ciclo o chiede di nuovo la stessa cosa
Spesso il modello locale sbaglia le chiamate agli strumenti. Verifica che il modello supporti il function calling (ollama show qwen3-coder:30b → cerca la voce tools nelle capabilities). Passa a un modello più grande o semplifica il compito.
Risposte troncate dopo 2-3 frasi
num_ctx predefinito = 4096. Per Claude Code e Cursor con il contesto della base di codice, porta il valore a 16384 o 32768. Con Ollama: crea un Modelfile personalizzato con PARAMETER num_ctx 32768 ed esegui ollama create coder-32k -f Modelfile. Il costo in memoria è reale (+ 2-4 GB per la cache KV).
VRAM esaurita, OOM
Controlla ollama ps durante l'uso. Se vedi >100% loaded nella ripartizione GPU/CPU, il modello viene caricato in parte nella RAM di sistema e diventa molto lento. Soluzioni: quantizzazione più aggressiva (Q3_K_M), modello più piccolo o riduzione di num_ctx.
Latenza > 5 s per risposta
O il modello viene eseguito in parte sulla CPU (vedi il punto precedente), oppure Ollama ricarica il modello a ogni richiesta. Controlla OLLAMA_KEEP_ALIVE (valore predefinito: 5 min). Imposta OLLAMA_KEEP_ALIVE=2h per mantenere il modello caricato e pronto.
→
Costo zero, ma non latenza zero
Un modello locale per il codice non è magicamente più veloce di uno nel cloud: è semplicemente sulla tua macchina. Su RTX 4090, qwen3-coder:30b (MoE, 3B attivi) genera ~60 token/s, ossia ~2-3 secondi per una risposta media. È paragonabile a Claude Sonnet. Su Mac M3 Max o RTX 3090 da 24 GB, aspettati piuttosto 25-30 token/s, ossia 5-7 s: una latenza percepibile, ma comunque utilizzabile.

#Per approfondire

Hai Ollama che mette un modello per il codice a disposizione di Cursor o Claude Code. I passi successivi più naturali:

Completare nell'editor (FIM inline)
La guida «Copilot gratuito in locale» spiega come installare Continue.dev / Tabby / CodeGeeX per il completamento inline in stile Copilot, un complemento naturale alla chat in Cursor.
Scegliere la quantizzazione giusta
Q4_K_M, Q5_K_M, Q8_0: la guida Scegliere la quantizzazione confronta la perdita di qualità effettiva sui modelli di codice e spiega quando un Q3 rimane utilizzabile.
Personalizzare un modello per la programmazione
La guida Personalizzare un modello con Ollama Modelfile mostra come impostare num_ctx, il prompt di sistema e la temperatura per ottenere un modello di programmazione su misura per il tuo stack.
Domande frequenti
È possibile davvero usare Ollama con Claude Code?+
Sì: Claude Code accetta un endpoint compatibile con OpenAI e Ollama ne espone uno su localhost:11434/v1. Configurando Claude Code perché usi questo endpoint (sezione 2 di questa guida), le tue richieste vengono inviate alla tua macchina anziché al cloud. Le capacità dipendono quindi dal modello locale scelto — Qwen3-Coder 30B-A3B è oggi il miglior compromesso tra velocità e qualità.
Ollama + Claude Code, è veramente gratuito?+
Sì: Ollama è gratuito, i modelli open-weight lo sono anch'essi, e non ci sono più abbonamenti a 20 $ al mese. L'unico costo è il tuo hardware e l'elettricità. Bonus non da sottovalutare: il tuo codice non esce mai dal tuo computer.
Questa guida ti è stata utile?

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