Vai al contenuto
Giallo

Notifiche Claude Code: hook locali e permessi

Ricevi notifiche locali quando Claude Code richiede attenzione. Eventi, filtri e permessi su macOS, Windows e Linux, senza invii a servizi esterni.

Tempo di lettura: 11 min

notifiche Claude Code: evento, controllo e risultato nel workflow di sviluppo

Le notifiche Claude Code possono avvisare sul computer quando la sessione richiede un permesso o attenzione. Un hook Notification richiama un comando locale del sistema operativo; il matcher può restringerlo al tipo di avviso desiderato. Non serve trasmettere prompt o codice a una chat esterna per sapere che devi tornare al terminale. Guida ufficiale alle notifiche.

La scelta decisiva è il significato dell’avviso. “Serve un permesso” e “Claude ha terminato una risposta” non significano “il progetto è pronto per la produzione”. Un segnale utile indica quale attenzione è necessaria e lascia alla sessione la spiegazione completa. Per orientarti fra i meccanismi disponibili trovi la guida ai Claude Code Hooks.

Questa pagina usa fonti verificate il 9 ottobre 2026. I comandi sono esempi didattici, non eseguiti in questa guida. La consegna effettiva di una notifica dipende dal sistema operativo, dalla sessione desktop e dai permessi del processo che la mostra.

In sintesi

  • Notification può essere filtrato per tipo di avviso.
  • Il comando nativo deve funzionare prima della registrazione del hook.
  • Il testo fisso evita di esporre contenuti del progetto sul desktop.
  • Un ambiente remoto può non avere accesso alle notifiche della macchina personale.
  • Un avviso di fine risposta non è una certificazione della consegna.

Quale momento deve produrre l’avviso?

Inizia con un bisogno osservabile: torni al computer quando Claude Code attende un permesso, oppure quando la sessione rimane in attesa di input. Notification ha tipi documentati, fra cui permission_prompt e idle_prompt. Il matcher seleziona il tipo, invece del nome di un tool. Il contratto e il momento di ciascuna notifica vanno letti nella reference della versione corrente. Notification.

Se vuoi segnalare ogni risposta conclusa, Stop è un evento diverso. Può produrre molti avvisi quando il compito richiede turni brevi. In un flusso delegato esistono anche momenti relativi agli agenti; prima di usare un matcher generico conviene sapere quale attività dovrebbe richiamare l’utente.

Un avviso ben scelto evita due errori opposti: rumore a ogni piccola azione e silenzio quando è richiesta una decisione. La frequenza adatta si valuta usando il workflow, senza inventare una percentuale di produttività. Se dopo una prova arrivano segnali duplicati, controlla anche le impostazioni native del client e gli altri hook registrati.

Come provare una notifica su macOS?

Su macOS un esempio locale usa osascript. Prova prima il comando nel terminale, con un testo fisso che non contenga informazioni del cliente. Lo snippet seguente è un adattamento didattico non eseguito; usa la funzione di notifica di AppleScript richiamata anche nella guida Claude Code. Quickstart ufficiale.

osascript -e 'display notification "Serve una decisione nella sessione" with title "Claude Code"'

Se l’avviso non appare, il problema può precedere qualsiasi hook: notifiche disabilitate per l’applicazione coinvolta, modalità concentrazione, differenze fra terminale e applicazione desktop. Controlla le impostazioni del sistema per il programma che effettivamente esegue il comando. Una prova dal terminale e una prova da un altro client possono usare un contesto diverso.

Evita di aggiungere il prompt all’AppleScript con concatenazioni shell. Oltre al rischio di quoting, il testo può diventare visibile in un banner mentre condividi lo schermo. Un titolo stabile e una frase neutra sono normalmente sufficienti. La sessione conserva il dettaglio e il motivo della richiesta, che puoi leggere al ritorno.

Quale comando usare in una sessione Linux desktop?

La guida mostra l’uso di notify-send per Linux. Il programma deve essere disponibile e il processo deve raggiungere il servizio di notifiche dell’ambiente grafico. Non è una proprietà garantita di ogni sistema che esegue Linux: server senza desktop, terminali remoti e container possono avere un contesto diverso. Comandi per piattaforma.

notify-send 'Claude Code' 'Serve una decisione nella sessione'

La prova va fatta nell’ambiente che lancerà il hook. Se esegui Claude Code attraverso un terminale remoto, il comando può girare sul server anziché sul computer dove vuoi ricevere il banner. Non risolvere il problema copiando variabili di sessione indiscriminatamente: potresti creare un collegamento fragile o esporre valori non necessari.

Per un uso personale, una configurazione locale alla macchina evita che il collega con un altro desktop erediti un comando inesistente. Per un team, documenta i prerequisiti e lascia il comando nativo nello scope appropriato. Il progetto può condividere il significato dell’avviso senza imporre a tutti lo stesso eseguibile di sistema.

Come mostrare un avviso locale in Windows?

Windows richiede un comando o uno script adatto alla sessione e ai suoi permessi. Il seguente esempio PowerShell usa una notifica tramite System.Windows.Forms.NotifyIcon in una sessione desktop interattiva. È una proposta didattica non testata, non un requisito di Claude Code e non una garanzia di compatibilità con ogni ambiente Windows.

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$notice = New-Object System.Windows.Forms.NotifyIcon
$notice.Icon = [System.Drawing.SystemIcons]::Information
$notice.Visible = $true
$notice.BalloonTipTitle = 'Claude Code'
$notice.BalloonTipText = 'Serve una decisione nella sessione'
$notice.ShowBalloonTip(3000)
Start-Sleep -Seconds 4
$notice.Dispose()

Salvalo in un file locale come notify-claude.ps1, poi prova a lanciarlo direttamente con PowerShell. La durata presente nel codice è una scelta dell’esempio per permettere al processo di mantenere l’icona mentre mostra l’avviso; non rappresenta una misura di prestazioni. Il test va eseguito sul computer del lettore.

La registrazione del hook deve richiamare il percorso corretto del file con argomenti separati e quoting adatto. Non suggerire di cambiare globalmente la policy di esecuzione per far partire una notifica. Se il sistema aziendale impedisce uno script locale, usa il percorso autorizzato dall’amministrazione e documenta il limite. La guida ufficiale include un’alternativa PowerShell da confrontare con la configurazione effettiva. Notifiche su Windows.

Dove registrare una notifica personale?

Una notifica del computer appartiene spesso ai settings utente o locali: eseguibile, permessi e desktop dipendono dalla macchina. Le regole condivise del repository possono invece descrivere i momenti che richiedono attenzione. Le diverse fonti dei settings e la loro precedenza sono documentate da Anthropic. Settings.

Questo esempio macOS registra un avviso soltanto per permission_prompt. È un blocco da integrare nei settings esistenti, non un file da copiare sopra una configurazione già ricca. Non è stato eseguito in questa guida.

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Serve una decisione nella sessione\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Per Linux cambia l’handler con il comando già provato. Per Windows richiama lo script PowerShell locale. Non mescolare tre comandi di piattaforme diverse nella medesima lista presumendo che Claude Code scelga quello giusto: handler corrispondenti possono essere chiamati insieme. La scelta dell’ambiente deve essere esplicita.

Come verificare evento, consegna e contenuto?

La prova ha tre parti. Prima verifica il comando nativo; poi controlla la registrazione in /hooks; infine provoca una richiesta di permesso in un repository di prova con dati sintetici. Annota se l’evento è arrivato allo script, se il sistema ha accettato la notifica e se il banner è stato visibile. Questi passaggi possono fallire separatamente.

Sintomo Primo controllo Che cosa può dimostrare
Nessun banner anche fuori da Claude Code Comando e permessi del desktop Problema nel livello del sistema
Comando diretto funziona, hook assente Configurazione caricata e /hooks Problema di registrazione
Hook presente, nessuna chiamata Evento e matcher Filtro o momento non corrispondente
Chiamata riuscita, banner nascosto Modalità concentrazione e impostazioni Consegna diversa dalla visibilità
Più banner per la stessa attesa Altri hook e notifiche native Duplicazione del percorso

Non dichiarare funzionante un hook soltanto perché il comando restituisce un exit code positivo: questo prova un aspetto tecnico, mentre la richiesta è ricevere un avviso percepibile sul computer corretto. Per indagare uno specifico anello del percorso consulta debug dei Hooks.

Perché evitare prompt e percorsi nel banner?

Il desktop è un luogo visibile: condivisione dello schermo, registrazioni, colleghi accanto e notifiche sulla schermata bloccata possono rendere il testo accessibile oltre la sessione. Non inserire informazioni che non servono a decidere se tornare al terminale. “Claude Code richiede attenzione” è sufficiente; il nome completo di un cliente o il testo di un documento non lo è.

Questo criterio riduce anche i problemi di quoting. Un messaggio costruito da dati arbitrari deve gestire virgolette, newline e caratteri speciali. Un testo fisso evita di trasformare l’input del hook in codice per AppleScript, shell o PowerShell. Se occorre distinguere progetti, usa un’etichetta locale non sensibile e definita dal team.

La gestione dell’informazione è parte del lavoro su AI e sicurezza dei dati. La notifica non deve diventare una copia parallela del transcript. Per lo stesso motivo qui non sono proposti webhook Slack, email o altri invii automatici: la necessità descritta si risolve sul computer.

Un avviso può certificare test e fine progetto?

No. Stop indica una risposta terminata, mentre Notification segnala uno dei tipi previsti dal prodotto. Un suono o un banner non certificano che una build sia riuscita o che una revisione sia stata effettuata. La consegna deve citare gli esiti pertinenti, conclusi e riferiti allo stato corrente dei file.

Se vuoi ricevere feedback su formatter e suite, definisci prima il controllo con PostToolUse per formatter e test. Se vuoi imporre una condizione prima della conclusione della risposta, progetta uno Stop hook senza loop. Collegare l’avviso a un evento non corregge una condizione di completamento vaga.

In un team, anche la fine di un subagent e la fine di un task sono momenti distinti. Hooks per subagent e team spiega dove agganciare le prove. Un messaggio “agente terminato” può essere utile al coordinamento, purché non venga automaticamente tradotto in “l’intero lavoro è validato”.

Due situazioni italiane in cui serve attenzione

Esempio ipotetico, non testato: una sviluppatrice a Torino mantiene il sito di una piccola azienda manifatturiera. Mentre Claude Code prepara una modifica in un checkout di prova, passa a leggere la specifica. Una notifica su permission_prompt le segnala che è richiesta una decisione. Il banner non include il nome del cliente o il comando proposto; la sviluppatrice legge il dettaglio nella sessione prima di decidere.

Esempio ipotetico, non testato: un consulente a Firenze utilizza un portatile Linux con desktop grafico e un server remoto di test. Il comando notify-send funziona sul portatile, ma non sulla sessione remota. La prova chiarisce che il hook gira sul server. Il consulente sceglie un percorso locale per il lavoro che richiede avvisi desktop oppure documenta l’assenza del banner nell’ambiente remoto. Non attribuisce il problema al matcher senza aver controllato dove viene eseguito il comando.

I due scenari mostrano una differenza concreta: la posizione della sessione conta quanto l’evento. Prima di aggiungere un servizio esterno, verifica se l’avviso può essere prodotto nel luogo in cui lavori e se hai davvero bisogno di una consegna fuori dal desktop.

Come scegliere una frequenza che resta utile?

Parti da un solo evento di attenzione. Dopo la prova osserva se avvisa in un momento utilizzabile, se arriva due volte e se include ciò che serve. Non aggiungere un avviso a ogni tool call per sicurezza: un flusso rumoroso può perdere la sua funzione di richiamo, anche se tecnicamente tutte le chiamate funzionano.

Quando il banner interrompe troppo spesso

Controlla quale tipo di Notification lo produce e restringi il matcher alla necessità reale. Verifica poi se il client mostra già un avviso equivalente. Mantieni la richiesta di permesso riconoscibile e separa gli eventuali segnali di fine risposta: hanno significati diversi e non devono usare un messaggio ambiguo.

Gli errori frequenti sono scegliere un matcher universale senza conoscere i tipi, usare comandi incompatibili con la macchina, ignorare il contesto remoto e mettere contenuti del prompt nel banner. Un controllo personale ben documentato può restare piccolo senza diventare un plugin. Per funzioni di interfaccia più ampie, Mods di Claude descrive un percorso differente.

Che cosa cambia quando più sessioni sono aperte?

Un messaggio identico proveniente da più sessioni può rendere difficile capire dove tornare. Puoi scegliere un’etichetta breve del progetto, definita localmente e priva di informazioni riservate. L’etichetta deve servire a identificare la finestra, senza riportare il prompt o dati del cliente.

Prova il caso con due sessioni di test, verificando quale produce l’avviso. Se il sistema raggruppa i banner, la consegna può essere corretta ma poco distinguibile. Non risolvere questa ambiguità aumentando indiscriminatamente il testo: mantieni una denominazione chiara e leggi il dettaglio nella sessione.

Come portare la notifica nel processo di lavoro?

Definisci il messaggio, l’evento, il computer destinatario e la procedura di prova. Conserva anche il comportamento atteso quando il desktop non è disponibile: una notifica mancante non deve essere scambiata per una sessione senza richieste. Il luogo autorevole per la decisione resta la conversazione di Claude Code.

Per un’organizzazione che usa strumenti AI in processi diversi, una consulenza AI può chiarire quali momenti richiedono davvero attenzione umana e quali controlli devono produrre prove. Una notifica locale funziona bene quando richiama una decisione concreta, con poco testo e un significato preciso.

La configurazione va mantenuta quando cambiano client, sistema operativo o modo di eseguire la sessione. Prova nuovamente il comando e il percorso del hook dopo questi cambiamenti; non presumere che un banner visto mesi prima certifichi l’ambiente corrente.

Metodo e fonti delle guide di Giallo Studio

Come lo applichiamo in azienda

Risorse correlate

Servizi di consulenza AI e automazione dei processi

FAQ

Quale evento avvisa quando serve un permesso?

Notification può essere filtrato sul tipo permission_prompt. Il comando nativo deve essere disponibile e autorizzato dal sistema operativo.

Stop significa che il progetto è finito?

No. Segna la fine di una risposta di Claude. La consegna del progetto richiede criteri di completamento distinti.

Si può notificare senza Slack o email?

Sì. Si può usare una notifica del sistema operativo, mantenendo l’avviso sul computer del lettore e senza trasmettere dati a un servizio esterno.

Perché non vedo la notifica su macOS?

Controlla il comando separatamente e poi i permessi delle notifiche dell’applicazione che lo esegue. Modalità concentrazione e impostazioni del sistema possono nascondere l’avviso.

Su Linux notify-send funziona sempre?

Richiede un ambiente desktop e un servizio di notifiche accessibile al processo. Un terminale remoto o una sessione headless può non avere quel collegamento.

Che testo inserire nella notifica?

Un messaggio breve e fisso che indichi l’azione necessaria. Evita prompt, percorsi riservati, contenuti dei file e credenziali.

Applichiamolo

Trasformiamo la guida in un primo flusso live.

Raccontaci quale processo vuoi alleggerire: valutiamo fattibilità, ritorno e primo step operativo.