Preflight Checklist
What's Wrong?
Invoking the Claude Code CLI's PushNotification tool returns the success string:
Terminal notification sent. Mobile push requested.
The mobile push leg delivers correctly to my phone via Remote Control. But the desktop leg silently no-ops:
- No visible toast on desktop
- No entry in Windows Action Center (Win+N) for the notification
- No notification sound
The success string suggests the desktop notification was delivered; it never reaches the Windows notification subsystem.
What Should Happen?
When PushNotification returns the "Terminal notification sent" string, a real Windows toast should appear on the desktop (visible pop-up, Action Center entry, default notification sound), the same way Chrome / Outlook / Teams notifications do.
Steps to Reproduce
- From a Claude Code CLI session on Windows, invoke
PushNotification (e.g. via a skill or by asking Claude to ping you).
- Observe tool result:
Terminal notification sent. Mobile push requested.
- Phone receives the push via Remote Control — works.
- Check Windows desktop — no toast.
- Open Action Center (Win+N) — no entry from Claude Code.
- No notification sound plays.
Diagnostic Steps Already Run (isolation)
The entry point was a "no notification sound" observation while running /avi-ping. Investigation expanded:
-
Audio system OK — (New-Object Media.SoundPlayer "$env:windir\Media\Windows Notify System Generic.wav").PlaySync() plays the Windows default notification sound correctly. So the sound absence is not an audio config issue.
-
Windows notification subsystem OK — other apps (e.g. Google Chrome) deliver toasts to Action Center normally on this machine, with sound, no DND interference.
-
DND / Focus Assist OFF.
-
Direct WinRT toast call works. Running this PS 5.1 snippet produces a fully functional Windows toast (visible + Action Center entry + sound):
[Windows.UI.Notifications.ToastNotificationManager,Windows.UI.Notifications,ContentType=WindowsRuntime] | Out-Null
$x = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)
$texts = $x.GetElementsByTagName("text")
$texts.Item(0).AppendChild($x.CreateTextNode("Direct Toast")) | Out-Null
$texts.Item(1).AppendChild($x.CreateTextNode("Bypasses Claude Code")) | Out-Null
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("Microsoft.Windows.Explorer").Show([Windows.UI.Notifications.ToastNotification]::new($x))
So Windows accepts toasts when called with a registered AppUserModelID.
-
Relevant Claude Code settings:
agentPushNotifEnabled: true
inputNeededNotifEnabled: false
remoteControlAtStartup: true
-
Flag-interaction matrix (empirical):
agentPushNotifEnabled: false → tool returns "Push not sent — mobile push is disabled in /config" (gates both desktop and mobile).
agentPushNotifEnabled: true and terminal focused (inline call) → "Not sent — terminal has focus. Terminal + mobile suppressed."
agentPushNotifEnabled: true and terminal defocused (via ScheduleWakeup) → "Terminal notification sent. Mobile push requested." — mobile push delivered; desktop toast still silently missing.
-
Windows Settings → System → Notifications: "Allow notifications" + "Play sounds with notifications" both ON globally. No per-app entry exists for the toast emitter (suggesting the desktop toast is never actually registering an AppUserModelID with the OS).
Error Messages/Logs
No errors. The tool returns the success string. The failure is silent — the desktop toast simply does not appear despite the tool reporting delivery.
Claude Model
N/A (tool delivery is independent of model).
Is this a regression?
Unknown.
Claude Code Version
2.1.143
Platform
Claude Code CLI
Operating System
Windows 11 Pro 25H2 (10.0.26220)
Terminal/Shell
Windows Terminal with PowerShell 7
Additional Information
Distinct from related issues:
Mobile push works (Remote Control plumbing is healthy). The narrow break is on the desktop-toast delivery leg specifically.
Preflight Checklist
What's Wrong?
Invoking the Claude Code CLI's
PushNotificationtool returns the success string:The mobile push leg delivers correctly to my phone via Remote Control. But the desktop leg silently no-ops:
The success string suggests the desktop notification was delivered; it never reaches the Windows notification subsystem.
What Should Happen?
When
PushNotificationreturns the "Terminal notification sent" string, a real Windows toast should appear on the desktop (visible pop-up, Action Center entry, default notification sound), the same way Chrome / Outlook / Teams notifications do.Steps to Reproduce
PushNotification(e.g. via a skill or by asking Claude to ping you).Terminal notification sent. Mobile push requested.Diagnostic Steps Already Run (isolation)
The entry point was a "no notification sound" observation while running
/avi-ping. Investigation expanded:Audio system OK —
(New-Object Media.SoundPlayer "$env:windir\Media\Windows Notify System Generic.wav").PlaySync()plays the Windows default notification sound correctly. So the sound absence is not an audio config issue.Windows notification subsystem OK — other apps (e.g. Google Chrome) deliver toasts to Action Center normally on this machine, with sound, no DND interference.
DND / Focus Assist OFF.
Direct WinRT toast call works. Running this PS 5.1 snippet produces a fully functional Windows toast (visible + Action Center entry + sound):
So Windows accepts toasts when called with a registered AppUserModelID.
Relevant Claude Code settings:
agentPushNotifEnabled: trueinputNeededNotifEnabled: falseremoteControlAtStartup: trueFlag-interaction matrix (empirical):
agentPushNotifEnabled: false→ tool returns "Push not sent — mobile push is disabled in /config" (gates both desktop and mobile).agentPushNotifEnabled: trueand terminal focused (inline call) → "Not sent — terminal has focus. Terminal + mobile suppressed."agentPushNotifEnabled: trueand terminal defocused (viaScheduleWakeup) → "Terminal notification sent. Mobile push requested." — mobile push delivered; desktop toast still silently missing.Windows Settings → System → Notifications: "Allow notifications" + "Play sounds with notifications" both ON globally. No per-app entry exists for the toast emitter (suggesting the desktop toast is never actually registering an AppUserModelID with the OS).
Error Messages/Logs
No errors. The tool returns the success string. The failure is silent — the desktop toast simply does not appear despite the tool reporting delivery.
Claude Model
N/A (tool delivery is independent of model).
Is this a regression?
Unknown.
Claude Code Version
2.1.143
Platform
Claude Code CLI
Operating System
Windows 11 Pro 25H2 (10.0.26220)
Terminal/Shell
Windows Terminal with PowerShell 7
Additional Information
Distinct from related issues:
PushNotificationreturning "Remote Control inactive" in non-RC sessions. In our case RC is active and the tool returns a success string, but desktop delivery still fails.Mobile push works (Remote Control plumbing is healthy). The narrow break is on the desktop-toast delivery leg specifically.