Installazione e configurazione di Claude Code per Ollama e llama.cpp, prezzi
Coding agentic, ora con backend di modelli locali.
Claude Code non è un semplice autocompletamento con un marketing migliore. È uno strumento di coding agentic: legge il tuo codice, modifica i file, esegue comandi e si integra con i tuoi strumenti di sviluppo.
Questa differenza è importante perché l’unità di lavoro non è più “una riga di codice”, ma diventa “un compito con uno stato finale”.
Anthropic inquadra la distinzione in modo chiaro: il completamento del codice suggerisce la riga successiva mentre digiti, mentre Claude Code opera a livello di progetto, pianifica su più file, esegue modifiche, esegue test e itera sui fallimenti. Nella pratica, questo lo rende più simile a un ingegnere junior nativo del terminale che può eseguire compiti velocemente, ma ha ancora bisogno di revisione.
Questa tensione tra velocità e supervisione è gran parte di ciò che le persone raggruppano sotto il termine “vibe coding”; Cos’è il Vibe Coding? analizza il termine, le sue origini e come si manifestano efficienza e rischi nella pratica.

Un dettaglio facile da perdere scorrendo la documentazione: il CLI del Terminale (e l’interfaccia VS Code) può essere configurato per utilizzare provider di terze parti. È qui che entrano in gioco Ollama e llama.cpp.
Una volta che Claude Code punta a un endpoint HTTP locale, il runtime, l’hardware e i compromessi di hosting rimangono fuori dal client; questo confronto sull’hosting LLM nel 2026 riunisce Ollama, stack di inferenza dedicati e opzioni cloud in un unico luogo.
Per vedere come Claude Code si inserisce accanto ad altri flussi di lavoro di coding assistito dall’AI e delivery, questa guida agli strumenti per sviluppatori AI riunisce assistenti nello stile Copilot, automazione e pattern di editor in un unico luogo.
Per una rassegna strumento per strumento degli assistenti di coding nella stessa categoria, Confronto Assistenti di Coding AI analizza Cursor, Copilot, Cline e il resto a un livello più alto rispetto a questa guida all’installazione.
Installazione di Claude Code e avvio rapido
Opzioni di installazione e le loro implicazioni
Ci sono diversi percorsi di installazione e non sono tutti uguali:
- Gli script di installazione nativi sono l’opzione “sempre aggiornata” perché si auto-aggiornano.
- Homebrew e WinGet sono l’opzione “cambiamento controllato” perché aggiorni esplicitamente.
Comandi di installazione (avvio rapido ufficiale):
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
:: Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
Quindi avvia una sessione interattiva all’interno di una cartella del progetto:
cd /path/to/your/project
claude
Login e tipi di account
Claude Code ha bisogno di un account per funzionare in modalità first-party. Il flusso di avvio rapido supporta login tramite un abbonamento Claude (Pro, Max, Team, Enterprise), un account Console (crediti API) o provider cloud supportati. Una nota operativa utile: al primo login sulla Console, viene creato uno spazio di lavoro “Claude Code” per il tracciamento centralizzato dei costi.
Configurazione di Claude Code: settings.json e variabili d’ambiente
Se Claude Code sembra magico quando funziona, spesso sembra “misterioso” quando non funziona. La cura sta nel comprendere il suo livello di configurazione e le poche variabili d’ambiente che contano davvero.
File di configurazione e precedenza
Le impostazioni di Claude Code sono gerarchiche, con tre file rivolti allo sviluppatore:
- Ambito utente, si applica ovunque: ~/.claude/settings.json
- Ambito progetto, condiviso in un repo: .claude/settings.json
- Ambito locale, override per macchina: .claude/settings.local.json (ignorado da git)
La precedenza è (dalla più alta alla più bassa): policy gestita, flag CLI, locale, progetto, utente. Questo ordinamento spiega diversi momenti di “perché la mia configurazione viene ignorata”.
Puoi gestire le impostazioni in modo interattivo tramite il comando /config, che apre un’interfaccia di impostazioni all’interno del REPL.
Variabili d’ambiente che controllano il routing del provider
Claude Code può essere guidato a runtime tramite variabili d’ambiente. Due stranezze comportamentali meritano di essere trattate come vincoli di design:
-
Se ANTHROPIC_API_KEY è impostata, Claude Code userà la chiave invece di un abbonamento Claude anche se sei loggato. In modalità stampa (-p) la chiave viene sempre utilizzata se presente.
-
Se ANTHROPIC_BASE_URL punta a un host non first-party (un proxy, gateway o server locale), alcune funzionalità sono intenzionalmente conservative. Ad esempio, la ricerca degli strumenti MCP è disabilitata di default a meno che tu non la riabiliti esplicitamente.
Per il confine specifico dell’abbonamento attualmente applicato negli stack di agenti di terze parti, questo aggiornamento delle policy Claude per i flussi di lavoro OpenClaw spiega perché è richiesto l’uso basato su API.
Un pattern minimale “usa un gateway” appare così:
export ANTHROPIC_BASE_URL=https://your-gateway.example
export ANTHROPIC_API_KEY=sk-your-key
Nota sul gateway: Claude Code si aspetta determinati formati API. Per il formato Anthropic Messages, il gateway deve esporre /v1/messages e /v1/messages/count_tokens e deve inoltrare gli header anthropic-beta e anthropic-version. Se un gateway rifiuta quegli header, esiste una manopola dedicata per rimuovere i beta sperimentali.
Selezione del modello in Claude Code quando non si usa Anthropic direttamente
Claude Code ha un concetto di alias (opus, sonnet, haiku) e supporta anche il fissaggio di ID di modello specifici. Esiste anche una whitelist che può limitare ciò che gli utenti possono selezionare nel selettore del modello, anche quando instradati tramite provider di terze parti.
Un pattern pragmatico è impostare un modello iniziale e limitare il selettore, quindi fissare ciò a cui “default” si risolve tramite env:
{
"model": "claude-sonnet-4-5",
"availableModels": ["claude-sonnet-4-5", "haiku"],
"env": {
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"
}
}
Esecuzione di LLM self-hosted tramite Ollama
Ollama è attualmente il modo a minore attrito per far funzionare Claude Code su modelli non Anthropic, perché espone un’API compatibile con Anthropic a cui Claude Code può parlare.
Setup rapido con ollama launch
Se hai Ollama installato e in esecuzione, il percorso veloce è:
ollama launch claude
Oppure specifica un modello all’avvio:
ollama launch claude --model glm-4.7-flash
Setup manuale con variabili d’ambiente esplicite
La documentazione sull’integrazione Ollama descrive un cablaggio manuale semplice dove Claude Code parla con Ollama tramite l’endpoint API compatibile con Anthropic:
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3.5
Questo pattern è opinato in un modo utile: tratta il “routing del provider” come una preoccupazione ambientale, non qualcosa che clicchi in una GUI.
Controllo di realtà della finestra di contesto
Il coding agentic è affamato di contesto. Ollama lo sottolinea in modo diretto: Claude Code richiede una finestra di contesto ampia e raccomanda almeno 64k token. Se il tuo modello locale si ferma a 8k o 16k, Claude Code funzionerà comunque, ma la promessa “a livello di progetto” diventa fragile.
Per il comportamento pratico dei modelli locali in un setup simile di terminale-agente (Ollama e llama.cpp, compiti di coding e note oneste sui fallimenti), Migliori LLM per OpenCode - Testati Localmente è un utile controllo incrociato quando stai selezionando tag GGUF o Ollama per Claude Code.
Esecuzione di LLM self-hosted tramite llama.cpp
llama.cpp è attraente per il motivo opposto: non cerca di essere una piattaforma. È un server veloce e leggero che può esporre sia route compatibili con OpenAI sia una route compatibile con l’API Anthropic Messages.
Per i percorsi di installazione, llama-cli e il comportamento di llama-server oltre ai frammenti qui sotto, Avvio rapido di llama.cpp con CLI e Server è il riferimento end-to-end.
Cosa eseguire sul lato server
Il server HTTP di llama.cpp (llama-server) supporta un’API Messages compatibile con Anthropic su POST /v1/messages, con streaming tramite SSE. Offre anche count_tokens su /v1/messages/count_tokens.
Due dettagli contano per Claude Code:
- Il server non fa esplicitamente affermazioni forti sulla compatibilità completa con la spec API Anthropic, ma dichiara che funziona abbastanza bene per molte app.
- L’uso degli strumenti richiede di avviare llama-server con il flag –jinja. Se lo perdi, Claude Code si comporterà come se avesse improvvisamente dimenticato come essere un agente.
Un’esecuzione locale minimale appare così:
# Compila o scarica llama-server, poi esegui con un modello GGUF
./llama-server -m /models/your-model.gguf --jinja --host 127.0.0.1 --port 8080
Se vuoi un confine di autenticazione rigido, llama-server può essere configurato con una chiave API:
./llama-server -m /models/your-model.gguf --jinja --api-key my-local-key --host 127.0.0.1 --port 8080
Puntare Claude Code a llama-server
Con il server in esecuzione, il lato Claude Code è principalmente un override dell’URL di base:
export ANTHROPIC_BASE_URL=http://127.0.0.1:8080
export ANTHROPIC_API_KEY=my-local-key # solo se hai abilitato --api-key su llama-server
claude --model your-model-alias
Se non imposti una chiave API o un token di autenticazione, Claude Code potrebbe tentare di ricadere sul login dell’abbonamento, che è la fonte di molti reclami sul “perché apre un browser”.
Controlli di salute e triage del primo fallimento
llama-server espone un semplice endpoint di salute che restituisce “loading model” finché il modello non è pronto, e “ok” quando è utilizzabile. Quando Claude Code sembra bloccarsi alla prima richiesta, controllare /health è un modo veloce per distinguere un “bug di configurazione client” da “server ancora in caricamento”.
Prezzi e modello di costo
Il prezzo di Claude Code è meno una questione di “comprare un CLI” e più una questione di “quale binario di fatturazione supporta i token”.
I piani di abbonamento includono Claude Code
Anthropic include Claude Code nei livelli di abbonamento a pagamento Claude. A partire da aprile 2026, i prezzi pubblicati elencano:
- Pro a $17 al mese con un sconto annuale ($200 fatturati anticipati) o $20 fatturati mensilmente, e include Claude Code.
- Piani Max a partire da $100 al mese.
- Piani Team prezzi per sede, con una sede standard a $20 per sede al mese fatturato annualmente ($25 mensile) e una sede premium a $100 per sede al mese fatturato annualmente ($125 mensile).
Prezzi per token API
Se usi Claude Code tramite fatturazione API, i costi seguono i tassi per token. Anthropic pubblica prezzi per milione di token (MTok) per modelli come:
- Haiku 4.5 a $1/MTok input e $5/MTok output.
- Sonnet 4.5 a $3/MTok input e $15/MTok output.
- Opus 4.5 a $5/MTok input e $25/MTok output.
Controlli dei costi nel CLI
La modalità stampa (-p) supporta cap budget diretti come –max-budget-usd, utile quando scripti compiti e vuoi una spesa prevedibile.
All’interno delle sessioni interattive, /cost mostra le statistiche di utilizzo dei token.
I backend locali cambiano la fatturazione, non la fisica
Instradare Claude Code a Ollama o llama.cpp può rimuovere le fatture API per token, ma non rende il lavoro gratuito. Stai scambiando i costi cloud per compute locale, memoria e “qualcuno possiede l’uptime”. Per alcuni team, questo compromesso è l’intero punto.
Flusso di lavoro tipico: dal piano alla PR
Il mio pregiudizio è che Claude Code sia più forte quando lo tratti come un motore di flusso di lavoro, non come un chatbot. Gli strumenti suggeriscono questo.
Inizia con il modello di permessi, non con il prompt
Claude Code è controllato da permessi per design. I documenti descrivono un modello a livelli: le operazioni in sola lettura come letture di file e grep sono consentite, mentre i comandi bash e le modifiche ai file richiedono approvazione.
Le modalità di permesso esistono per gestire l’attrito. Nel CLI puoi ciclare le modalità con Shift+Tab (default -> acceptEdits -> plan). La modalità Plan legge e propone modifiche ma non edita. La modalità acceptEdits permette a Claude Code di creare e modificare file nella tua directory di lavoro senza chiedere conferma, pur chiedendo ancora conferma per comandi con effetti collaterali fuori dalla sua lista sicura.
La modalità Auto è un’opzione più recente che riduce i prompt delegando le approvazioni a un classificatore, posizionato come un percorso intermedio più sicuro tra prompt costanti e disabilitare completamente i prompt. Richiede una versione minima di Claude Code e requisiti specifici di piano e modello.
Usa i comandi integrati per mantenere le sessioni oneste
Alcuni comandi trasformano Claude Code da “assistente” a “strumentazione”:
- /init genera una guida di progetto CLAUDE.md, che è un modo leggero per alimentare un contesto coerente. Per playbook riutilizzabili e flussi di lavoro ripetibili che si posizionano sopra
CLAUDE.md, Claude Skills per gli sviluppatori copre il layout SKILL.md, compatibilità IDE, tuning dei trigger e testing. - /diff offre una vista interattiva delle modifiche, inclusi diff per turno.
- /rewind ti permette di riavvolgere conversazione e/o codice a un punto precedente, usando checkpoint.
- /debug abilita il logging di debug a metà sessione.
- /doctor diagnostica e verifica la tua installazione e impostazioni.
Questi non sono gimmick; sono le guardrail di sicurezza su cui ti appoggi quando un agente modifica più del previsto.
Quando passare alla modalità non interattiva
Per compiti one-shot (spiegare, riassumere, generare un piano di patch), la modalità stampa è una buona scelta:
claude -p "Riassumi l'architettura del repository e elenca i moduli più a rischio"
Esce dopo la risposta, il che funziona bene negli script e nella CI.
Checklist per la risoluzione dei problemi
La maggior parte dei problemi di Claude Code sono problemi di configurazione travestiti. Ecco una checklist che mappa sintomi comuni al meccanismo sottostante.
Claude Code continua a chiedere di accedere mentre si usa un server locale
Questo tipicamente significa che Claude Code sta ancora cercando di usare l’autenticazione dell’abbonamento first-party. Assicurati di impostare una modalità di autenticazione esplicita per il proxy:
- Imposta ANTHROPIC_API_KEY per i gateway che si aspettano X-Api-Key.
- Oppure imposta ANTHROPIC_AUTH_TOKEN per i gateway che usano Authorization Bearer.
Ricorda che ANTHROPIC_API_KEY sovrascrive l’uso dell’abbonamento anche se sei loggato, e in modalità interattiva potresti dover approvare quella sovrascrittura una volta.
Il gateway dà errore sugli header anthropic-beta
Alcuni gateway rifiutano header sconosciuti o campi beta. Esiste una variabile d’ambiente progettata per questo esatto modalità di fallimento:
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
La documentazione del gateway LLM nota anche che potresti averne bisogno quando usi il formato Anthropic Messages con Bedrock o Vertex.
Il tool calling non funziona su llama.cpp
Ricontrolla i flag del server. llama-server documenta che l’uso degli strumenti richiede il flag –jinja. Senza di esso, il server può rispondere, ma il loop dell’agente si degradherà.
I prompt di permesso interrompono ogni comando
Questo può essere normale, a seconda della modalità e delle regole di permesso. Le opzioni includono:
- Passare temporaneamente a acceptEdits (le modifiche ai file scorrono più velocemente).
- Scrivere regole di permesso esplicite per comandi bash noti come sicuri in settings.json.
- Usare /sandbox per isolare lo strumento bash riducendo i prompt.
- Valutare la modalità auto se il tuo piano e versione lo supportano, come un compromesso.
Qualcosa non va e hai bisogno di osservabilità
Usa gli strumenti integrati:
- /doctor per validare installazione e impostazioni.
- /debug per iniziare a catturare log da quel punto in poi.
- Se sei in modalità stampa, considera un budget massimo stretto e turni massimi per mantenere gli esperimenti limitati.