Programma
Immagina di essere in treno. Il tuo portatile a casa sta macinando un refactoring da 30 minuti. Il telefono vibra: Telegram mostra un riepilogo dal tuo bot Claude Code. I test passano, ecco cosa è cambiato, ecco cosa si è rotto. Scrivi la prossima istruzione, blocchi il telefono e continui a leggere.
Due funzionalità di Claude Code rendono possibile questo loop. Auto Mode elimina le richieste di approvazione che altrimenti bloccherebbero la sessione. I Canali inoltrano i messaggi da Telegram, Discord o iMessage nella sessione live come se li avessi digitati tu.
Questo tutorial ti guida a configurare entrambe le cose da zero ed eseguire un loop scrittura-test-debug dal telefono.
Se sei nuovo ai LLM di Anthropic, ti consiglio di seguire prima il corso Introduction to Claude Models.
Prerequisiti
Per seguire questo tutorial, ti serviranno:
- Claude Code v2.1.83 o successiva (Auto Mode richiede v2.1.83, i Canali richiedono v2.1.80)
- Runtime Bun installato (ogni plugin Canali lo richiede; Node e Deno non funzionano)
- Un piano Claude di livello Max, Team o Enterprise, oppure accesso API. Auto Mode non è disponibile su Pro e nessun add-on lo abilita (e non è disponibile nemmeno come extra-usage)
- Un account Telegram sul tuo telefono
- Python 3.10 o successivo sulla macchina host
- Una macchina che possa restare attiva mentre sei via (portatile con coperchio aperto, desktop acceso o un server)
Cos’è l’Auto Mode di Claude Code (e perché abbinarlo ai Canali)?
Claude Code chiede conferma prima di fare qualsiasi cosa che esca dal progetto. I dati interni di Anthropic indicano che gli utenti approvano comunque il 93% di quei prompt. A quel ritmo, i prompt aggiungono attrito senza aggiungere sicurezza.
Auto Mode sostituisce quel pattern con un classificatore. Ogni chiamata a uno strumento viene inviata a un modello Claude separato (Sonnet 4.6) che rivede l’azione e la consente o la blocca. Le esecuzioni lunghe e non presidiate smettono di interrompersi per l’approvazione ogni trenta secondi.
Il classificatore gira su un modello diverso da quello che scrive il codice. Un modello principale compromesso o fuorviato non può ingannarlo per far passare una chiamata rischiosa. Una sonda separata analizza gli output degli strumenti (contenuti dei file, fetch web, stdout della shell) alla ricerca di tentativi di prompt injection prima che raggiungano il contesto di Claude.

Non tutte le chiamate passano dal classificatore. Letture, ricerche testuali, navigazione del codice ed edit dei file dentro la directory del progetto seguono una fast path senza revisione. I comandi di shell, i fetch web, qualsiasi cosa tocchi file fuori dal progetto e qualsiasi spawn di subagent passano al classificatore.

Anthropic ha pubblicato i numeri nell’annuncio dell’Auto Mode. Su 10.000 chiamate reali agli strumenti, la pipeline ha prodotto lo 0,4% di falsi positivi. Su 52 azioni eccessivamente zelanti curate, il tasso di falsi negativi è stato del 17%. Sostituire --dangerously-skip-permissions con Auto Mode è chiaramente un vantaggio. Sostituire una revisione umana attenta no: il classificatore ne manca una su sei.
Quando il classificatore blocca una chiamata, Claude riceve il rifiuto come risultato dello strumento. Ci si aspetta che Claude trovi un percorso più sicuro, non che aggiri il blocco. Dopo tre blocchi consecutivi o venti in totale, Auto Mode restituisce il controllo a te. Le esecuzioni headless claude -p invece terminano.
Auto Mode vs bypassPermissions
Ho iniziato a usare Auto Mode aspettandomi un bypassPermissions più intelligente. Il mio problema con bypass era che permetteva tutto: leggere file .env, modificare configurazioni, e così via.
Auto Mode corregge questo. Le operazioni su file sensibili e le rimozioni esplicite vengono negate per impostazione predefinita. L’override è nominare il file nel prompt, cosa che consente al classificatore di permettere la modifica. Meglio di bypass, che non aveva alcun controllo del genere.
Quello che mi ha sorpreso di Auto Mode è che è una modalità decisionale, non solo una modalità di permessi. Prima eseguivo in successione una catena di skill di Claude Code, una pipeline per implementare o fare debug di una feature. Con bypassPermissions, Claude si fermava tra una fase e l’altra e chiedeva il permesso di procedere.
Quel pattern mi piaceva: la pausa era il momento in cui rivedevo il lavoro o dicevo a Claude di andare avanti. In Auto Mode, Claude decide autonomamente se ha abbastanza contesto per passare alla fase successiva. I checkpoint di revisione su cui facevo affidamento spariscono. O accoglierai di buon grado le esecuzioni più rapide o sentirai la mancanza delle pause con l’umano nel loop.
L’altra sorpresa è andata nella direzione opposta. Con bypassPermissions, se chiedevo a Claude di modificare la sua stessa config o le skill, rifiutava. Bypass o no, me lo chiedeva comunque. In Auto Mode, Claude ha più libertà lì: i file delle skill, le impostazioni .claude/ e la sua configurazione sono modificabili senza chiedere. Utile per skill auto-mantenute, ma un rischio se ti aspetti che Claude non tocchi la propria config.
Auto Mode vs altre modalità di permesso
Claude Code include quattro modalità, distribuite su uno spettro tra “approva tutto” e “non approvare nulla”. La tabella sotto è la versione breve. Puoi leggere la documentazione ufficiale per la versione lunga.
|
Modalità |
Cosa viene eseguito senza chiedere |
Ideale per |
Profilo di rischio |
|
|
Solo letture |
Lavori sensibili, revisione di ogni azione |
Il più basso. Ogni scrittura, shell e chiamata di rete chiede conferma |
|
|
Letture, modifiche ai file, comandi filesystem comuni (mkdir, mv, cp) |
Iterare sul codice che rivedi a posteriori |
Basso. Shell e rete chiedono ancora conferma |
|
Solo letture; Claude propone un piano ma non esegue nulla |
Esplorare un codebase, rivedere le modifiche proposte prima di qualsiasi scrittura |
Il più basso. Nulla viene eseguito senza cambiare modalità |
|
|
|
Tutto, con controlli del classificatore in background |
Task lunghi, lavoro asincrono e remoto, riduzione della fatica da prompt |
Moderato. 0,4% falsi positivi, 17% falsi negativi su azioni troppo zelanti |
|
|
Solo strumenti esplicitamente pre-approvati via permissions.allow; tutto il resto è negato automaticamente |
Pipeline CI bloccate e script automatizzati in cui il set di strumenti consentiti è noto in anticipo |
Basso, ma allowlist mal configurate possono bloccare in silenzio operazioni legittime |
|
|
Tutto tranne i percorsi protetti |
Solo container e VM isolate |
Il più alto. Nessun classificatore, nessuna rete di sicurezza |
La mia raccomandazione: usa default per repository sensibili in cui ogni scrittura richiede una seconda occhiata, auto per i tuoi progetti, e bypassPermissions solo dentro un container usa e getta dove il raggio d’azione è contenuto.
Come si inseriscono i canali nel quadro
I canali di Claude Code sono server MCP che inviano eventi nella tua sessione in esecuzione. Useremo il plugin Telegram, e i plugin Discord e iMessage funzionano allo stesso modo. Invi un DM al bot, il plugin inoltra il messaggio nella sessione e Claude lavora sui tuoi file locali. Una risposta torna tramite il bot a fine turno.
Claude ti scrive solo alla fine del turno. Non c’è streaming a metà turno, nessuna anteprima live di ciò che Claude sta facendo sull’host. Qualsiasi cosa Claude esegua durante un turno, la esegue. Lo scopri quando arriva il riepilogo. Ecco perché la modalità di permessi conta più su un canale che al terminale.
I canali possono inoltrare i prompt di permesso al telefono in modalità default o acceptEdits. Rispondi yes o no da Telegram. Per pochi prompt va bene. Una vera sessione build-test-debug ne invia decine, e toccare ognuno stanca in fretta.
L’altro estremo è peggio. --dangerously-skip-permissions rimuove i prompt, ma su un canale perdi la vista live delle chiamate degli strumenti del terminale. Nulla ti avvisa che è stato eseguito un comando rischioso. Al terminale, bypass almeno ti permette di guardare lo stream e premere Esc. Su Telegram, scrivi un prompt e scopri cosa è successo alla fine del turno.
Auto Mode sta tra i due. Niente spam di prompt. Il classificatore blocca da solo le mosse chiaramente pericolose. Il messaggio di fine turno ti dà un resoconto verificabile di ciò che è stato eseguito. Per il lavoro remoto, è il compromesso che funziona.
Il progetto demo
Ho creato una piccola demo chiamata libcache. È una CLI Python che recupera metadati di libri dall’API OpenLibrary e mette in cache le risposte in ~/.cache/libcache/.
Lo stack è volutamente noioso: uv gestisce le dipendenze, typer si occupa della CLI, httpx fa le chiamate HTTP e pytest esegue i test.
Tre cose di libcache contano.
-
È multi-file, quindi un build da zero in modalità
defaultimpilerebbe una dozzina di prompt di permesso. -
Ha un confine HTTP, dando al classificatore una vera decisione da prendere.
-
Finisce abbastanza in fretta che l’intero scaffold rientra in un solo turno Telegram.
Configurare Auto Mode e i Canali Telegram
Tre cose in ordine: macchina host sveglia, plugin associato, Auto Mode attivo. Se una delle tre fallisce, il resto non funziona.
Preparare la macchina host
Claude Code è un processo locale. Quando la macchina va in stop, il processo smette di ricevere eventi. Il plugin Telegram non ha dove consegnare i tuoi messaggi. Gli eventi arrivano solo mentre la sessione è aperta.
Su macOS, apri un terminale separato ed esegui:
caffeinate -d
Il flag -d impedisce lo standby del display. Gli host Linux possono invece mascherare i target di sleep:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Si può tornare indietro con unmask.
Per qualcosa di più lungo di un pomeriggio, esegui la sessione dentro tmux. Mantiene viva la tua shell tra finestre chiuse e connessioni SSH cadute. Avvia una nuova sessione:
tmux new -s claude
Avvia Claude al suo interno, scollega con Ctrl+B poi D, e riaggancia più tardi:
tmux attach -t claude
Ancora una cosa prima di lanciare. Qualsiasi tool CLI che Claude potrebbe chiamare da Telegram deve essere già autenticato sull’host. Login interattivi o autenticazioni non possono essere eseguiti dal telefono. Controlla gh, la CLI GitHub che useremo oggi:
gh auth status
Se non è autenticata, esegui gh auth login e completa il flusso da browser. Fai lo stesso per ogni altra CLI a cui vuoi che Claude acceda (aws, gcloud, docker, registry dei pacchetti) per i tuoi altri progetti.
Installare e configurare il plugin Telegram
Installa Bun se non l’hai già fatto. Su macOS o Linux:
curl -fsSL https://bun.sh/install | bash
Su Windows:
powershell -c "irm bun.sh/install.ps1 | iex"
Conferma l’installazione:
bun --version
Poi crea il bot Telegram.
Apri BotFather in Telegram, invia /newbot, scegli un display name e un username che finisca con bot (qualcosa come libcache_dev_bot). Copia il token che ti restituisce BotFather.

Tornato in una sessione Claude Code, installa il plugin:
/plugin install telegram@claude-plugins-official
Se Claude Code dice che il marketplace non lo ha, aggiungilo a mano e riprova:
/plugin marketplace add anthropics/claude-plugins-official
Dopo l’installazione, ricarica i plugin così compaiono gli strumenti Telegram:
/reload-plugins
Configura il bot con il token di BotFather:
/telegram:configure <your_bot_token_here>
Il token viene scritto in ~/.claude/channels/telegram/.env.

Dopo /telegram:configure, esci completamente da Claude Code (premi Ctrl+D o inserisci /exit) e rilancia. /reload-plugins non è affidabile per far apparire il codice di pairing al primo DM.
Rilancia la sessione, apri il bot su Telegram e invia /start. Il bot risponde con un codice di pairing a 6 caratteri.

Torna in Claude Code e associa con il codice:
/telegram:access pair <code>
Il pairing è simmetrico. Entrambe le parti devono concordare prima che la sessione accetti i messaggi.

Ultimo passo. Limita il bot al solo tuo account:
/telegram:access policy allowlist
Chiunque non sia nella allowlist e invii un DM al bot viene scartato in silenzio, senza emissione di codice di pairing.

Avvio con Auto Mode e Canali attivi
Dalla directory del progetto, avvia Claude con entrambe le flag:
claude --channels plugin:telegram@claude-plugins-official --permission-mode auto
Una sessione esistente può passare ad Auto Mode a caldo: premi Shift+Tab ripetutamente finché la barra di stato mostra auto. Per rendere Auto Mode la modalità predefinita a ogni avvio, aggiungi questo a ~/.claude/settings.json:
{ "permissions": { "defaultMode": "auto" } }

All’ingresso in Auto Mode, Claude Code rimuove le regole di allow ampie da settings.json. Bash(*), interpreti wildcard come Bash(python*) e allow complessivi su Agent vengono rimossi all’ingresso e ripristinati all’uscita. Regole strette come Bash(pytest) restano invariate.
Verifica la configurazione. Manda un DM qualsiasi al bot e attendi la risposta. Poi chiedi a Claude di scrivere un piccolo file nel progetto e guarda che venga creato senza prompt. Se entrambe le cose funzionano, l’installazione è pronta.
Auto Mode e Canali di Claude Code in azione
Vediamo come avviarlo da Telegram nella pratica.
Un prompt, molte chiamate agli strumenti, zero approvazioni
Invia un prompt iniziale da Telegram. Conta il tipo di task: uno che in modalità default genererebbe una dozzina di prompt di approvazione. Per libcache, il prompt era più o meno:
Create a Python CLI that fetches book metadata from OpenLibrary and caches it to disk, use uv for deps, typer for the CLI, httpx for requests, pytest for tests, scaffold the directory and add a README, and when you're done, summarize what you built in under 80 words.
La coda “riassumi in meno di 80 parole” è una piccola abitudine specifica dei canali. Le risposte di fine turno arrivano sul telefono, e il telefono è un posto scomodo per leggere output lunghi.
Il plugin invia il messaggio dal telefono nella sessione in esecuzione sull’host. Arriva come banner ← telegram · <sender>: ... nel terminale.

Le scritture di file nel progetto seguono la fast path e saltano del tutto il classificatore. Le installazioni di dipendenze, il primo giro di pytest e il git init finale passano dal classificatore e sono consentiti per impostazione predefinita. Nulla si ferma e il turno va dall’inizio alla fine in un passaggio.

Sul telefono, il riepilogo è l’unico segnale di ritorno durante il turno.

Scrivere prompt lunghi su un telefono è scomodo. Il dettato vocale copre il grosso, e prompt concisi e dichiarativi funzionano bene. “Scaffolda libcache, OpenLibrary + cache su disco, meno di 80 parole” basta.
Il ciclo di iterazione: chiedi, lavora, rispondi, ripeti
Ogni follow-up esegue lo stesso loop. Un messaggio da Telegram, un turno di lavoro, un riepilogo indietro. Il riepilogo è il resoconto di Claude, non lo stato reale. Chiedi a Claude di eseguire i test e incollare l’output letterale:
uv run pytest -v
Chiedigli di fare cat di un file specifico. Chiedi le dimensioni dei file o il numero di righe, o uno storico recente dei commit:
git log --oneline
Auto Mode esegue le chiamate di verifica sulle stesse fast path del resto. Il costo di chiedere è basso. Il risultato è un’affermazione che puoi verificare dalla schermata di blocco senza andare al portatile.

Un altro turno per dimostrare che il loop raggiunge sistemi esterni reali. Dal telefono:
push libcache to a new public GitHub repo called libcache, clean commit, decent message, send me the URL when it's up.
Claude usa la CLI gh autenticata in precedenza e risponde con l’URL del repository.

Quando Auto Mode funziona, il loop sembra silenzioso. La sezione successiva mostra cosa succede quando non funziona.
Quando Auto Mode ti frena
Auto Mode ti interrompe in due modi.
Il classificatore blocca duramente un piccolo set di pattern:
-
Pipe
curl | bash -
Force-push sul branch
main -
Cancellazioni massive su storage cloud.
In modo più soft e frequente, è Claude stesso a fermarsi sulle azioni riconosciute come irreversibili. Entrambi compaiono allo stesso modo sul telefono: nessun banner rosso, nessun modal, solo testo normale. Claude nomina l’azione, elenca i comandi e chiede una specifica frase di conferma prima di continuare.
Una richiesta distruttiva come “elimina il progetto, rimuovi anche il repo GitHub” attiva la pausa per irreversibilità. La risposta esplicita i comandi e offre alternative più sicure: archiviazione, solo locale o solo remoto. Attende una frase scelta da Claude, non un sì/no.

Lo stesso screenshot mostra un comportamento di secondo ordine. A metà eliminazione, Claude ha incontrato uno scope mancante sulla CLI gh (il token non aveva delete_repo). Invece di finire a metà, Claude si è fermato e mi ha chiesto di eseguire un comando interattivo al terminale:
gh auth refresh -h github.com -s delete_repo
Auto Mode non può gestire flussi di autenticazione via browser, e Claude non ha provato ad aggirare lo scope mancante.
La cronologia della sessione non è consenso implicito. Anche per un repo creato da Claude stesso quindici minuti prima nella stessa sessione, la pausa scatta comunque in fase di eliminazione. Vale lo stesso limite di 3 consecutivi / 20 totali. Interruzioni accumulate alla fine restituiscono il controllo all’umano.
Due bug noti da tenere d’occhio. A volte i messaggi non vengono recapitati quando Claude Code è inattivo al prompt della REPL (issue #48404). Dopo una risposta, il plugin a volte smette di inoltrare nuovi messaggi finché non viene “stimolato” (issue #36477). I workaround sono mantenere un turno in corso o riavviare la sessione. Non ci sono ancora fix.
Regolare le regole di sicurezza dell’Auto Mode
Per la maggior parte del lavoro sul tuo codebase, i default di Auto Mode bastano. Quando vuoi irrigidire percorsi specifici o allentarne altri, inizia leggendo cosa ha impostato Anthropic per te:
claude auto-mode defaults
Questo stampa le regole di block e allow integrate in JSON. La struttura è pensata per essere estesa, non sostituita: modifica la baseline, non partire da zero. Ogni regola rimossa costringe il classificatore a decidere, e ogni decisione è un’opportunità per un falso negativo.

Aggiungi regole specifiche di progetto in settings.json alla chiave permissions. Le allow strette passano in Auto Mode invariate. Quelle ampie vengono rimosse all’ingresso. Una regola come Bash(pytest) o Bash(gh pr create *) è abbastanza specifica perché il classificatore si fidi del tuo giudizio. In pratica: una allow stretta per ogni tool che il progetto esegue davvero, niente wildcard.
Se il tuo workflow si basava sui prompt di permesso come gate di revisione tra le fasi della pipeline, riporta esplicitamente quei checkpoint. Aggiungi regole ask per i pattern di strumenti o i percorsi su cui vuoi che Claude si fermi. Oppure sposta quel workflow su acceptEdits invece di auto per mantenere il checkpoint di prompt su tutto tranne gli edit ai file nel progetto.
Una funzionalità poco usata: il classificatore tratta i confini dichiarati nella conversazione come segnali di block. Dì a Claude, “non fare push finché non rivedo”, e blocca le azioni corrispondenti anche quando le regole di default le consentirebbero. Una semplice alternativa a scrivere una regola formale per una singola sessione.
Per vedere la config effettiva dopo il merge del tuo settings.json con i default:
claude auto-mode config
Gli admin Enterprise possono disattivare la funzionalità a livello di organizzazione tramite permissions.disableAutoMode: 'disable' nelle impostazioni gestite.
Conclusione
Auto Mode più Canali trasforma Claude Code da uno strumento da scrivania a un partner asincrono che puoi guidare ovunque. Il classificatore decide quali chiamate agli strumenti passano. Claude decide quando un’azione è abbastanza seria da mettere in pausa. Tu decidi i prompt, l’ambito e le regole. Il terminale è uno dei posti da cui puoi lavorare, non l’unico.
Per approfondire, ti consiglio le nostre guide su Claude Code Remote Control, Claude Code Plugins e Claude Code Best Practices.
Claude Code Auto Mode e Canali: FAQ
Cos’è l’Auto Mode di Claude Code?
Auto Mode è una modalità di permessi in Claude Code (v2.1.83+) in cui un modello classificatore separato (Sonnet 4.6) rivede ogni chiamata agli strumenti e la consente o la blocca, così le sessioni lunghe e non presidiate non si fermano sui prompt di approvazione.
In cosa Auto Mode è diversa da --dangerously-skip-permissions?
La modalità bypass rimuove tutti i controlli, quindi letture di file .env, modifiche di config e comandi distruttivi passano tutti. Auto Mode mantiene un classificatore davanti a ogni chiamata rilevante, nega per default le operazioni su file sensibili e restituisce a te il controllo quando blocca troppe chiamate di fila.
Cosa sono i Canali di Claude Code?
I Canali sono plugin basati su MCP che inoltrano i messaggi da Telegram, Discord o iMessage nella tua sessione Claude Code in esecuzione. Mandi un DM al bot, il plugin passa il messaggio all’host e Claude risponde a fine turno nella stessa chat.
Quali piani di claude.ai supportano l’Auto Mode?
Auto Mode è disponibile sui livelli Max, Team ed Enterprise di claude.ai, o via API. Non è disponibile su Pro e nessun add-on o pacchetto extra-usage lo sblocca.
L’Auto Mode è sicuro da usare su qualsiasi progetto?
È abbastanza sicuro per i tuoi progetti, ma non sostituisce la revisione umana. Anthropic riporta lo 0,4% di falsi positivi e il 17% di falsi negativi su azioni troppo zelanti, quindi una su sei mosse rischiose può passare. Per repo sensibili, resta in modalità default.

Sono un creator di contenuti sulla data science con oltre 2 anni di esperienza e uno dei profili con più seguito su Medium. Mi piace scrivere articoli dettagliati su AI e ML con un pizzico di sarcasmo, perché qualcosa bisogna pur fare per renderli un po' meno noiosi. Ho pubblicato più di 130 articoli e anche un corso su DataCamp, con un altro in arrivo. I miei contenuti sono stati visti da oltre 5 milioni di occhi, e 20.000 di loro sono diventati follower sia su Medium che su LinkedIn.