Notifications de Claude Code : savoir s’il attend ou s’il a terminé
« Une session bloquée ressemble exactement à une session terminée, alors j’ouvre d’abord la mauvaise. » Cette phrase tirée d’une demande de fonctionnalité pour Claude Code résume tout. Voici comment obtenir un signal différent pour chaque cas.
RÉPONSE COURTE
Claude Code émet déjà une notification quand il termine ou attend une autorisation pendant votre absence, mais seuls Ghostty, Kitty et iTerm2 l’affichent par défaut comme notification de bureau. Ailleurs, définissez "preferredNotifChannel": "terminal_bell". Pour deux sons différents, utilisez un hook Notification avec le matcher permission_prompt pour « a besoin de vous » et un hook Stop pour « a terminé ».
Ce que Claude Code fait de lui-même
Quand Claude termine une tâche ou s’arrête sur une demande d’autorisation, et que vous semblez absent du terminal, il déclenche un événement de notification. Par défaut, il ne le transforme en notification de bureau que dans Ghostty, Kitty et iTerm2. Dans Windows Terminal, le terminal de VS Code, Warp et les autres, rien de visible ne se passe tant que vous ne l’avez pas configuré.
La solution la plus simple est la sonnerie du terminal :
L’effet de la sonnerie dépend de votre terminal. Dans Windows Terminal, le paramètre bellStyle peut valoir audible (la valeur par défaut), window, taskbar, all ou none. Avec all, Windows Terminal émet un son et fait clignoter l’icône dans la barre des tâches.
- iTerm2 : Settings → Profiles → Terminal → cochez « Notification Center Alerts », puis Filter Alerts → activez « Send escape sequence-generated alerts ».
- tmux : ajoutez
set -g allow-passthrough onà~/.tmux.conf, sinon les notifications n’atteignent jamais le terminal externe. - Via SSH : la notification de bureau revient jusqu’à votre machine locale, donc les sessions distantes peuvent quand même vous alerter.
La demande de fonctionnalité pour des notifications système (#26581, 34 votes) a été fermée car déjà disponible, en renvoyant précisément à cette notification intégrée. La demande d’un signal différent pour « en attente » et « terminé » (#94373) est toujours ouverte. C’est là que les hooks entrent en jeu.
Deux événements : Notification et Stop
Notificationse déclenche quand Claude Code envoie une notification. Son matcher est le type de notification. Les deux qui vous intéressent sontpermission_prompt(Claude a besoin que vous approuviez l’utilisation d’un outil et la demande attend depuis environ six secondes) etidle_prompt(Claude a fini de répondre il y a environ 60 secondes et vous n’avez rien tapé depuis).Stopse déclenche chaque fois que Claude finit de répondre. Il ne se déclenche pas quand vous l’interrompez ; les erreurs d’API déclenchentStopFailureà la place.
Les hooks s’exécutent en plus de la notification intégrée au lieu de la remplacer, vous pouvez donc garder les deux.
Windows : deux sons différents
Sous Windows, les hooks s’exécutent dans Git Bash, ou dans PowerShell si Git Bash n’est pas installé. Définir "shell": "powershell" lève toute incertitude. Cette configuration émet un double bip aigu quand Claude a besoin d’une autorisation et un bip grave quand il a terminé :
Console.Beep prend une fréquence en hertz et une durée en millisecondes, et attend la fin du bip. Le guide des hooks d’Anthropic montre aussi un exemple Windows qui ouvre une boîte de message avec System.Windows.Forms ; Anthropic précise lui-même qu’il s’agit d’une boîte de dialogue et non d’une notification, et qu’elle peut s’ouvrir derrière votre terminal.
macOS et Linux
La documentation d’Anthropic utilise afplay sous macOS :
Pour une alerte visible, utilisez osascript -e 'display notification "Claude needs you" with title "Claude Code"' sous macOS, ou notify-send "Claude Code" "Claude needs you" sous Linux.
Les détails qui vous épargnent une soirée
- Stop se déclenche souvent. Il se déclenche chaque fois que Claude finit de répondre, pas seulement quand une tâche entière est terminée. Si c’est trop bavard, utilisez plutôt la notification
idle_prompt. Elle attend environ une minute et ne se déclenche que si vous n’avez rien tapé. - Lisez l’événement si besoin. L’entrée de Notification comprend
message,titleetnotification_type, ce qui permet à un script d’afficher la demande réelle. - La vue des agents. Si vous lancez des sessions en arrière-plan avec
claude agents, vous êtes averti via le mêmepreferredNotifChannelquand une session a besoin d’une saisie, se termine ou échoue, et le hook Notification se déclenche avec le typeagent_needs_inputouagent_completed. - L’état dans le terminal. Les terminaux qui implémentent le protocole d’état OSC 7501 peuvent indiquer si chaque session Claude Code travaille, attend ou a terminé. Claude Code v2.1.295 ou version ultérieure le signale automatiquement.
- Le hook ne se déclenche pas sous Windows ? Consultez Les hooks de Claude Code ne fonctionnent pas sous Windows. C’est presque toujours le shell.
Savoir de quelle session il s’agit, et lui répondre
Un son vous dit que quelque chose s’est passé. Il ne vous dit pas de quel terminal parmi les trois il vient, ni ce que Claude veut exécuter. Pet Island donne à chaque session Claude Code une place sur une petite île en haut de votre écran : au travail, en attente de votre réponse, ou terminée. Une demande d’autorisation arrive avec la commande ou le diff, et vous l’autorisez ou la refusez directement depuis l’île ; les questions et les plans fonctionnent de la même façon. Un clic vous amène au terminal exact quand vous voulez regarder de plus près.
FAQ
Claude Code a-t-il des notifications ?
Oui. Quand il termine ou attend une autorisation pendant votre absence, il déclenche une notification. Ghostty, Kitty et iTerm2 l’affichent par défaut comme notification de bureau ; dans les autres terminaux, définissez preferredNotifChannel sur "terminal_bell" ou ajoutez un hook Notification.
Comment obtenir un son quand Claude Code a terminé ?
Ajoutez un hook Stop qui joue un son, par exemple afplay sous macOS ou [Console]::Beep dans PowerShell sous Windows.
Comment distinguer « a besoin d’une autorisation » de « a terminé » ?
Utilisez un hook Notification avec le matcher permission_prompt pour un son, et un hook Stop pour un autre.
Pourquoi je ne reçois pas de notifications dans Windows Terminal ou VS Code ?
Par défaut, Claude Code n’envoie des notifications de bureau que dans Ghostty, Kitty et iTerm2. Définissez preferredNotifChannel sur "terminal_bell" ou utilisez un hook.
Les notifications fonctionnent-elles dans tmux ?
Oui, après avoir ajouté set -g allow-passthrough on à ~/.tmux.conf.
Sources
Chaque paramètre et chaque comportement décrits sur cette page ont été vérifiés dans ces pages le 26 octobre 2026. Les agents évoluent vite : si quelque chose ne correspond plus, c’est la page officielle qui fait foi.
- Documentation Claude Code : Configure your terminal (notifications)
- Documentation Claude Code : Hooks guide
- Documentation Claude Code : Hooks reference
- Documentation Claude Code : Agent view
- Issue #26581 : notifications système quand Claude a besoin d’attention
- Issue #94373 : notifier différemment l’attente et la fin
- Issue #2427 : notification sonore à la fin d’une tâche
- Microsoft Learn : paramètres de profil de Windows Terminal (bellStyle)
- Microsoft Learn : Console.Beep