Claude Code toont standaard geen desktopmelding in Windows Terminal, PowerShell of de VS Code-terminal, dus op Windows voeg je die zelf toe. Zet een Notification-hook (en een Stop-hook voor "klaar") in %USERPROFILE%\.claude\settings.json die PowerShell uitvoert: een berichtvenster werkt zonder iets te installeren, en de BurntToast-module geeft een echte toast. Draait Claude Code in WSL, dan draait de hook in Linux en moet hij powershell.exe via Windows-interop aanroepen om het Windows-bureaublad te bereiken.
01Native Windows of WSL: waar je hooks draaien
Claude Code draait native op Windows of in WSL, en dat bepaalt hoe een notificatie-hook werkt.
- Native Windows. De instellingen staan in
%USERPROFILE%\.claude\settings.json. Volgens de hooks-referentie van Anthropic draaien command-hooks standaard in Git Bash, of in PowerShell als Git Bash niet geïnstalleerd is. Je kunt PowerShell voor één hook afdwingen met"shell": "powershell"; Claude Code gebruikt danpwsh.exe(PowerShell 7) als die er is, en anderspowershell.exe(Windows PowerShell 5.1). - WSL. Je installeert en draait
claudein de WSL-terminal, dus het instellingenbestand is dat van Linux,~/.claude/settings.jsonin je distributie, en hooks draaien in een Linux-shell.notify-sendbereikt daar meestal het Windows-bureaublad niet. Roep in plaats daarvan Windows-programma's aan.
02De snelle test: de terminal bell
Het simpelste signaal is de bell. Voeg dit toe aan je instellingenbestand:
{
"preferredNotifChannel": "terminal_bell"
}
Claude Code stuurt dan een bell-teken als het klaar is of op je wacht. In Windows Terminal stel je per profiel in wat de bell doet met bellStyle in de settings.json. "bellStyle": ["window", "taskbar"] laat het venster en de taakbalkknop knipperen in plaats van een geluid af te spelen. In de terminal bell-gids lees je meer hierover. Het helpt alleen als de terminal in beeld is.
03Een Notification hook met PowerShell
Dit is het Windows-voorbeeld uit de hooks-gids van Anthropic. Het werkt zonder iets te installeren:
{
"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')\""
}
]
}
]
}
}
Het opent een dialoogvenster, geen toast in de hoek van je scherm, en dat venster kan achter je terminal verschijnen. Test het commando eerst in PowerShell. Typ /hooks in Claude Code om te checken of de hook geladen is.
De lege matcher gaat af voor elk meldingstype, inclusief permission_prompt (een goedkeuring wacht al zo'n zes seconden) en idle_prompt (Claude is zo'n 60 seconden geleden klaar). De Notification hook-gids legt de timing uit.
04Een echte toast met BurntToast
BurntToast is een veelgebruikte, door de community onderhouden PowerShell-module voor Windows-toastmeldingen. Installeer hem één keer voor je gebruiker:
Install-Module -Name BurntToast -Scope CurrentUser
Controleer daarna of het werkt:
New-BurntToastNotification -Text 'Claude Code', 'Claude needs your attention'
Gebruik hem in een hook. Deze versie start PowerShell zonder profiel en omzeilt de execution policy voor deze ene aanroep, zodat hij zich vanuit Git Bash en PowerShell hetzelfde gedraagt:
{
"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
}
]
}
]
}
}
De Stop-hook draait aan het einde van elke beurt, dus je hoort direct dat een taak klaar is in plaats van een minuut later; zie de Stop hook-gids. "async": true draait de hook op de achtergrond, zodat een trage PowerShell-start Claude Code niet ophoudt.
Verschijnen er nooit toasts, kijk dan bij Instellingen > Systeem > Meldingen: meldingen moeten aan staan en Niet storen moet uit staan. BurntToast-toasts verschijnen daar meestal onder Windows PowerShell, waarvoor meldingen ook toegestaan moeten zijn.
05Vanuit WSL: Windows aanroepen via interop
In WSL draait de hook in Linux, maar WSL kan Windows-programma's starten via hun .exe-naam. De gids van Anthropic vermeldt dat powershell.exe via Windows-interop op je PATH moet staan. Dat is standaard zo; het wordt geregeld door appendWindowsPath in de sectie [interop] van /etc/wsl.conf. Controleer het vanuit je WSL-shell:
command -v powershell.exe
Met BurntToast geïnstalleerd aan de Windows-kant is de hook in je WSL ~/.claude/settings.json hetzelfde commando:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"New-BurntToastNotification -Text 'Claude Code', 'Claude has finished'\"",
"async": true
}
]
}
]
}
}
Het starten van Windows PowerShell vanuit WSL kan een seconde of langer duren, nog een reden voor "async": true.
06Waar Claude Code Notifier in past
De hooks hierboven zijn prima als je achter je bureau zit. Zodra je wegloopt doen ze niets, en een toast kan geen commando voor Claude goedkeuren.
Claude Code Notifier is een onafhankelijke tool (gemaakt door TouchTap, niet door Anthropic) die bovenop de hooks van Claude Code is gebouwd. De gratis command line tool, ccn, draait op Mac, Windows en Linux; Windows-ondersteuning is in bèta. Op native Windows installeer je hem vanuit PowerShell:
irm https://claudecodenotifier.com/install.ps1 | iex
Hij voegt zijn hook-entries toe aan je Claude Code-instellingen, laat de rest van het bestand ongemoeid en maakt een back-up. Meteen daarna toont hij een Windows-toast als Claude klaar is, een permissie nodig heeft of een vraag stelt, zonder telefoon of netwerk. Omdat hij in Claude Code haakt en niet in een terminal, werkt hij hetzelfde in Windows Terminal, PowerShell en IDE-terminals.
Draait Claude Code in WSL, installeer ccn dan in WSL met de Linux-regel, want daar staan Claude Code en zijn instellingen:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
Voer daarna ccn test uit. Of een desktopmelding vanuit WSL je Windows-bureaublad bereikt, hangt af van je WSL-setup, dus voor WSL is de telefoon de betrouwbare route. Met een gekoppelde telefoon komen events binnen als pushmeldingen, en kun je een permissie eenmalig toestaan, voor de sessie toestaan of weigeren, de vragen van Claude beantwoorden en de volgende instructie sturen vanaf je telefoon. Zie een telefoon koppelen, de ccn-pagina en prijzen voor de telefoonapps.
Installeer je ccn, verwijder dan je eigen toast-hooks om dubbele notificaties te voorkomen.
07FAQ
Waarom doet mijn PowerShell-hook niets op Windows?
Voer eerst exact hetzelfde commando uit in PowerShell. Werkt het daar, controleer dan of /hooks de hook toont en of de JSON-escaping klopt (elke binnenste " heeft een backslash nodig). Zorg bij BurntToast dat de module is geïnstalleerd voor dezelfde gebruiker die Claude Code draait, en dat Niet storen uit staat.
Heeft Claude Code op Windows Git Bash nodig voor hooks?
Nee. Hooks draaien in Git Bash als Git for Windows is geïnstalleerd, en anders in PowerShell. Je kunt ook "shell": "powershell" instellen op een individuele hook.
Werkt notify-send in WSL?
Meestal niet voor het Windows-bureaublad. De betrouwbare manier is om powershell.exe vanuit de hook aan te roepen via WSL-interop, zoals hierboven.
Kan Windows Terminal zelf Claude Code-notificaties tonen?
Niet standaard. Stel preferredNotifChannel in op terminal_bell en kies een bellStyle die het venster of de taakbalk laat knipperen, of gebruik een hook voor een toast.
Kan ik gratis een Windows-notificatie krijgen?
Ja. Zowel de PowerShell-hooks hierboven als de desktopnotificaties van ccn zijn gratis. Alleen voor de telefoonapps heb je een abonnement of eenmalige aankoop nodig.