Notifiche di Claude Code: sapere quando è in attesa e quando ha finito
“Una sessione bloccata sembra identica a una sessione finita, così apro prima quella sbagliata.” Questa frase tratta da una richiesta di funzionalità per Claude Code riassume tutto. Ecco come ottenere un segnale diverso per ciascun caso.
RISPOSTA BREVE
Claude Code genera già una notifica quando finisce o attende un'autorizzazione mentre sei via, ma per impostazione predefinita solo Ghostty, Kitty e iTerm2 la mostrano come notifica desktop. Altrove, imposta "preferredNotifChannel": "terminal_bell". Per due suoni diversi, usa un hook Notification con il matcher permission_prompt per “ha bisogno di te” e un hook Stop per “ha finito”.
Cosa fa Claude Code da solo
Quando Claude finisce un'attività o si ferma su una richiesta di autorizzazione, e sembri lontano dal terminale, genera un evento di notifica. Per impostazione predefinita lo trasforma in una notifica desktop solo in Ghostty, Kitty e iTerm2. In Windows Terminal, nel terminale di VS Code, in Warp e negli altri non succede nulla di visibile finché non lo configuri.
La soluzione più semplice è il segnale acustico del terminale:
Cosa fa il segnale acustico dipende dal terminale. In Windows Terminal, l'impostazione bellStyle può essere audible (il valore predefinito), window, taskbar, all o none. Con all, Windows Terminal riproduce un suono e fa lampeggiare l'icona sulla barra delle applicazioni.
- iTerm2: Settings → Profiles → Terminal → seleziona “Notification Center Alerts”, poi Filter Alerts → attiva “Send escape sequence-generated alerts”.
- tmux: aggiungi
set -g allow-passthrough ona~/.tmux.conf, altrimenti le notifiche non raggiungono mai il terminale esterno. - Tramite SSH: la notifica desktop torna alla tua macchina locale, quindi anche le sessioni remote possono avvisarti.
La richiesta di funzionalità per le notifiche di sistema (#26581, 34 voti) è stata chiusa come già disponibile, rimandando proprio a questa notifica integrata. La richiesta di un segnale diverso per “in attesa” e “finito” (#94373) è ancora aperta. È qui che entrano in gioco gli hook.
Due eventi: Notification e Stop
Notificationsi attiva quando Claude Code invia una notifica. Il suo matcher è il tipo di notifica. I due che ti interessano sonopermission_prompt(Claude ha bisogno che tu approvi l'uso di uno strumento e la richiesta attende da circa sei secondi) eidle_prompt(Claude ha finito di rispondere circa 60 secondi fa e da allora non hai digitato nulla).Stopsi attiva ogni volta che Claude finisce di rispondere. Non si attiva quando lo interrompi; gli errori dell'API attivano inveceStopFailure.
Gli hook vengono eseguiti insieme alla notifica integrata invece di sostituirla, quindi puoi tenerli entrambi.
Windows: due suoni diversi
Su Windows gli hook vengono eseguiti in Git Bash, oppure in PowerShell se Git Bash non è installato. Impostare "shell": "powershell" elimina ogni incertezza. Questa configurazione emette un doppio bip acuto quando Claude ha bisogno di un'autorizzazione e un bip grave quando ha finito:
Console.Beep accetta una frequenza in hertz e una durata in millisecondi, e attende la fine del bip. La guida agli hook di Anthropic mostra anche un esempio per Windows che apre una finestra di messaggio con System.Windows.Forms; come nota la stessa Anthropic, si tratta di una finestra di dialogo e non di una notifica, e può aprirsi dietro il terminale.
macOS e Linux
La documentazione di Anthropic usa afplay su macOS:
Per un avviso visibile, usa osascript -e 'display notification "Claude needs you" with title "Claude Code"' su macOS, oppure notify-send "Claude Code" "Claude needs you" su Linux.
Dettagli che ti risparmiano una serata
- Stop si attiva spesso. Si attiva ogni volta che Claude finisce di rispondere, non solo quando un'intera attività è completata. Se è troppo invadente, usa invece la notifica
idle_prompt. Attende circa un minuto e si attiva solo se non hai digitato nulla. - Leggi l'evento se ti serve. L'input di Notification include
message,titleenotification_type, così uno script può mostrare la richiesta effettiva. - Vista degli agenti. Se esegui sessioni in background con
claude agents, ricevi una notifica tramite lo stessopreferredNotifChannelquando una sessione inizia ad aver bisogno di input, finisce o fallisce, e l'hook Notification si attiva con il tipoagent_needs_inputoagent_completed. - Stato nel terminale. I terminali che implementano il protocollo di stato OSC 7501 possono mostrare se ogni sessione di Claude Code sta lavorando, è in attesa o ha finito. Claude Code v2.1.295 o successive lo segnalano automaticamente.
- L'hook non si attiva su Windows? Vedi Gli hook di Claude Code non funzionano su Windows. È quasi sempre colpa della shell.
Capire quale sessione è e rispondere
Un suono ti dice che è successo qualcosa. Non ti dice da quale dei tuoi tre terminali arriva, né cosa vuole eseguire Claude. Pet Island dà a ogni sessione di Claude Code un posto su una piccola isola nella parte alta dello schermo: al lavoro, in attesa di te o finita. Una richiesta di autorizzazione arriva con il comando o il diff, e la consenti o la neghi direttamente lì; domande e piani funzionano allo stesso modo. Un clic ti porta al terminale esatto quando vuoi guardare più da vicino.
FAQ
Claude Code ha le notifiche?
Sì. Quando finisce o attende un'autorizzazione mentre sei via, genera una notifica. Ghostty, Kitty e iTerm2 la mostrano per impostazione predefinita come notifica desktop; negli altri terminali imposta preferredNotifChannel su "terminal_bell" o aggiungi un hook Notification.
Come faccio a ricevere un suono quando Claude Code ha finito?
Aggiungi un hook Stop che riproduca un suono, ad esempio afplay su macOS o [Console]::Beep in PowerShell su Windows.
Come distinguo “ha bisogno di un'autorizzazione” da “ha finito”?
Usa un hook Notification con il matcher permission_prompt per un suono e un hook Stop per un altro.
Perché non ricevo notifiche in Windows Terminal o VS Code?
Per impostazione predefinita Claude Code invia notifiche desktop solo in Ghostty, Kitty e iTerm2. Imposta preferredNotifChannel su "terminal_bell" o usa un hook.
Le notifiche funzionano dentro tmux?
Sì, dopo aver aggiunto set -g allow-passthrough on a ~/.tmux.conf.
Fonti
Ogni impostazione e comportamento descritti in questa pagina sono stati verificati su queste pagine il 26 ottobre 2026. Gli agenti cambiano in fretta: se qualcosa non corrisponde più, fa fede la pagina ufficiale.
- Documentazione di Claude Code: Configure your terminal (notifiche)
- Documentazione di Claude Code: Hooks guide
- Documentazione di Claude Code: Hooks reference
- Documentazione di Claude Code: Agent view
- Issue #26581: notifiche di sistema quando Claude richiede attenzione
- Issue #94373: notificare in modo diverso l'attesa e la fine
- Issue #2427: notifica sonora al completamento di un'attività
- Microsoft Learn: impostazioni del profilo di Windows Terminal (bellStyle)
- Microsoft Learn: Console.Beep