Claude Code senza freni: il flag YOLO, i rischi, e Auto Mode
Il flag --dangerously-skip-permissions di Claude Code elimina ogni richiesta di conferma e ti fa risparmiare il 30% di tempo. Il problema è che il 32% di chi lo usa si ritrova con file modificati per errore e il 9% perde dati. Anthropic ha appena lanciato Auto Mode come alternativa sicura. Vediamo come funzionano entrambi.
Dove andiamo
Se hai mai usato Claude Code per più di mezz’ora, conosci il problema: ogni comando shell, ogni scrittura su file, ogni chiamata MCP richiede la tua approvazione esplicita. È come guidare con il freno a mano tirato. Il flag --dangerously-skip-permissions toglie il freno a mano. Auto Mode prova a tenerlo rilassato senza farti schiantare. In questo articolo vediamo cosa succede quando togli tutti i limiti, quanto rischi davvero, e come usare Auto Mode per avere la velocità senza il rischio.
Il problema: l’approval fatigue
Prima di entrare nel flag, capiamo perché esiste. Claude Code in modalità default ti chiede conferma per ogni azione potenzialmente pericolosa: eseguire un comando shell, modificare un file, chiamare uno strumento esterno. In una sessione di lavoro intensa, questo significa decine di popup di approvazione.
E qui sta il paradosso: uno studio interno di Anthropic mostra che il 93% delle richieste di approvazione viene accettato dagli sviluppatori. Quando clicchi “sì” 93 volte su 100, il meccanismo di sicurezza non sta più proteggendo niente. È un ritardo, non una salvaguardia.
La risposta istintiva? Togliere tutto. Ecco il flag.
La soluzione nucleare: –dangerously-skip-permissions
Il nome non lascia spazio a interpretazioni. --dangerously-skip-permissions bypassa ogni richiesta di conferma: file edit, comandi shell, strumenti MCP, tutto passa senza chiedere permesso. Il prefisso “dangerously” non è decorativo, è un avvertimento.
I numeri sulla velocità sono inequivocabili:
- 7.9 secondi per task con conferme manuali
- 5.5 secondi per task con il flag
- -30% di tempo di esecuzione
In una pipeline CI/CD dove Claude Code esegue centinaia di operazioni, quel 30% si accumula. Joe Njenga, sviluppatore che ha documentato l’uso del flag per le deployment pipeline su Medium, riporta un flusso di lavoro molto più scorrevole e prevedibile con il bypass attivo.
Ma il nome del flag è lì per un motivo. Il 32% degli sviluppatori che usa il bypass ha riscontrato modifiche non intenzionali ai file. Il 9% ha perso dati. Un singolo comando shell sbagliato, un rm eseguito senza supervisione, un file di configurazione sovrascritto senza backup: sono scenari reali, non ipotetici.
I rischi concreti
Anthropic stessa documenta gli incidenti interni verificati con il bypass attivo:
- Cancellazione di branch remoti su repository condivisi
- Upload di token di autenticazione su cluster di compute accessibili ad altri
- Tentativi di migrazione su database di produzione senza review
Ksred, uno sviluppatore che ha usato il flag per 9 ore consecutive per costruire un sistema di analisi finanziaria, riporta due problemi specifici: un file di configurazione sovrascritto senza backup e un fenomeno di scope creep, dove Claude Code iniziava a modificare parti del progetto fuori dal perimetro originale.
La regola di Ksred dopo l’esperienza: “Il flag non sta concedendo fiducia. Sta riconoscendo fiducia che hai già stabilito attraverso isolamento, versionamento, o entrambi.”
Auto Mode: la via di mezzo
Anthropic ha lanciato Auto Mode proprio per risolvere il dilemma: come dare velocità senza togliere i freni? Il meccanismo si basa su due layer di classificazione che agiscono in modo diverso a seconda del tipo di azione.
Il primo layer è un probe di prompt injection sull’input. Prima che Claude Code esegua qualcosa, controlla se il contesto della conversazione contiene tentativi di manipolazione. Il secondo è un transcript classifier basato su Sonnet 4.6 che valuta l’azione proposta dopo aver visto l’intera storia della sessione.
Il classifier funziona in due stadi:
- Filtro rapido a singolo token: classifica immediatamente le azioni chiaramente sicure o chiaramente pericolose
- Chain-of-thought: si attiva solo quando il filtro rapido non è sicuro, producendo un’analisi esplicita prima di decidere
Il sistema a tre tier delle autorizzazioni:
- Tier 1: allowlist di strumenti sicuri + impostazioni utente, niente classificatore
- Tier 2: operazioni su file all’interno del progetto, niente classificatore
- Tier 3: comandi shell, fetch web, strumenti esterni, subagent, filesystem fuori progetto, qui passa il transcript classifier
I numeri di Auto Mode su traffico reale (n=10.000 azioni):
| Metrica | Valore |
|---|---|
| FPR Stage 1 | 8.5% |
| FPR pipeline completa | 0.4% |
| FNR azioni overdue (n=52) | 17% |
| FNR esfiltrazione sintetica (n=1.000) | 5.7% |
Il 0.4% di falsi positivi significa che su 1.000 azioni legittime, solo 4 vengono bloccate ingiustamente. Non male. Ma il 17% di falsi negativi su azioni “overeager” significa che circa 1 azione rischiosa su 6 passa lo stesso. Auto Mode riduce il rischio, non lo elimina.
La pratica
Se decidi di usare il flag YOLO, ci sono modi per mitigare il rischio. Ecco le configurazioni più usate.
Il comando base:
claude --dangerously-skip-permissions -p "il tuo task qui"
Il flag -p (–print) è quello che rende il bypass utile: esegue Claude Code in modalità non interattiva, perfetto per script shell e pipeline CI/CD.
L’alias clauded:
alias clauded="claude --dangerously-skip-permissions"
Creato da Ksred, è diventato lo standard de facto. Corto, mnemonico, facile da digitare.
Il file settings.json con allowlist selettiva:
Per chi vuole un approccio più chirurgico del bypass totale, Claude Code supporta regole di autorizzazione nel settings.json:
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git log *)",
"Bash(git diff *)",
"Bash(cat *)",
"Bash(ls *)",
"Bash(grep *)",
"Write",
"Update"
],
"deny": [
"Bash(rm *)",
"Bash(sudo *)",
"Bash(curl * | bash)",
"Bash(chmod 777 *)"
]
}
}
Nota: rm è deliberatamente escluso dalla allowlist. È il principio di Ksred applicato alla configurazione.
Docker come sandbox:
L’approccio più sicuro per l’uso autonomo è eseguire Claude Code dentro un container Docker con regole di firewall:
docker run -it \
--network=none \
-v $(pwd):/workspace \
anthropic/claude-code \
--dangerously-skip-permissions
Con --network=none, anche se qualcosa va storto, il container non può comunicare con l’esterno. Il filesystem del host è montato solo sulla directory di lavoro.
Le cinque modalità di permesso:
| Modalità | File Edit | Comandi Shell | Strumenti MCP | Caso d’uso |
|---|---|---|---|---|
| Default | Chiede per tipo | Chiede ogni | Chiede ogni | Nuovi utenti |
| Accept Edits | Auto-approva | Chiede ogni | Chiede ogni | Sviluppo quotidiano |
| Plan Mode | Bloccati | Bloccati | Bloccati | Code review |
| Don’t Ask | Negati salvo allowlist | Negati | Negati | Ambiente bloccato |
| Bypass (YOLO) | Auto-approva | Auto-approva | Auto-approva | CI/CD, Docker |
La gerarchia dei settings: managed > CLI args > .local.json > .json > ~/.json. Per i team enterprise, Anthropic offre disableBypassPermissionsMode e allowManagedPermissionRulesOnly per impedire l’uso del flag a livello organizzativo.
Per i tecnici
Da qui in poi si entra nel tecnico. Se non ti interessa l’architettura del classifier, puoi saltare alla conclusione.
Architettura del transcript classifier
Il transcript classifier di Auto Mode è ospitato su Sonnet 4.6 e opera in due fasi:
Stage 1 - Filtro rapido a singolo token:
Un modello leggero produce un singolo token di classificazione (allow/deny). Questo stage ha un FPR dell'8.5% su traffico reale, il che significa che circa 1 azione su 12 viene flaggata inutilmente. Ma il valore è nella velocità: latenza aggiuntiva sotto i 50ms.
Stage 2 - Chain-of-thought:
Quando il filtro rapido restituisce “incerto”, entra in gioco il modello completo con ragionamento esplicito. Questo stage ha un costo computazionale significativamente maggiore ma riduce il FPR dal 8.5% allo 0.4% complessivo. Il COTH è disponibile solo per le categorie Tier 3: comandi shell, fetch web, strumenti esterni, subagent, e operazioni sul filesystem fuori dal progetto.
Threat model
Auto Mode è progettato contro quattro categorie di minacce:
- Overeager behavior: il modello propone azioni troppo aggressive ma in buona fede (es. cancellare branch remoti per “pulire”)
- Honest mistakes: errori genuini nel codice generato o nei comandi proposti
- Prompt injection: tentativi di manipolare Claude Code tramite input malevolo
- Misaligned model: il modello persegue obiettivi diversi da quelli dell’utente
Regole di blocco personalizzabili
Auto Mode offre 20+ categorie di regole di blocco, organizzate in:
- Destroy/exfiltrate: cancellazione di dati, esfiltrazione di informazioni
- Degrade security: riduzione di controlli di sicurezza esistenti
- Cross trust boundaries: accesso a risorse fuori dall’ambiente trusted
- Bypass review: tentativi di aggirare processi di review
Tre slot personalizzabili permettono di definire:
- Environment trust boundary: dove finisce l’ambiente fidato
- Block rules: quali categorie bloccare sempre
- Allow exceptions: quali azioni specifiche far passare anche se la categoria è bloccata
Dettagli del settings.json
I pattern per i permessi nel settings.json seguono una sintassi specifica:
//path- percorso assoluto~/path- relativo alla home/path- relativo al progettopath- relativo alla working directory corrente
Le impostazioni array vengono unite (merge) tra livelli gerarchici. Le regole di deny vincono sempre su quelle di allow, a qualsiasi livello della gerarchia. Questo significa che un admin può bloccare rm a livello managed e nessun utente può sbloccarlo.
Hooks e bypass
Un dettaglio importante: gli hooks continuano a funzionare anche in modalità bypass. Se hai configurato hook per la validazione del codice, il linting o i test pre-commit, questi vengono eseguiti indipendentemente dal flag --dangerously-skip-permissions. Questo offre un ultimo livello di protezione anche quando tutti i permessi sono bypassati.
Il punto
Punti chiave:
--dangerously-skip-permissionstaglia il 30% del tempo di esecuzione ma il 32% degli utenti segnala danni collaterali- Auto Mode riduce i falsi positivi allo 0.4% ma lascia passare circa il 17% delle azioni rischiose
- L’approccio più sicuro per il bypass è Docker con rete isolata + allowlist selettiva nel settings.json
- Per i team: Anthropic offre controlli managed per disabilitare il flag a livello organizzativo
Il tradeoff tra velocità e sicurezza nei tool di coding AI non è un problema che si risolve con un flag. È un problema che si risolve con l’architettura giusta: container isolati, permessi minimi, e un classifier che impara quando dire di no. Auto Mode è il primo passo serio in quella direzione.