Par défaut, Claude Code n'affiche aucune notification desktop dans Windows Terminal, PowerShell ou le terminal de VS Code : sur Windows, c'est à toi d'en ajouter une. Mets un hook Notification (et un hook Stop pour « terminé ») dans %USERPROFILE%\.claude\settings.json qui lance PowerShell : une boîte de dialogue fonctionne sans rien installer, et le module BurntToast donne un vrai toast. Si Claude Code tourne dans WSL, le hook s'exécute sous Linux : il doit donc appeler powershell.exe via l'interop Windows pour atteindre le bureau Windows.
01Windows natif ou WSL : où tournent tes hooks
Claude Code tourne soit nativement sur Windows, soit dans WSL, et c'est ce qui détermine le fonctionnement d'un hook de notification.
- Windows natif. Les réglages sont dans
%USERPROFILE%\.claude\settings.json. D'après la référence des hooks d'Anthropic, les hooks de commande s'exécutent par défaut dans Git Bash, ou dans PowerShell si Git Bash n'est pas installé. Tu peux forcer PowerShell pour un hook avec"shell": "powershell"; Claude Code utilise alorspwsh.exe(PowerShell 7) s'il le trouve, sinonpowershell.exe(Windows PowerShell 5.1). - WSL. Tu installes et lances
claudedans le terminal WSL : le fichier de réglages est donc celui de Linux,~/.claude/settings.jsondans ta distribution, et les hooks tournent dans un shell Linux. Là,notify-sendn'atteint généralement pas le bureau Windows. Appelle plutôt des programmes Windows.
02Le test rapide : la bell du terminal
Le signal le plus simple, c'est la bell. Ajoute ceci à ton fichier de réglages :
{
"preferredNotifChannel": "terminal_bell"
}
Claude Code envoie alors un caractère bell quand il termine ou t'attend. Dans Windows Terminal, l'effet de la bell se règle par profil avec bellStyle dans son settings.json. "bellStyle": ["window", "taskbar"] fait clignoter la fenêtre et le bouton de la barre des tâches au lieu de jouer un son. Le guide sur la bell du terminal détaille cette option. Ça n'aide que si le terminal est visible.
03Un Notification hook avec PowerShell
Voici l'exemple Windows du guide des hooks d'Anthropic. Il fonctionne sans rien installer :
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""
}
]
}
]
}
}
Il ouvre une boîte de dialogue, pas un toast dans le coin de l'écran, et elle peut s'ouvrir derrière ton terminal. Teste d'abord la commande dans PowerShell. Tape /hooks dans Claude Code pour vérifier que le hook est chargé.
Le matcher vide se déclenche pour tous les types de notification, y compris permission_prompt (une approbation attend depuis environ six secondes) et idle_prompt (Claude a terminé il y a environ 60 secondes). Le guide du Notification hook explique ces délais.
04Un vrai toast avec BurntToast
BurntToast est un module PowerShell très utilisé, maintenu par la communauté, pour les notifications toast de Windows. Installe-le une fois pour ton utilisateur :
Install-Module -Name BurntToast -Scope CurrentUser
Puis vérifie qu'il fonctionne :
New-BurntToastNotification -Text 'Claude Code', 'Claude needs your attention'
Utilise-le dans un hook. Cette version lance PowerShell sans profil et contourne la politique d'exécution pour cet appel uniquement, pour un comportement identique depuis Git Bash ou PowerShell :
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"New-BurntToastNotification -Text 'Claude Code', 'Claude needs your attention'\""
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"New-BurntToastNotification -Text 'Claude Code', 'Claude has finished'\"",
"async": true
}
]
}
]
}
}
Le hook Stop s'exécute à la fin de chaque tour : tu es prévenu tout de suite quand une tâche est terminée, pas une minute plus tard ; consulte le guide du Stop hook. "async": true lance le hook en arrière-plan pour qu'un démarrage lent de PowerShell ne bloque pas Claude Code.
Si aucun toast n'apparaît, vérifie Paramètres > Système > Notifications : les notifications doivent être activées et Ne pas déranger désactivé. Les toasts BurntToast apparaissent généralement sous Windows PowerShell, dont les notifications doivent aussi être autorisées.
05Depuis WSL : appeler Windows via l'interop
Dans WSL, le hook tourne sous Linux, mais WSL peut lancer des programmes Windows par leur nom en .exe. Le guide d'Anthropic précise que powershell.exe doit être dans ton PATH via l'interop Windows. C'est le cas par défaut ; c'est contrôlé par appendWindowsPath dans la section [interop] de /etc/wsl.conf. Vérifie depuis ton shell WSL :
command -v powershell.exe
Avec BurntToast installé côté Windows, le hook dans ton ~/.claude/settings.json WSL utilise la même commande :
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"New-BurntToastNotification -Text 'Claude Code', 'Claude has finished'\"",
"async": true
}
]
}
]
}
}
Lancer Windows PowerShell depuis WSL peut prendre une seconde ou plus, raison de plus pour utiliser "async": true.
06Où se situe Claude Code Notifier
Ces hooks suffisent si tu es devant ton poste. Dès que tu t'éloignes, ils ne servent à rien, et un toast ne permet pas d'approuver une commande pour Claude.
Claude Code Notifier est un outil indépendant (créé par TouchTap, pas par Anthropic) basé sur les hooks de Claude Code. Son outil en ligne de commande gratuit, ccn, tourne sur Mac, Windows et Linux ; le support Windows est en bêta. Sur Windows natif, installe-le depuis PowerShell :
irm https://claudecodenotifier.com/install.ps1 | iex
Il ajoute ses entrées de hook à tes réglages Claude Code, ne touche pas au reste du fichier et en garde une sauvegarde. Dès l'installation, il affiche un toast Windows quand Claude termine, demande une permission ou pose une question, sans téléphone ni réseau. Comme il se branche sur Claude Code et non sur un terminal, il fonctionne pareil dans Windows Terminal, PowerShell et les terminals des IDE.
Si Claude Code tourne dans WSL, installe ccn dans WSL avec la commande Linux, car c'est là que se trouvent Claude Code et ses réglages :
curl -fsSL https://claudecodenotifier.com/install.sh | sh
Lance ensuite ccn test. Qu'une notification desktop envoyée depuis WSL atteigne ton bureau Windows dépend de ta configuration WSL : pour WSL, le téléphone reste la solution fiable. Avec un téléphone appairé, les événements arrivent en notifications push, et tu peux autoriser une fois, autoriser pour la session ou refuser une permission, répondre aux questions de Claude et envoyer la prochaine instruction depuis le téléphone. Consulte appairer un téléphone, la page ccn et les tarifs des apps mobiles.
Si tu installes ccn, supprime tes propres hooks de toast pour éviter les notifications en double.
07FAQ
Pourquoi mon hook PowerShell ne fait rien sous Windows ?
Lance d'abord la commande exacte dans PowerShell. Si elle fonctionne, vérifie que /hooks affiche bien le hook et que l'échappement JSON est correct (chaque " interne doit être précédé d'un backslash). Pour BurntToast, assure-toi que le module a été installé pour le même utilisateur que celui qui lance Claude Code, et que le mode Ne pas déranger est désactivé.
Claude Code sous Windows a-t-il besoin de Git Bash pour les hooks ?
Non. Les hooks tournent dans Git Bash si Git for Windows est installé, sinon dans PowerShell. Tu peux aussi définir "shell": "powershell" sur n'importe quel hook.
notify-send fonctionne-t-il dans WSL ?
En général, pas pour le bureau Windows. La méthode fiable consiste à appeler powershell.exe depuis le hook via l'interop WSL, comme montré plus haut.
Windows Terminal peut-il afficher les notifications de Claude Code tout seul ?
Pas par défaut. Règle preferredNotifChannel sur terminal_bell et choisis un bellStyle qui fait clignoter la fenêtre ou la barre des tâches, ou utilise un hook pour afficher un toast.
Existe-t-il un moyen gratuit d'avoir une notification Windows ?
Oui. Les hooks PowerShell ci-dessus et les notifications de bureau de ccn sont gratuits. Seules les applis mobiles nécessitent un abonnement ou un achat à vie.