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 notifications', 'get notified when Claude needs attention', 'setup claude alerts', or 'install notification hooks'. Handles local terminal-notifier, SSH reverse tunnel for devpods, launchd listener, tmux passthrough, and Claude Code hook configuration.

3,891 stars

Best use case

claude-notifications is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Set up native macOS notifications for Claude Code on local and devpod/remote environments. Use when the user asks to 'setup notifications', 'configure devpod notifications', 'get notified when Claude needs attention', 'setup claude alerts', or 'install notification hooks'. Handles local terminal-notifier, SSH reverse tunnel for devpods, launchd listener, tmux passthrough, and Claude Code hook configuration.

Teams using claude-notifications should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/claude-notifications/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/ajitsingh25/claude-notifications/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/claude-notifications/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How claude-notifications Compares

Feature / Agentclaude-notificationsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Set up native macOS notifications for Claude Code on local and devpod/remote environments. Use when the user asks to 'setup notifications', 'configure devpod notifications', 'get notified when Claude needs attention', 'setup claude alerts', or 'install notification hooks'. Handles local terminal-notifier, SSH reverse tunnel for devpods, launchd listener, tmux passthrough, and Claude Code hook configuration.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 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-notifier` for 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 `Notification` hooks for `permission_prompt`, `idle_prompt`, and `elicitation_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

```bash
# Local only
python3 scripts/setup_notifications.py

# Local + devpods
python3 scripts/setup_notifications.py --devpod <host1> --devpod <host2>
```

Run from the skill's directory: `~/.claude/skills/claude-notifications/`

The script handles:
- Installs `terminal-notifier` via brew if missing
- Copies `notify.py` to `~/.claude/scripts/`
- Creates and starts the reverse tunnel listener (`notify-listener.py`) via launchd
- Adds `RemoteForward 19876` to `~/.ssh/config` for each devpod
- Copies `notify.py` to each devpod and configures Claude Code hooks there
- Adds `set -g allow-passthrough on` to 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:

1. **Enable notifications for your terminal** in System Settings > Notifications > [Warp / iTerm / Terminal]. Ensure "Allow Notifications" is ON and alert style is "Alerts" or "Banners".
2. **Enable notifications for Script Editor** in System Settings > Notifications > Script Editor (terminal-notifier routes through it).
3. **Turn off Do Not Disturb** or add "Script Editor" and your terminal app to Focus exceptions.
4. **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 claude` and `lsof -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"`

Related Skills

afrexai-claude-code-production

3891
from openclaw/skills

Complete Claude Code productivity system — project setup, prompting patterns, sub-agent orchestration, context management, debugging, refactoring, TDD, and shipping 10X faster. Zero scripts needed.

ask-claude

3891
from openclaw/skills

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Coding & Development

claude-audit

3891
from openclaw/skills

Full project audit — launches 5 parallel AI agents (security, bugs, dead code, architecture, performance) to scan your codebase read-only, then compiles a unified report with health grade (A+ to F) and offers surgical fixes. Language-agnostic. Zero config.

Claude Skills 开发框架架构指导手册

3891
from openclaw/skills

## 1. 项目概述 (Overview)

claude-code-usage

3891
from openclaw/skills

Check Claude Code OAuth usage limits (session & weekly quotas). Use when user asks about Claude Code usage, remaining limits, rate limits, or how much Claude usage they have left. Includes automated session refresh reminders and reset detection monitoring.

ClaudeHemat

3891
from openclaw/skills

# Introduction

claude-code-cli

3891
from openclaw/skills

Delegate coding tasks to Claude Code CLI via background process. Use when: building features, reviewing PRs, refactoring codebases, or iterative coding that needs file exploration. Supports interactive PTY mode for confirmations/permissions and headless pipe mode for automation. NOT for: simple one-liner fixes (just edit), reading code (use read tool), or any work in ~/.openclaw/ workspace.

Claude Code CLI for OpenClaw

3891
from openclaw/skills

Install, authenticate, and use Claude Code CLI as a native coding tool for any OpenClaw agent system.

claude-relay

3891
from openclaw/skills

Relay operator for Claude Code via tmux across multiple projects. Use when the user wants to start/continue a Claude Code terminal session, send prompts, read output, or manage background Claude sessions by project name/path.

claude-usage

3891
from openclaw/skills

Check Claude Code / Claude Max usage limits. Run when user asks about usage, limits, quota, or how much Claude capacity is left.

Pocket Alert – Push Notifications for iOS and Android

3891
from openclaw/skills

The Pocket Alert (pocketalert.app) skill for OpenClaw enables OpenClaw agents and workflows to send push notifications to iOS and Android devices. It is used to deliver alerts and updates from automated tasks, workflows, and background processes.

claude-code-statusline

3891
from openclaw/skills

Install and configure a custom Claude Code status line showing real-time token usage, context window percentage, git branch, and color-coded warnings. Use when the user asks to "install statusline", "setup statusline", "configure statusline", "setup status line", "install status bar", "show token usage", "context window display", "statusline colors", "statusline thresholds", or wants to customize their Claude Code status bar display.