AgentNotch
FeaturesWorks withBlogDownload
Buy $9.99

AgentNotch for macOS

v2.2.4

Your coding agents, in the notch.

Product

  • Buy
  • Features
  • Blog
  • Download
  • Account
  • What's new
  • Get it free
Compare
  • vs Vibe Island
  • vs tmux
  • vs terminal-notifier
  • vs iTerm alerts
  • vs Claude Code alerts
  • vs watching the terminal
Guides
  • Monitor agents on macOS
  • When Claude Code finishes
  • When Claude Code needs input
  • Notifications not working
  • Cursor agent notifications
  • Codex notifications
  • See all
Works with
  • Claude Code
  • Cursor
  • Codex
  • Kimi
  • OpenCode
  • Antigravity
  • See all

© 2026 Piotr Jura

AccountPrivacyTermsBuilt by Agentic Developer
AgentNotch
FeaturesWorks withBlogDownload
Buy $9.99
AgentNotch/Works with/Claude Code notifications in Ghostty

Claude Code notifications in Ghostty

Ghostty is one of three terminals where Claude Code notifications work out of the box. How they work, how to test them, and what to do when a banner is not enough.

GhosttyFileEditViewWindow10:24

❯ claude

● Reading docs/licensing.md

⎿ Read 240 lines

⎿ Grepped "claimToken" (11 files)

● Wiring the license claim endpoint

⎿ Edited lib/license/store.ts (+38 −6)

⎿ Edited app/api/license/claim/route.ts (+21 −3)

⎿ Ran npm test (42 passed)

● Run npm run db:migrate?

❯ 1. Yes 2. No, tell Claude what to do

waiting for your approval

❯ cursor agent

▲ Tuning the checkout drawer spring

✓ grep useDrawerSpring (14 hits)

✓ read components/checkout/Drawer.tsx

✓ read lib/motion/springs.ts

✓ edit components/checkout/Drawer.tsx (+42 −11)

✓ edit lib/motion/springs.ts (+8 −2)

✓ pnpm build (2.4s)

running pnpm test drawer

❯ codex

• Chasing the flaky webhook retry test

✓ read app/api/stripe/webhook/route.ts

✓ read tests/webhook.spec.ts

✗ pnpm test webhook.spec.ts (1 failed)

✓ patched the retry backoff

✓ pnpm test webhook.spec.ts

13 passed — ready for review

3
5h34%2h11mWeek41%~4dWeek58%~3dMonth22%~13d

Ghostty is one of three terminals where Claude Code notifications work with zero configuration. Kitty and iTerm2 are the other two, and iTerm2 needs a settings trip first. Everywhere else, Claude Code sends nothing at all until you change a setting.

So if you picked Ghostty, this part is already done. Run an agent, switch to another app, and a banner lands when Claude needs you.

How it actually works

Claude Code emits an OSC 9 escape sequence when it wants your attention. Ghostty turns that into a real macOS notification. The relevant Ghostty setting is desktop-notifications, which defaults to true, so there's normally nothing in your config file about it. If you inherited a config from someone else, check that it isn't set to false:

font-mono
grep desktop-notifications ~/.config/ghostty/config

Test the path end to end without involving Claude Code at all:

font-mono
printf '\e]9;Ghostty test\a'

Switch to another app while that runs. A banner means the whole chain works and any remaining problem is in Claude Code's settings, not Ghostty's. No banner means Ghostty doesn't have notification permission, which lives in System Settings, Notifications.

Two things that surprise people. The banner fires even when the Ghostty window is focused, which reads as a bug and isn't one. And inside tmux nothing arrives at all, because tmux swallows the sequence before Ghostty sees it. Fix that with set -g allow-passthrough on in ~/.tmux.conf, then tmux source-file ~/.tmux.conf.

Where a banner stops helping

One Ghostty window, one agent: a banner is the right tool and you can stop reading.

The trouble starts at three windows. Every banner looks the same. None of them says which project, which branch, or which of the three is still waiting, and once it fades there's nothing to go back to. You end up cycling windows to find the one that pinged, which is the exact work the notification was supposed to save.

Agent sessions in one AgentNotch panel, each row carrying the glyph of the app running it — Ghostty, iTerm2, Warp, Cursor, Conductor and the Claude app
Two sessions waiting, four working. Row three is the Ghostty one — the terminal glyph after its branch; the others are in Claude, iTerm2, Conductor, Cursor and Warp.

AgentNotch reads the session state itself rather than listening for terminal escape sequences, so nothing needs configuring on the Ghostty side and nothing breaks when a Ghostty or Claude Code release changes how notifications are emitted. A waiting session stays marked until you deal with it. Clicking the row jumps straight to that Ghostty tab, matched on its working directory.

Running several terminals at once

Ghostty for one project, an editor's terminal for another, Codex somewhere else: this is where naming the host earns its place. Each row shows which app the session is running in, so "the one that needs me is in Ghostty" is readable at a glance instead of a hunt.

Setup

Download AgentNotch, drag it to Applications, launch it. It picks up running agents with no config and no keys, in Ghostty or any other terminal. Free for 14 days, no card.

Questions

Do Claude Code notifications work in Ghostty?
Yes, with no setup. Ghostty is one of only three terminals (with Kitty and iTerm2) where Claude Code sends a desktop notification by default, and Ghostty forwards it to macOS Notification Center without any configuration.
How do I test Ghostty desktop notifications?
Run printf '\e]9;test\a' in a Ghostty window, then switch to another app while it runs. If no banner appears, check Ghostty's notification permission in System Settings, Notifications, and confirm desktop-notifications is not set to false in ~/.config/ghostty/config.
Why do I get a Ghostty notification even when the window is focused?
Ghostty posts the banner whenever the escape sequence arrives, including while the window is in the foreground. It is a known behaviour rather than a misconfiguration on your side.
Does AgentNotch work with Ghostty?
Yes. AgentNotch reads agent session state directly rather than watching the terminal, so Ghostty needs no configuration. It also names Ghostty in each row, so with several terminals open you can see which sessions are running there.
Do Ghostty notifications work inside tmux?
Not by default, because tmux swallows the escape sequence. Add 'set -g allow-passthrough on' to ~/.tmux.conf and run 'tmux source-file ~/.tmux.conf'.

Keep reading

  • Claude Code notifications not working
  • Using AgentNotch with iTerm2
  • terminal-notifier for coding agents
  • Run agents in parallel with git worktrees

See which agent needs you.

Try AgentNotch free for 14 days, no card. Watch Claude Code, Cursor, and Codex from your Mac's menu bar.

Start free trialSee pricing

Updated 2026-09-19

AgentNotch for macOS

v2.2.4

Your coding agents, in the notch.

Product

  • Buy
  • Features
  • Blog
  • Download
  • Account
  • What's new
  • Get it free
Compare
  • vs Vibe Island
  • vs tmux
  • vs terminal-notifier
  • vs iTerm alerts
  • vs Claude Code alerts
  • vs watching the terminal
Guides
  • Monitor agents on macOS
  • When Claude Code finishes
  • When Claude Code needs input
  • Notifications not working
  • Cursor agent notifications
  • Codex notifications
  • See all
Works with
  • Claude Code
  • Cursor
  • Codex
  • Kimi
  • OpenCode
  • Antigravity
  • See all

© 2026 Piotr Jura

AccountPrivacyTermsBuilt by Agentic Developer