[BUG] preferredNotifChannel: none does not suppress OSC notifications in Ghostty

Status Fixed / completed
Reported on v2.1.14
Maintainer reply None cached
Activity 4 comments · opened Jan 21, 2026 · closed Jan 21, 2026

Description

Setting preferredNotifChannel: none in ~/.claude.json does not prevent Claude Code from sending OSC 9 desktop notifications. Notifications still appear in Ghostty.

Environment

  • Claude Code version: 2.1.14
  • Terminal: Ghostty 1.x
  • OS: macOS
  • Ghostty config: desktop-notifications = true

Steps to Reproduce

  1. Set ~/.claude.json:

``json
{
"preferredNotifChannel": "none"
}
``

  1. Run Claude Code in Ghostty
  2. Complete a task or trigger a stop event
  3. Observe: "Claude Code Finished" notification still appears

Expected Behavior

With preferredNotifChannel: none, no OSC 9/777 notifications should be sent to the terminal.

Actual Behavior

Notifications still appear via Ghostty's OSC handling.

Workaround

Disable desktop-notifications in Ghostty config, but this also disables notifications from other apps.

View original on GitHub ↗

4 Comments

brendandebeasi · 8 months ago

Additional required info:

  • Preflight: Searched existing issues, single bug, using latest version
  • Claude Model: Opus
  • Is this a regression?: I don't know
  • Claude Code Version: 2.1.14
  • Platform: Anthropic API
  • Operating System: macOS
  • Terminal: Ghostty (not in dropdown - similar to iTerm2/Warp)
github-actions[bot] · 8 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/19632
  2. https://github.com/anthropics/claude-code/issues/17913
  3. https://github.com/anthropics/claude-code/issues/12046

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

brendandebeasi · 8 months ago

Update: Additional Issue Found

The preferredNotifChannel: none setting is being ignored in two ways:

  1. OSC notifications still sent to terminal (original report)
  2. terminal-notifier called directly - Claude Code detects terminal-notifier in PATH and uses it directly, completely bypassing the preferredNotifChannel setting

Evidence from macOS notification database shows notifications with title "Claude Code Finished" coming from fr.julienxx.oss.terminal-notifier even with preferredNotifChannel: none.

Workaround: Move terminal-notifier out of PATH. Custom hooks can still use it via absolute path.

github-actions[bot] · 8 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.