You kick off a Claude Code task. It's going to take a minute. So you step away — pour a coffee, hit the restroom, maybe even start cooking dinner.
Then your phone buzzes: "Task completed, waiting for your input."
You walk back, sit down, and pick up right where Claude left off. No staring at the terminal. No tab-switching every 30 seconds to check if it's done. Just... living your life, and getting pinged when it's your turn.
claude-notify-everywhere hooks into Claude Code and notifies you — on your Mac, on your phone, or both — whenever Claude finishes a task, needs permission, or wants your input.
Real-time Claude Code notifications on your phone via ntfy.sh — free, no account needed
macOS notification banner — click it to jump straight to your terminal (Ghostty, iTerm2, Warp, VS Code, etc.)
- Desktop notifications with click-to-activate your terminal (Ghostty, iTerm2, Terminal.app, Warp, Alacritty, WezTerm, VS Code, Cursor, Claude Desktop)
- Mobile push via ntfy.sh (recommended — free & dead simple), Bark, Pushover, or Telegram
- Sound alerts — choose from 14 macOS system sounds, preview before you pick
- Clean install/uninstall — surgically adds/removes hooks from Claude Code settings
- Zero background processes — hooks are triggered by Claude Code itself
brew install hwwn/tap/claude-notify-everywheregit clone https://github.com/hwwn/claude-notify-everywhere.git
cd claude-notify-everywhere
# Ensure dependencies are installed
brew install jq terminal-notifier
# Add to PATH
ln -s "$(pwd)/bin/claude-notify-everywhere" /usr/local/bin/claude-notify-everywhereRun the interactive setup wizard:
claude-notify-everywhere installThis will guide you through:
- Terminal selection — which app to activate when you click a notification
- Sound selection — preview and pick a notification sound
- Mobile push (optional) — set up phone notifications via your preferred provider
| Command | Description |
|---|---|
install |
Interactive setup wizard |
uninstall |
Remove all hooks from Claude Code settings |
config |
Re-run configuration (change terminal, sound, mobile) |
test |
Send a test notification to desktop and mobile |
status |
Show current configuration and hook status |
Claude Code supports hooks — commands that run at specific lifecycle events. This tool configures three hooks:
| Event | When | Notification |
|---|---|---|
| Stop | Claude finishes and waits for input | "Task completed, waiting for your input" |
| PermissionRequest | Claude needs approval for an action | "Approval needed: {tool name}" |
| Notification | Claude sends a notification | The notification message content |
Hooks are stored in ~/.claude/settings.json. Your preferences are stored separately in ~/.claude-notify-everywhere.json.
| Provider | Cost | Setup |
|---|---|---|
| ntfy.sh | Free | Install app → subscribe to a topic |
| Bark | Free | Install iOS app → copy push URL |
| Pushover | $5 one-time | Create account → get user key + API token |
| Telegram | Free | Create bot via @BotFather → get token + chat ID |
claude-notify-everywhere uninstallThis only removes the notification hooks from Claude Code settings. Your other settings remain untouched. To also remove the CLI:
brew uninstall claude-notify-everywhereMIT

