Workbranch › Guide
GuidaCome gestire i permessi in Claude Code
Claude Code chiede conferma prima di eseguire comandi o modificare file: troppe richieste ti rallentano, troppo poche possono essere rischiose. Questa guida spiega le richieste, le modalità di permesso e le regole che puoi salvare, così approvi una volta il lavoro di routine e tieni bloccate le parti pericolose.
In breve: rispondi a ogni richiesta con Yes (sì), Yes, and don't ask again (sì, e non chiedere più) o No, e premi Shift+Tab per cambiare modalità, come accept edits o plan. Per approvare definitivamente i comandi di routine, digita /permissions o aggiungi a .claude/settings.json regole allow come Bash(npm run *), e regole deny come Read(./.env) per ciò che Claude non deve mai toccare.
Questa guida segue la documentazione di Claude Code di Anthropic a ottobre 2026. Sei alle prime armi con Claude Code? Parti da come iniziare con Claude Code.
Su cosa chiede conferma Claude Code
| Azione | Chiede in modalità Manual? | Quanto dura "don't ask again" |
|---|---|---|
| Leggere file, cercare | No, dentro le tue cartelle di lavoro | Non serve |
| Comandi di shell | Sì, tranne un insieme integrato di comandi di sola lettura | Per sempre, per repository e comando |
| Modificare o scrivere file | Sì | Fino alla fine della sessione |
| Scaricare una pagina web | Sì, tranne alcuni siti di documentazione | Per sempre, per repository e dominio |
| Ricerca web | Sì | Per sempre, per repository |
Una richiesta mostra cosa vuole fare Claude e le tue opzioni. Nella maggior parte delle richieste puoi spostarti su Yes o No e premere Tab per aggiungere un commento; con No, il commento arriva a Claude come motivazione e Claude continua a lavorare tenendone conto.
Scegliere una modalità di permesso
Premi Shift+Tab durante una sessione per scorrere le modalità; la barra di stato mostra quella attiva. Puoi anche partire direttamente in una modalità con claude --permission-mode plan.
| Modalità | Cosa fa | Quando usarla |
|---|---|---|
Manual (default) | Chiede la prima volta che viene usato ogni strumento | Vuoi vedere tutto |
Accept edits (acceptEdits) | Applica senza chiedere le modifiche ai file e semplici comandi sui file come mkdir o mv nel tuo progetto | Ti fidi del compito e rivedrai il diff |
Plan (plan) | Esplora e propone un piano; nessuna modifica finché non lo approvi | Modifiche grandi o poco chiare |
Auto (auto) | Salta le richieste di routine; un classificatore in background confronta comandi e richieste di rete con la tua richiesta | Compiti più lunghi con meno interruzioni |
Don't ask (dontAsk) | Rifiuta tutto ciò che richiederebbe conferma, esegue solo ciò che è già approvato | Script blindati e CI; non è nel ciclo di Shift+Tab, si avvia con --permission-mode dontAsk |
Bypass (bypassPermissions) | Salta le richieste, anche per le cartelle protette come .git | Solo in un container o una VM isolati |
Le versioni recenti avviano le sessioni interattive nel terminale e in VS Code in modalità auto, che funziona con tutti i piani, ma solo con i modelli più recenti. Per scegliere tu la modalità iniziale, imposta "defaultMode" sotto permissions in ~/.claude/settings.json. Auto e bypass impostati nei file di impostazioni di un progetto vengono ignorati, quindi un repository non può attivarli al posto tuo.
Salvare regole allow, ask e deny
- In una sessione, digita
/permissions. La finestra elenca ogni regola e il file di impostazioni da cui proviene, e ti permette di aggiungere o rimuovere regole. Le modifiche valgono dalla prossima azione di Claude. - Oppure modifica direttamente un file di impostazioni. Le regole condivise del team vanno in
.claude/settings.json(fanne il commit); le tue vanno in.claude/settings.local.jsono, per tutti i progetti, in~/.claude/settings.json. - Scrivi le regole come
TooloTool(pattern):Bash(npm run *): qualsiasi script npmBash(git commit *): i commit, ma non gli altri comandi gitRead(./.env): il file.envdel progettoWebFetch(domain:example.com): le pagine di quel sitomcp__github__*: tutti gli strumenti di un server MCP chiamato github
Un tipico punto di partenza:
{"permissions": {"allow": ["Bash(npm run *)", "Bash(git commit *)"], "deny": ["Bash(git push *)", "Read(./.env)", "Read(./secrets/**)"]}}
Le regole vengono controllate in un ordine fisso: prima deny, poi ask, poi allow. Un deny vince sempre, anche su un allow più specifico, e una regola ask chiede conferma anche se corrisponde pure un allow.
Lavorare in sicurezza
- Metti il
*dopo il sottocomando.Bash(git log *)consente sologit log;Bash(git *)consente ogni comando git, compresi quelli che eseguono altri programmi. - Attenzione allo spazio.
Bash(ls *)non corrisponde alsof;Bash(ls*)sì. - Le regole sui comandi non sono un muro. Un deny per
Bash(rm *)non fermabash -c 'rm …'o/bin/rm. Claude Code però divide i comandi concatenati, quindi un comando consentito seguito da&&e da un altro richiede comunque che ogni parte sia consentita. Per limiti rigidi su file e rete, usa il sandboxing di Claude Code. - Blocca i segreti con regole Read deny. Nelle versioni recenti un deny
Readimpedisce anche di allegare le immagini con percorsi corrispondenti che incolli nel prompt, e nasconde i nomi corrispondenti quando menzioni una cartella con @. - I file protetti restano protetti. Le regole allow non pre-approvano mai le scritture in posti come
.git,.claude,.mcp.jsone file della shell come.zshrc. Fuori dalla modalità bypass ti viene chiesto prima, oppure in modalità auto il classificatore valuta la scrittura. - Disattiva le modalità rischiose. Imposta
permissions.disableBypassPermissionsModeopermissions.disableAutoModesu"disable"per impedirne l'uso.
Se non funziona
- Una regola allow chiede ancora conferma: potrebbe corrispondere una regola deny o ask di un altro file di impostazioni. Apri
/permissionsper vedere la provenienza di ogni regola. - Una regola per un'altra cartella non si applica: Claude lavora solo dentro le sue cartelle di lavoro. Avvialo con
claude --add-dir patho elenca la cartella inadditionalDirectories. - Una regola di percorso nelle impostazioni utente non trova il tuo progetto: i percorsi che iniziano con
/in~/.claude/settings.jsonsono relativi a~/.claude. Usa~/o//per i percorsi assoluti. - La richiesta non ha "don't ask again": quell'opzione compare solo quando la richiesta può elencare tutto ciò che una regola salvata coprirebbe. Approva una volta, oppure scrivi tu la regola.
Fonti
- Claude Code user FAQ (Claude Help Center, verificato il 30 ottobre 2026)
- Configure permissions (Claude Code Docs, verificato il 30 ottobre 2026)
- Permission modes (Claude Code Docs, verificato il 30 ottobre 2026)
Domande frequenti
Posso dire a Claude in CLAUDE.md di non eseguire certi comandi?
Puoi, ma nulla lo impone. CLAUDE.md orienta le scelte di Claude, mentre Claude Code applica solo regole di permesso, modalità e hook. Usa una regola deny per tutto ciò che non deve mai succedere.
Dove viene salvata la mia scelta "don't ask again"?
Per i comandi e i domini web scrive una regola in .claude/settings.local.json nella radice del repository git, quindi vale per le sessioni future lì. Le approvazioni per le modifiche ai file durano solo fino alla fine della sessione.
La mia azienda può bloccare queste impostazioni?
Sì. Gli amministratori possono distribuire impostazioni gestite che le impostazioni utente e di progetto non possono sovrascrivere, compresa la disattivazione della modalità bypass o auto.