macOS notifications appear from "Script Editor" instead of "Claude Code"

Open 💬 1 comment Opened Jun 18, 2026 by alsoknownasdrew

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

  1. Run Claude Code on macOS (CLI or desktop app)
  2. Trigger any notification (long task completion, permission prompt, etc.)
  3. 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-notifier with a custom app icon and bundle ID
  • Bundle a lightweight native notification helper signed with a Claude Code bundle ID
  • Use node-notifier with a custom app identity
  • For the desktop app: route through the app's own NSUserNotification / UNUserNotificationCenter instead of shelling out to osascript

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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗