macOS notifications appear from "Script Editor" instead of "Claude Code"
Reopening #41511 (closed by stale bot, problem still present as of Claude Code on macOS 25.4.0 / Darwin).
Description
On macOS, Claude Code sends desktop notifications via osascript (display notification). All notifications therefore appear as coming from "Script Editor" rather than "Claude Code".
This makes it difficult to:
- Identify which app sent the notification
- Configure notification preferences specifically for Claude Code (e.g., disable only Claude Code notifications without affecting other
osascript-based notifications) - Click the notification to focus the originating terminal — clicking opens Script Editor instead
Steps to Reproduce
- Run Claude Code on macOS (CLI or desktop app)
- Trigger any notification (long task completion, permission prompt, etc.)
- Observe macOS Notification Center
Expected Behavior
Notifications appear with "Claude Code" as the sender. Clicking focuses the originating terminal/app.
Actual Behavior
Notifications appear from "Script Editor" because osascript -e 'display notification ...' routes through Script Editor's bundle ID. Reported across multiple terminals (Terminal.app, Ghostty) and the Claude Code desktop app.
Possible Solutions
- Use
terminal-notifierwith a custom app icon and bundle ID - Bundle a lightweight native notification helper signed with a Claude Code bundle ID
- Use
node-notifierwith a custom app identity - For the desktop app: route through the app's own
NSUserNotification/UNUserNotificationCenterinstead of shelling out toosascript
Environment
- macOS Sequoia (also reproduced on Darwin 25.4.0)
- Claude Code CLI and desktop app
- Terminals: Terminal.app, Ghostty
Prior issue
Original: #41511 (closed by stale bot, no Anthropic response in thread). Two additional users confirmed in comments before closure.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗