Auto-discovered marketplace from konstantindenerz/cc-notifynub
npx claudepluginhub konstantindenerz/cc-notifynubtmux popup notifications with a pixel-art mascot for Claude Code
tmux popup notifications with a pixel-art mascot for Claude Code.
▄▄▄▄▄
█ ▲ ▲ █ NotifyNub
█ ▄▄▄ █ Claude Code notification
▀▀▀▀▀▀▀
Shows a small tmux popup (top-right corner) when Claude Code finishes a task or needs permission to use a tool. The popup features NotifyNub — a tiny mascot with three emotional states.
| State | Eyes | Trigger | Behavior |
|---|---|---|---|
| done | ▲ ▲ | Claude finished | Auto-closes after 5s |
| permission | ▓ ▓ | Tool approval needed | Auto-closes after 10s |
| idle | ▒ ▒ | Default | — |
Outside tmux, falls back to macOS system notifications.
/plugin marketplace add konstantindenerz/cc-notifynub
/plugin install cc-notifynub@cc-notifynub
Copy scripts/notify.sh to ~/.claude/hooks/ and add to ~/.config/claude/settings.json:
{
"hooks": {
"Stop": [{ "hooks": [{ "type": "command", "command": "~/.claude/hooks/notify.sh done" }] }],
"Notification": [{ "matcher": "permission_prompt", "hooks": [{ "type": "command", "command": "~/.claude/hooks/notify.sh permission" }] }]
}
}
| Key | Action |
|---|---|
| Enter | Jump to Claude window |
| q | Close popup |
| other | Ignored |
stop_hook_active to avoid infinite hook cycles# Test locally with --plugin-dir
claude --plugin-dir ./
# Or run directly
./scripts/notify.sh --test done
./scripts/notify.sh --test permission
NOTIFY_FORCE=1 bypasses the window-active check.
display-popup -b rounded)MIT