Desktop: 'Scheduled task completed' macOS notification fires every run; notifyOnCompletion:false does not suppress it

Open 💬 0 comments Opened Jul 7, 2026 by m13v

Environment

Claude Desktop for macOS 1.18286.0, scheduled tasks (claude-code-sessions) running on a cron.

Bug

A scheduled task created with notifyOnCompletion: false (or updated via update_scheduled_task with notifyOnCompletion: false) still pops a macOS notification titled "Scheduled task completed" after every run.

For a per-minute cron task (* * * * *), that means a system notification every minute, which makes Notification Center unusable.

What seems to be happening

notifyOnCompletion maps to a notifySessionId subscription on the task record and only controls the message injected into the subscribing chat session. The macOS banner comes from a separate listener on the scheduledTaskRunFinished event, which calls showNotification("Scheduled task completed", ...) unconditionally whenever the finished run's session is not the currently focused one. Nothing on the task record gates that path: a task with no notifySessionId at all still triggers the banner on every run.

Expected

Either notifyOnCompletion: false should also suppress the OS notification for that task, or there should be some per-task way to opt out of the run-finished banner. High-frequency cron tasks are a supported use case and currently have no way to run quietly.

Repro

  1. Create a scheduled task with cronExpression: "* * * * *" and notifyOnCompletion: false.
  2. Focus any other session or app.
  3. Observe a "Scheduled task completed" macOS notification every minute.

View original on GitHub ↗