LLM agents are doing their work in the background, but notifications are becoming an important aspect. When an agent finishes, hits an error, or requires permissions, it needs a way to notify you. Most of the time this is via the operating system or mobile notification system. For those for whom notifications fail silently when using Claude Code, here is a series of checks you can perform to get them back working.
Prerequisites
What you need:
- Ghostty installed
- Claude Code installed via npm
- macOS 13+ (Ventura or later)
Step by step Setup
1. Grant Ghostty notification permissions
Open System Settings → Notifications → Ghostty and set:
- Allow notifications: On
- Alert style: Banners (or Alerts if you want them to stay until dismissed)
- Show in Notification Centre: On
If Ghostty doesn’t appear in the list yet, it means it hasn’t tried to send a notification. Complete a short Claude Code task first to trigger the permission prompt, then come back and grant it.
2. Enable desktop-notifications in Ghostty
Ghostty has notifications enabled by default. To double-check, make sure your Ghostty config (~/.config/ghostty/config) has the value:
desktop-notifications = true
In Ghostty, you can also see the config by going to the Ghostty menu -> Settings, adding desktop-notifications = true, and then selecting Ghostty menu -> Reload configuration.
3. Enable Claude Code notifications
By default, Claude Code sends notifications in auto mode, meaning that terminal detection is done automatically. To check, open a Claude Code session with:
claude
Enter config mode:
/config
Then change the Notifications setting to auto.
4. Make sure Focus mode is not enabled
In macOS, Focus mode can silence notifications. At the top right, find the Focus icon and make sure no Focus mode is enabled.
5. Enable mobile notifications with Remote Control
By default, if Remote Control is enabled in Claude, notifications are also sent to mobile. To start Remote Control for a session, run:
claude
/remote-control
The next notification will also be sent via the mobile channel.
6. Test it
Run a task that forces actual shell execution, then switch to another app:
claude -p "run this bash command: sleep 15 && echo done"
You should see a banner from Ghostty appear with “Task complete” within a few seconds of Claude finishing.
Troubleshooting
Notification sound plays but no banner appears Your alert style is probably set to “None”. Go back to System Settings → Notifications → Ghostty and change it to Banners or Alerts.
Nothing happens at all
Check that desktop-notifications = true is set in ~/.config/ghostty/config and that you reloaded the configuration (Ghostty menu → Reload configuration).
It works in Terminal.app but not Ghostty Each terminal app has its own notification permission entry in System Settings. Make sure you have granted permission specifically to Ghostty.
Focus mode is blocking notifications macOS Focus modes can silently suppress notifications. Check Control Centre → Focus and ensure your active Focus allows Ghostty notifications, or pause Focus while testing.
Conclusion
Three things need to be true at the same time: macOS has granted Ghostty notification permission, Ghostty has desktop-notifications enabled, and Claude Code’s notification setting is not disabled. Once all three are in place — and Focus mode isn’t in the way — you can kick off a long agentic task, walk away, and let the notification bring you back exactly when you’re needed.