Code Mode è sperimentale e disattivato per impostazione predefinita. Potrebbe cambiare o essere rimosso in qualsiasi release. Per condividere un feedback, esegui
/feedback.Come funziona Code Mode
In una sessione Code Mode descrivi comunque la tua attività in un prompt, e Claude scrive JavaScript per portarla a termine. Un singolo frammento di codice può eseguire comandi in parallelo, usare un risultato nella chiamata successiva e restituire la parte dell’output che Claude deve leggere. Ad esempio, se chiedi a Claude di aumentare un limite di nuovi tentativi, Claude potrebbe scrivere questo codice per trovare il file, modificarlo ed eseguire i test. L’ultima riga restituisce a Claude il percorso del file e l’output dei test:Ctrl+O per aprire il visualizzatore della trascrizione. Ogni frammento di codice vi appare come una riga Code compressa, con un suggerimento su come espanderla.
Quando usare Code Mode
Prova Code Mode su attività che richiedono molte chiamate agli strumenti correlate, come:- Una modifica che si ripete in molti file
- Una ricerca i cui risultati devono essere filtrati prima che Claude li legga
- Diversi comandi indipendenti che possono essere eseguiti contemporaneamente
Limitazioni di Code Mode
Prima di attivare Code Mode, verifica di poter accettare questi limiti:- Ripresa: puoi riprendere una sessione Code Mode solo nel terminale, con Code Mode attivo
- Modalità auto: il classificatore della modalità auto esamina il codice, non ogni chiamata a uno strumento
- Codice di lunga durata: tranne quando il codice può essere eseguito in background, devi attendere che finisca, e si interrompe dopo dieci minuti
- Hook: puoi vedere chiamate agli strumenti rifiutate quando un hook
PreToolUsenon può essere eseguito o va in timeout, e output del codice bloccato da un hookUserPromptSubmit - Funzionalità non disponibili: non puoi usare Remote Control, Claude in Chrome o computer use
- Spostamento della sessione: non puoi spostare la sessione nell’app Desktop né trasformarla in una sessione in background, e
/forknon può avviare una copia in background
Requisiti
- Versione: Claude Code v2.1.323 o successiva, su uno qualsiasi dei due canali di release. Una versione precedente si avvia senza Code Mode, con o senza il motivo
it isn't open to your account yet - Account: un abbonamento Claude o un account Console. Non puoi usare Code Mode tramite un gateway, Amazon Bedrock, Claude Platform on AWS, Agent Platform di Google Cloud o Microsoft Foundry
- Organizzazione: la tua organizzazione non usa la configurazione HIPAA né la conservazione zero dei dati
- Modello: Claude Opus 5.5, Sonnet 5.5, Haiku 5.5 o Fable 5.2
- Superficie: una sessione
claudeinterattiva in un terminale. Code Mode non funziona con-p, l’Agent SDK, il pannello di VS Code, l’app Desktop o le sessioni cloud - Installazione: la build nativa di Claude Code
- Windows: Git for Windows è installato
DISABLE_TELEMETRY. Per la soluzione relativa a ciascuna, consulta Code Mode non si avvia.
Prova Code Mode
Attiva Code Mode, assegna un’attività a Claude e guarda il codice che Claude ha scritto.1
Controlla la tua versione
Esegui
claude --version. Se la versione è precedente alla v2.1.323, esegui claude update. Se sei sul canale stable e l’aggiornamento non raggiunge la v2.1.323, attendi che stable si allinei oppure passa a latest.2
Avvia Claude Code con Code Mode attivo
Imposta la variabile d’ambiente
CLAUDE_CODE_EXPERIMENTAL_CODE_MODE su 1. Per provare Code Mode, impostala nella tua shell. Per attivare Code Mode per ogni nuova sessione, impostala nelle tue impostazioni utente.- macOS, Linux, WSL
- Windows PowerShell
- settings.json
3
Conferma che vuoi Code Mode
Claude Code ti chiede di confermare prima della tua prima sessione Code Mode. Seleziona Yes, turn on Code Mode. Claude Code si riavvia e mostra questa riga vicino all’inizio della sessione:Se vedi una riga diversa o nessuna riga, consulta Code Mode non si avvia.
4
Assegna a Claude un'attività con molte chiamate agli strumenti
In un progetto che conosci, invia un prompt come questo:
5
Leggi il codice che Claude ha scritto
Premi
Ctrl+O ed espandi una riga Code per vedere il JavaScript dietro le chiamate agli strumenti. Premi di nuovo Ctrl+O per tornare alla conversazione.Disattiva Code Mode
RimuoviCLAUDE_CODE_EXPERIMENTAL_CODE_MODE dalla tua shell e da ~/.claude/settings.json, quindi avvia una nuova sessione. Puoi anche mantenere la variabile e cambiarne il valore in 0 in uno dei due posti. Con uno 0 in un posto, Code Mode resta disattivato anche se imposti 1 nell’altro.
Blocca Code Mode per la tua organizzazione
AggiungiCLAUDE_CODE_EXPERIMENTAL_CODE_MODE con il valore 0 alle tue impostazioni gestite in modo che nessuno nella tua organizzazione possa usare Code Mode:
0 è in vigore. Non puoi attivare Code Mode per i tuoi utenti dalle impostazioni gestite.
Permessi e codice di lunga durata
La tua modalità di permesso determina come viene controllato il codice di Claude e se puoi parlare con Claude mentre il codice è in esecuzione.Controlli dei permessi
Ogni chiamata a uno strumento effettuata dal codice di Claude passa attraverso le tue regole di permessodeny e ask e i tuoi hook PreToolUse. Non devi modificare una regola o un matcher per uno strumento come Bash. Oltre a regole e hook, in modalità auto un classificatore esamina il codice, e nelle modalità che chiedono conferma rispondi alle richieste di permesso:
- Modalità auto: il classificatore esamina ogni frammento di codice prima che venga eseguito, non ogni chiamata a uno strumento. Non vede i valori calcolati in fase di esecuzione, come un percorso preso dall’output di una ricerca, quindi mantieni regole o hook per le chiamate che devi controllare. Ti può comunque essere chiesta conferma quando nuovo codice si avvia mentre è in esecuzione codice precedente
- Altre modalità di permesso: il codice si avvia senza revisione, e ti viene chiesta conferma per ogni chiamata a uno strumento per cui te la chiederebbe quella modalità
PreToolUse che corrisponda a REPL, lo strumento che esegue il codice di Claude, e leggi il JavaScript da tool_input.code.
Codice di lunga durata
Mentre il codice esegue una build o un test lunghi, Claude lo attende oppure lo lascia proseguire in background:- Attesa: Claude risponde dopo che il codice è terminato, e il codice si interrompe dopo dieci minuti, incluso il tempo che passi sulle richieste di permesso
- Background: puoi continuare a parlare con Claude, e il codice può essere eseguito per un massimo di due ore
bypassPermissions. Se Claude continua ad attendere, controlla la modalità corrente e come hai avviato la sessione:
- Sei passato a un’altra modalità: premi
Shift+Tabfinché non torni alla modalità in cui hai iniziato - Hai iniziato in un’altra modalità, oppure hai scelto la sessione dall’elenco di
claude --resume: se la modalità auto è disponibile per te, esci, quindi eseguiclaude --continue --permission-mode autocon Code Mode attivo - Hai passato nomi di strumenti a
--tools: riavvia in modalità auto senza quel flag
Risoluzione dei problemi
Code Mode non si avvia
Code Mode (experimental) isn't available vicino all’inizio della sessione significa che Claude Code si è avviato senza Code Mode. Il motivo segue sulla stessa riga, e viene mostrato anche da /status. Trova il motivo in questa tabella, apporta la modifica e avvia una nuova sessione. Per un motivo non elencato, controlla i requisiti.
Se non vedi alcuna riga relativa a Code Mode, esegui
claude --version. Se la tua versione è precedente alla v2.1.323, aggiorna. Quindi verifica che CLAUDE_CODE_EXPERIMENTAL_CODE_MODE sia 1 nella tua shell o nelle impostazioni utente, e rimuovi qualsiasi 0 da queste e da qualsiasi file --settings.
Richiesta di permesso con un conto alla rovescia
Quando Claude avvia altro codice in modalità auto mentre del codice precedente è ancora in esecuzione, il codice precedente perde la revisione del classificatore. Claude Code ti chiede quindi conferma per le chiamate rimanenti del codice precedente che richiederebbero una revisione. Senza alcun IDE connesso, la richiesta mostra un conto alla rovescia:Chiamata a uno strumento rifiutata da un hook
Se Claude segnala una chiamata a uno strumento rifiutata, chiedigli il testo dell’errore. Questi errori indicano che un hookPreToolUse non ha fornito una decisione, il che rifiuta la chiamata anche quando onFailure non è impostato:
the hook failed: su una chiamata dal codice di Claude, il tuo hook non è riuscito ad avviarsi, è stato terminato, è uscito con 126, 127 o un codice superiore a 128, oppure ha restituito un errore HTTP o un output non valido. Correggi l’hookthe hook did not finish: il tuo hook è andato in timeout su una chiamata dal codice di Claude, oppure su qualsiasi altra chiamata a uno strumento dopo che Claude ha eseguito codice nella sessione. Aumenta iltimeoutdell’hook
command o http fallisce o va in timeout, imposta "onFailure": "continue" su di esso. Se un hook command esce con un codice ordinario come 1, la chiamata procede a meno che tu non imposti "onFailure": "block".
Output del codice trattenuto da un hook
Se Claude riporta il motivo di blocco di un hook dove ti aspettavi l’output del codice di Claude, controlla i tuoi hookUserPromptSubmit. Quando il codice può essere eseguito in background, gli hook command, http e mcp_tool su quell’evento vengono eseguiti anche sull’output del codice. Per lasciar passare l’output, modifica l’hook in modo che non blocchi quando source nel suo input è poll_event.
Risorse correlate
- Modalità di permesso: confronta la modalità auto con le modalità che ti chiedono conferma
- Riferimento degli hook: scrivi hook
PreToolUseeUserPromptSubmit - Impostazioni gestite: applica un’unica configurazione a un’intera organizzazione