Claude Notifications
/install claude-notifications
Claude Code Notifications Setup
Set up native macOS notifications for Claude Code — works both locally and on remote devpods via SSH reverse tunnel. Get alerts with sound whenever Claude needs permission, is waiting for input, or requires MCP interaction.
What It Does
- Local: Uses
terminal-notifierfor native macOS notifications when Claude needs permission, goes idle, or requires MCP input - Devpod: Routes notifications from remote devpods through an SSH reverse tunnel to the local
terminal-notifier, with OSC 9 fallback - Hooks: Configures Claude Code
Notificationhooks forpermission_prompt,idle_prompt, andelicitation_dialog
Platform
macOS only. The setup script will exit with a clear error if run on Linux/devpod. It uses brew, launchctl, and terminal-notifier — all macOS-only. The script SSHs into devpods to configure them remotely, so devpod setup is also done from your Mac.
Important: Run on Local Mac Only
Always confirm the user is running this on their local Mac, NOT on a devpod. The entire setup — including devpod configuration — is done from the local machine via SSH. The script SSHs into devpods to configure them remotely. If the user is on a devpod, ask them to switch to their local Mac terminal first.
Setup Workflow
1. Ask for devpod SSH hosts
Ask the user which devpod(s) to configure. Example hosts: username.devpod-ind, username-web.devpod-ind. If local-only setup, skip devpod args.
2. Run the setup script
# Local only
python3 scripts/setup_notifications.py
# Local + devpods
python3 scripts/setup_notifications.py --devpod \x3Chost1> --devpod \x3Chost2>
Run from the skill's directory: ~/.claude/skills/claude-notifications/
The script handles:
- Installs
terminal-notifiervia brew if missing - Copies
notify.pyto~/.claude/scripts/ - Creates and starts the reverse tunnel listener (
notify-listener.py) via launchd - Adds
RemoteForward 19876to~/.ssh/configfor each devpod - Copies
notify.pyto each devpod and configures Claude Code hooks there - Adds
set -g allow-passthrough onto each devpod's~/.tmux.conf - Configures Claude Code notification hooks in
~/.claude/settings.json - Sends a test notification
3. Remind user of manual steps
After the script completes, always tell the user these required manual steps:
- Enable notifications for your terminal in System Settings > Notifications > [Warp / iTerm / Terminal]. Ensure "Allow Notifications" is ON and alert style is "Alerts" or "Banners".
- Enable notifications for Script Editor in System Settings > Notifications > Script Editor (terminal-notifier routes through it).
- Turn off Do Not Disturb or add "Script Editor" and your terminal app to Focus exceptions.
- Reconnect SSH sessions to devpods — existing sessions don't have the reverse tunnel. New sessions get it automatically.
Architecture
┌─────────────────────────────────────────────────┐
│ Devpod (remote) │
│ │
│ Claude Code hook → notify.py │
│ → curl localhost:19876 (reverse tunnel) │
│ → fallback: OSC 9 escape sequence │
└──────────────────┬──────────────────────────────┘
│ SSH RemoteForward 19876
┌──────────────────▼──────────────────────────────┐
│ Local Mac │
│ │
│ notify-listener.py (launchd, port 19876) │
│ → terminal-notifier → macOS Notification Center│
└─────────────────────────────────────────────────┘
Troubleshooting
- No notifications showing: Check System Settings > Notifications for both your terminal app AND "Script Editor" — both must have notifications enabled
- Do Not Disturb blocking: Add "Script Editor" to Focus exceptions, or disable DND
- Listener not running:
launchctl list | grep claudeandlsof -i :19876 - Restart listener:
launchctl unload ~/Library/LaunchAgents/com.claude.notify-listener.plist && launchctl load ~/Library/LaunchAgents/com.claude.notify-listener.plist - Listener logs:
cat ~/.claude/logs/notify-listener.log - Test locally:
python3 ~/.claude/scripts/notify.py "test" --title "Claude Code" --sound "Glass" - Test devpod tunnel: From devpod tmux session:
python3 ~/.claude/scripts/notify.py "test" --title "Claude Code" --sound "Glass" - Debug mode:
DEBUG=1 python3 ~/.claude/scripts/notify.py "test"
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install claude-notifications - 安装完成后,直接呼叫该 Skill 的名称或使用
/claude-notifications触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Claude Notifications 是什么?
Set up native macOS notifications for Claude Code on local and devpod/remote environments. Use when the user asks to 'setup notifications', 'configure devpod... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 156 次。
如何安装 Claude Notifications?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install claude-notifications」即可一键安装,无需额外配置。
Claude Notifications 是免费的吗?
是的,Claude Notifications 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Claude Notifications 支持哪些平台?
Claude Notifications 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Claude Notifications?
由 Ajit Singh(@ajitsingh25)开发并维护,当前版本 v1.0.0。