autoMode per comunicare al classificatore quali repository, bucket e domini la tua organizzazione ritiene affidabili, in modo che smetta di bloccare le operazioni interne di routine.
Questa pagina è il riferimento di configurazione. L’attivazione e la disattivazione della modalità auto sono trattate nella pagina Permission modes:
- Passa alla modalità auto durante una sessione, o esci da essa: vedi Switch permission modes
- Avvia una sessione in modalità auto: vedi Start in a different permission mode
autoMode.environment.
Questa pagina spiega come:
- Aggiungere un checkpoint umano per push e pull request con
permissions.ask - Definire l’infrastruttura affidabile con
autoMode.environment - Generare voci di ambiente con
/auto-mode-setup - Esaminare i rifiuti in modo da sapere cosa aggiungere successivamente
Confini comuni
La modalità auto consente push a qualsiasi ramo del repository in cui stai lavorando, incluso il ramo predefinito, e la creazione di pull request per impostazione predefinita. Un ramo non predefinito il cui nome lo contrassegna come bersaglio di distribuzione o pubblicazione, comeproduction, release o gh-pages, non è coperto da quel valore predefinito: il classificatore giudica un push lì in base ai suoi meriti, incluso come distribuzione di produzione. Il contenuto del push viene comunque controllato, quindi un force push, un segreto che entra nel commit o una modifica che invierebbe segreti al di fuori del repository quando CI o una pipeline di distribuzione lo esegue rimane bloccato.
Se desideri un checkpoint umano prima dei comandi push e pull request di Claude, aggiungi regole di autorizzazione: le ricette di seguito mantengono la modalità auto attiva per tutto il resto.
Aggiungere un checkpoint umano
Il meccanismo più diretto èpermissions.ask. Le regole di richiesta con ambito di contenuto come quelle di seguito vengono valutate prima del classificatore e forzano sempre un prompt di autorizzazione, anche in modalità auto, perché una regola di richiesta esplicita è la tua intenzione dichiarata di essere richiesto per quell’azione. Aggiungi le regole nelle tue impostazioni:
git push o gh pr create. Un push che Claude scrive in un altro modo, come git -C <dir> push o git -c <key>=<value> push, non corrisponde alla regola, quindi non viene sottoposto a checkpoint. Per un checkpoint che ispeziona il testo completo del comando, aggiungi un hook PreToolUse.
Scegli il meccanismo che corrisponde a quanto ferma deve essere la limitazione:
Dove il classificatore legge la configurazione
Il classificatore legge lo stesso contenuto CLAUDE.md che Claude stesso carica, quindi un’istruzione come “non forzare mai il push” nel CLAUDE.md del tuo progetto guida sia Claude che il classificatore contemporaneamente. Inizia da lì per le convenzioni del progetto e le regole comportamentali. Per le regole che si applicano tra i progetti, come l’infrastruttura affidabile o le regole di negazione a livello di organizzazione, utilizza il blocco di impostazioniautoMode. Il classificatore legge autoMode dai seguenti ambiti:
Il classificatore non legge
autoMode dalle impostazioni di progetto in .claude/settings.json o .claude/settings.local.json. Entrambi i file risiedono nella directory del repository, quindi un repository archiviato o un passaggio di compilazione potrebbe altrimenti iniettare le proprie regole di autorizzazione. Sposta qualsiasi blocco autoMode in .claude/settings.local.json a ~/.claude/settings.json.
Le voci di ogni ambito vengono combinate. Uno sviluppatore può estendere environment, allow, soft_deny e hard_deny con voci personali ma non può rimuovere le voci fornite dalle impostazioni gestite. Poiché le regole di autorizzazione agiscono come eccezioni alle regole di blocco morbido all’interno del classificatore, una voce allow aggiunta da uno sviluppatore può sostituire una voce soft_deny dell’organizzazione: la combinazione è additiva, non un confine di politica rigida.
Il classificatore è una seconda porta che si esegue dopo il sistema di autorizzazioni. Per le azioni che non devono mai essere eseguite indipendentemente dall’intento dell’utente o dalla configurazione del classificatore, utilizza
permissions.deny nelle impostazioni gestite, che blocca l’azione prima che il classificatore venga consultato e non può essere ignorato.Definire l’infrastruttura affidabile
Per la maggior parte delle organizzazioni,autoMode.environment è l’unico campo che devi impostare. Comunica al classificatore quali repository, bucket e domini sono affidabili: il classificatore lo utilizza per decidere cosa significa “esterno”, quindi qualsiasi destinazione non elencata è un potenziale bersaglio di esfiltrazione.
claude auto-mode defaults stampa tre tipi di voce di ambiente.
- Context slots: descrivono la tua organizzazione, stack e postura di sicurezza in modo che il classificatore legga le altre regole nel tuo contesto. Ognuno predefinito è
None configuredo all’assunzione conservativa denominata accanto ad esso:- Organization
- Primary use of Claude Code: predefinito per lo sviluppo software
- Cloud provider(s)
-
Repository visibility: un repository è assunto privato a meno che il suo host remoto e il nome non indichino diversamente, o il classificatore legga un controllo di visibilità precedente nella conversazione che mostra che è pubblico.
Nelle richieste del classificatore inviate da Claude Code stesso, il classificatore legge i tuoi messaggi e i comandi che Claude esegue, non il loro output. L’evidenza deve essere qualcosa che il classificatore può leggere, come il tuo stesso messaggio che nomina il repository come pubblico; l’output di un
gh repo viewda solo non lo raggiunge. - Internal sharing / snippet hosting: i servizi di paste e gist pubblici sono trattati come esterni al confine di fiducia finché non ne nomini uno
- Org-specific CLIs
- Secrets management
- CI/CD deploy targets
- Network posture
- Host containment: predefinito a una macchina sviluppatore ordinaria o runner CI con internet aperto. Se Claude Code viene eseguito in un container, VM o pod con un allow-list di uscita o vicini che non deve toccare, nomina gli host consentiti, se l’endpoint dei metadati cloud dovrebbe essere raggiungibile e quale progetto cloud, cluster o registro il compito utilizza e sotto quale identità. Finché questa voce non nomina quell’identità, il classificatore blocca le richieste per le credenziali dell’host stesso. Richiede Claude Code v2.1.257 o successivo
- Protected deployment namespaces / environments: ricade all’euristica Sensitive remote targets finché non li nomini
- Data retention / declassification
- Trust slots: denominano ciò che il classificatore tratta come interno al tuo confine. Gli slot sono Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services e Internal package registry. Le voci di repository e controllo del codice sorgente predefinite sono il repository di lavoro e i suoi remote configurati. Ogni altro slot di fiducia predefinito è
None configured, quindi nient’altro è affidabile finché non lo aggiungi. La visibilità di un repository limita solo il materiale confidenziale: un repository privato è una destinazione accettabile per il materiale confidenziale, ma rendere un repository privato non cancella mai i segreti o i dati personali o affidati in esso, e il classificatore tratta il contenuto trasportato, reindirizzato o letto per la prima volta dall’esterno del repository di lavoro come non il lavoro proprio di quel repository. - Sensitivity slots: denominano ciò che le regole protettive trattano come ad alto rischio. Gli slot sono Sensitive data locations & audiences, Sensitive remote targets e Protected IaC scopes. Ognuno predefinito è un’euristica ampia, come trattare qualsiasi host o namespace il cui nome contiene
prodoproductioncome bersaglio remoto sensibile, quindi le regole protettive sono attive prima di configurare qualsiasi cosa. Denominare bersagli concreti in uno slot di sensibilità fa sì che quelle regole si applichino ai bersagli denominati invece dell’euristica.
"$defaults" nell’array. Le voci predefinite vengono inserite in quella posizione, quindi le tue voci personalizzate possono andare prima o dopo di esse.
L’esempio seguente mantiene le voci predefinite e aggiunge i repository, i bucket, i domini e i servizi di un’organizzazione.
claude auto-mode config per confermare che le regole effettive includono le tue voci.
Le voci sono prosa, non regex o pattern di strumenti. Il classificatore le legge come regole in linguaggio naturale. Scrivile come descriveresti la tua infrastruttura a un nuovo ingegnere. Una sezione di ambiente completa copre:
- Organization: il nome della tua azienda e per cosa Claude Code viene utilizzato principalmente, come sviluppo software, automazione dell’infrastruttura o ingegneria dei dati
- Source control: ogni organizzazione GitHub, GitLab o Bitbucket verso cui i tuoi sviluppatori eseguono il push
- Cloud providers and trusted buckets: nomi di bucket o prefissi che Claude dovrebbe essere in grado di leggere e scrivere
- Trusted internal domains: nomi host per API, dashboard e servizi all’interno della tua rete, come
*.internal.example.com - Key internal services: CI, registri di artefatti, indici di pacchetti interni, strumenti di gestione degli incidenti
- Internal package registry: il registro npm, PyPI o altro privato attraverso il quale gli install dovrebbero instradare, in modo che gli install che lo bypassano per un registro pubblico vengano bloccati
- Sensitive data locations & audiences: i bucket, i database o i percorsi che contengono dati personali, dati aziendali confidenziali, credenziali, dati regolamentati o materiale simile sensibile, e i destinatari con cui i dati in ogni posizione possono essere condivisi, in modo che il classificatore protegga quelle posizioni invece di indovinare dal contenuto.
- Sensitive remote targets: gli spazi dei nomi, gli host o i container che contano come produzione, in modo che i shell remoti e i port-forward in essi richiedano la tua approvazione esplicita
- Protected IaC scopes: le risorse di infrastruttura il cui apply o destroy dovrebbe sempre richiedere di denominare il cambiamento
- Additional context: vincoli del settore regolamentato, infrastruttura multi-tenant o requisiti di conformità che influiscono su ciò che il classificatore dovrebbe trattare come rischioso
Generare voci di ambiente con /auto-mode-setup
Esegui /auto-mode-setup per fare in modo che Claude Code rediga voci autoMode.environment e talvolta anche voci di regole dal tuo progetto e dalle tue sessioni recenti in esso. Se accetti la bozza, Claude Code la scrive in ~/.claude/settings.json.
/auto-mode-setup richiede un piano Pro, Max o Team e Claude Code v2.1.228 o successivo. Su Windows nativo richiede v2.1.233 o successivo. Non puoi eseguirlo in una sessione cloud. Ha anche bisogno del recupero dei flag di funzionalità, quindi non puoi eseguirlo in una sessione in cui hai disattivato il recupero dei flag.Cosa legge /auto-mode-setup
Se ~/.claude/settings.json contiene già voci autoMode, Claude Code inizia chiedendo se aggiungere alla tua lista di ambiente o sostituirla e mantiene le regole che hai scritto comunque. Claude Code quindi chiede come utilizzi questo progetto e offre due scansioni opzionali prima di scansionare qualsiasi cosa. Nella scansione, Claude Code legge sempre queste fonti:
- Il
CLAUDE.md,README.md, i file di configurazione e i remote git di questo progetto - Le tue impostazioni
autoModeepermissions.allow - Gli host, i bucket e i nomi dei comandi dai comandi che Claude ha eseguito nelle tue sessioni recenti in questo progetto, mai i tuoi messaggi
- La prima parola di ogni comando nella tua cronologia della shell
- Gli host remoti e i nomi dei repository sotto la tua home directory
Esaminare e salvare la bozza
Claude Code esegue la scansione in background, quindi ti mostra la bozza. La accetti o la scarta nel complesso, quindi modifica~/.claude/settings.json in seguito per regolare le singole voci. Quando accetti, Claude Code scrive la bozza e la riconcilia con le impostazioni che hai già:
- Claude Code scrive la lista
environmentsenza"$defaults", perché la bozza esplicita le voci incorporate che ha lasciato invariate - Claude Code include
"$defaults"in ognuno degli elenchiallow,soft_denyehard_denya cui la bozza aggiunge voci, a meno che tu non abbia già scritto un elencoallowsenza di esso, quindi le regole incorporate che non hai sostituito rimangono in vigore - Dopo il salvataggio, Claude Code offre di rimuovere le regole
permissions.allowin~/.claude/settings.jsonche la modalità auto ignora, comeBash(*), o che approvano automaticamente i comandi distruttivi
claude auto-mode config per vedere il risultato effettivo.
Disattivare /auto-mode-setup
Una volta che la modalità auto ha bloccato diverse azioni e non hai ancora voci autoMode.environment, Claude Code mostra una finestra di dialogo intitolata “Teach auto mode about your environment?” alla fine di un turno e offre di eseguire /auto-mode-setup per te. Per interrompere l’offerta ma mantenere il comando, seleziona Don’t show again in quella finestra di dialogo.
Per disattivare sia il comando che l’offerta, aggiungi questa voce skillOverrides a ~/.claude/settings.json:
/auto-mode-setup è un comando incorporato piuttosto che una skill in bundle, quindi questa voce skillOverrides si applica comunque ad esso, ma disableBundledSkills non lo disattiva.
Sostituire le regole di blocco e autorizzazione
Tre campi aggiuntivi ti permettono di sostituire gli elenchi di regole incorporate del classificatore:autoMode.hard_deny: confini di sicurezza incondizionatiautoMode.soft_deny: azioni distruttive che l’intento dell’utente può annullareautoMode.allow: eccezioni alle regole di blocco soft
permissions.deny.
All’interno del classificatore, la precedenza funziona in quattro livelli:
- Le regole
hard_denybloccano incondizionatamente. L’intento dell’utente e le eccezioniallownon si applicano. - Le regole
soft_denybloccano successivamente. L’intento dell’utente e le eccezioniallowpossono ignorare questi blocchi. - Le regole
allowquindi sostituiscono i blocchisoft_denycorrispondenti come eccezioni. - L’intento esplicito dell’utente ignora i blocchi soft rimanenti: se il messaggio dell’utente descrive direttamente e specificamente l’azione esatta che Claude sta per intraprendere, il classificatore la consente anche quando una regola
soft_denycorrisponde.
allow quando il classificatore contrassegna ripetutamente un pattern di routine che le eccezioni predefinite non coprono. Per stringere, aggiungi a soft_deny per i rischi distruttivi specifici del tuo ambiente che i valori predefiniti non coprono, o a hard_deny per i confini di sicurezza che non devono mai essere superati.
Per mantenere le regole incorporate mentre aggiungi le tue, includi la stringa letterale "$defaults" nell’array. Le regole predefinite vengono inserite in quella posizione, quindi le tue regole personalizzate possono andare prima o dopo di esse, e continui a ereditare gli aggiornamenti mentre l’elenco incorporato cambia tra le versioni.
L’esempio seguente mantiene i valori predefiniti in tutti e quattro gli elenchi e aggiunge regole specifiche dell’organizzazione a ognuno.
L’impostazione di uno qualsiasi di
environment, allow, soft_deny o hard_deny senza "$defaults" sostituisce l’intero elenco predefinito per quella sezione. Se imposti un array senza "$defaults", scarta le regole incorporate per quella sezione:soft_deny: ogni regola di blocco soft incorporata, inclusi force push,curl | bash, distribuzioni di produzione e bypass della modalità autohard_deny: la regola incorporata di esfiltrazione dei dati
environment da sola lascia intatti gli elenchi predefiniti allow, soft_deny e hard_deny. Ometti "$defaults" solo quando intendi assumere la piena proprietà dell’elenco. Per farlo in modo sicuro, esegui claude auto-mode defaults per stampare le regole incorporate, copiale nel tuo file di impostazioni, quindi esamina ogni regola rispetto alla tua pipeline e tolleranza al rischio.
Modificare le regole da /permissions
Per visualizzare e modificare le regole del classificatore e le voci environment senza aprire un file di impostazioni, esegui /permissions e seleziona la scheda Auto mode. La scheda richiede Claude Code v2.1.246 o successivo e appare solo quando la modalità auto è disponibile per la tua sessione.
Claude Code mostra le voci dalle impostazioni gestite o dal flag --settings come di sola lettura e salva ogni modifica che fai sulla scheda in ~/.claude/settings.json.
Instradare tutti i comandi shell attraverso il classificatore
Per impostazione predefinita, le regole di autorizzazione Bash e PowerShell strette comeBash(npm test) rimangono in vigore in modalità auto. Claude Code le risolve prima che il classificatore venga eseguito, a meno che il comando non contenga domini consentiti per comando. Claude Code sospende solo le regole ampie che concedono l’esecuzione di codice arbitrario, come Bash(*) o interpreti con caratteri jolly, insieme a ogni regola che nomina Monitor, perché i comandi Monitor vengono eseguiti attraverso la shell. Ciò significa che una regola stretta può comunque far passare un argomento distruttivo senza che il classificatore lo veda, ad esempio un percorso di script o un flag che il prefisso della regola non ha anticipato.
Imposta autoMode.classifyAllShell su true per sospendere ogni regola di autorizzazione Bash e PowerShell mentre la modalità auto è attiva, in modo che il classificatore valuti ogni comando shell indipendentemente dal tuo elenco di autorizzazioni, ad eccezione delle rimozioni di percorsi critici.
Ispezionare i valori predefiniti e la tua configurazione effettiva
I sottocomandiclaude auto-mode ti aiutano a ispezionare, convalidare e ripristinare la tua configurazione.
Stampa le regole environment, allow, soft_deny e hard_deny incorporate come JSON:
jq, passa --label con l’inizio dell’etichetta della regola, come claude auto-mode defaults --label 'Git Destructive'. La corrispondenza è un prefisso senza distinzione tra maiuscole e minuscole sull’etichetta di ogni regola e le sezioni senza corrispondenza vengono stampate come elenchi vuoti.
Stampa ciò che il classificatore effettivamente utilizza come JSON, con le tue impostazioni applicate dove impostate e valori predefiniti altrimenti:
defaults che config stampano i quattro elenchi di regole come un singolo oggetto JSON, con ogni regola come una stringa in prosa. Questo è un esempio troncato:
allow, soft_deny, hard_deny e environment personalizzate:
claude auto-mode critique le esamina e contrassegna le voci che sono ambigue, ridondanti o probabilmente causeranno falsi positivi.
Per scartare le tue personalizzazioni e tornare ai valori predefiniti incorporati, esegui il sottocomando reset, che rimuove la sezione autoMode dal tuo file di impostazioni utente:
Reset auto mode configuration to defaults? prima di scrivere; passa --yes per saltare la conferma. Reset modifica solo ~/.claude/settings.json: le regole autoMode dalle impostazioni gestite o dal flag --settings si applicano comunque.
Esaminare i rifiuti
Per esaminare e riprovare le azioni che il classificatore della modalità auto ha negato, apri/permissions e seleziona la scheda Recently denied, dove Claude Code registra ogni rifiuto. Premi r su un’azione negata per contrassegnarla per il retry: quando esci dalla finestra di dialogo, Claude Code invia un messaggio dicendo al modello che può riprovare quella chiamata di strumento e riprende la conversazione.
Quando il classificatore produce nessun verdetto sull’azione, perché un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso o la sua risposta non è stata analizzata, Claude Code nega l’azione senza registrarla sotto Recently denied. La voce di errore collegata copre ciò che Claude viene detto e come eseguire l’azione se ne hai bisogno.
Correggere un rifiuto con una regola di autorizzazione, una voce di ambiente o un retry
Per vedere cosa ha bloccato il classificatore, trova la chiamata di strumento nella conversazione. Se la chiamata appare accorciata o ripiegata in una riga di riepilogo comeRan 3 shell commands, premi Ctrl+O per aprire il transcript viewer, che l’espande.
Due altri posti sullo schermo che segnalano i rifiuti omettono il comando o l’URL: l’avviso vicino alla casella di input, come bash denied by auto mode · [Data Exfiltration] · /permissions, fornisce lo strumento e il motivo, e la scheda Recently denied elenca un comando shell dalla descrizione che Claude ha scritto per esso. Per acquisire l’input esatto di questi rifiuti a livello di programmazione, aggiungi un hook PermissionDenied, che lo riceve come tool_input.
Il testo sotto la chiamata ti dice se c’è qualcosa da correggere. Una riga attenuata Not run · auto mode's check had no usable answer, o un testo che segnala un problema con il classificatore stesso, come Auto mode could not evaluate this action, significa che Claude Code ha bloccato la chiamata senza un verdetto dal classificatore. Per una riga Not run, premi Ctrl+O per leggere il messaggio completo, quindi vedi Auto mode cannot determine the safety of an action o The server returned no safety verdict per sapere cosa fare.
Altrimenti, una riga che legge Denied by auto mode classifier con un motivo come [Production Deploy] o Blocked by classifier significa che il classificatore ha giudicato la chiamata non sicura, quindi scegli la correzione da ciò che la chiamata stava cercando di raggiungere o fare:
- Una destinazione che Claude ha bisogno durante l’intero compito, come un registro di pacchetti, un dominio interno o un host di repository: aggiungilo a
autoMode.environment. - Un comando che desideri eseguire senza revisione da ora in poi: aggiungi una regola
allow. - Un’azione una tantum che intendevi: dichiara quell’intento nel tuo prossimo messaggio e lascia che Claude riprovi.
allow dalla scheda Auto mode della finestra di dialogo /permissions.
Il testo tra parentesi quadre, come [Data Exfiltration], è il nome della regola che il classificatore ha abbinato. Per leggere la formulazione completa di quella regola, vedi Ispezionare i valori predefiniti e la configurazione effettiva.
Correggere i rifiuti ripetuti
I rifiuti ripetuti per la stessa destinazione di solito significano che il classificatore manca di contesto. Aggiungi quella destinazione aautoMode.environment, o esegui /auto-mode-setup per fare in modo che Claude Code rediga le voci, quindi esegui claude auto-mode config per confermare che il cambiamento ha avuto effetto.
Vedi anche
- Permission modes: cos’è la modalità auto, cosa blocca per impostazione predefinita e quali sessioni iniziano in essa
- Managed settings: distribuisci la configurazione
autoModein tutta la tua organizzazione - Permissions: regole di autorizzazione, richiesta e negazione che si applicano prima dell’esecuzione del classificatore
- All settings: ogni chiave di impostazioni, inclusa
autoMode