
notifications
by adaptyvbio
Curated Claude Code plugins for AI-assisted development workflows
SKILL.md
name: notifications description: "Desktop notification system for Claude Code. Use when discussing notifications, toastify setup, or when troubleshooting missing notification dependencies." version: 1.0.0
Desktop Notifications for Claude Code
This plugin sends desktop notifications via toastify when Claude needs your attention, so you can switch to other tasks while Claude works.
Installing toastify
The plugin requires toastify, a cross-platform CLI built on notify-rust.
Linux (Cargo)
cargo install toastify
On Arch Linux, it's available in the AUR:
paru -S toastify
# or: yay -S toastify
macOS
# Install Rust if needed
brew install rust
cargo install toastify
Note: macOS support uses mac-notification-sys under the hood, which provides a subset of Linux features.
Windows
# Install Rust from https://rustup.rs first, then:
cargo install toastify
Windows 10/11 notifications work via Windows Runtime. Earlier versions have limited support.
Verify Installation
Run the check script to verify toastify is installed:
~/.claude/plugins/user-notify/scripts/check-toastify.sh
Or test directly:
toastify send "Test" "Notification working"
When Notifications Fire
By default, notifications fire on:
| Event | Description |
|---|---|
| Questions | Claude asks you a question via AskUserQuestion |
| Permission prompts | Claude needs permission to run a command |
| Idle (60s) | Claude has been waiting for input for 60+ seconds |
The Stop event (every Claude response) is disabled by default to reduce noise.
Configuration
Configuration uses YAML frontmatter in markdown files. Settings cascade from global defaults to project-specific overrides.
Config Locations
| Location | Purpose |
|---|---|
~/.claude/user-notify.local.md | Global defaults for all projects |
$PROJECT/.claude/user-notify.local.md | Project-specific overrides |
Precedence (highest to lowest):
- Project-local config
- Global config
- Built-in defaults
Config Format
---
notify_on_stop: false # Notify after every Claude response
notify_on_questions: true # Notify when Claude asks questions
notify_on_permission: true # Notify on permission prompts
notify_on_idle: true # Notify after 60s idle
urgency: normal # low | normal | critical
timeout: 5000 # Auto-dismiss after ms (0 = no timeout)
---
Example: Global + Local Override
Set global defaults in ~/.claude/user-notify.local.md:
---
notify_on_stop: false
notify_on_questions: true
timeout: 3000
---
Override for a specific project in $PROJECT/.claude/user-notify.local.md:
---
notify_on_stop: true # Enable stop notifications for this project
urgency: critical # Make them persistent
---
The project inherits notify_on_questions: true and timeout: 3000 from global, but overrides notify_on_stop and urgency.
Urgency Levels
low— Subtle notification, may not make a soundnormal— Standard notification (default)critical— Persistent notification that stays until dismissed
Timeout
Set timeout: 0 to make notifications persist until you dismiss them manually. Otherwise, notifications auto-dismiss after the specified milliseconds.
Notification Content
Title Format
[HEADING branch@dirname] Event
The title includes context to identify which project/worktree needs attention:
| Component | Source | Fallback |
|---|---|---|
HEADING | First # heading from CLAUDE.md | omitted |
branch | Current git branch | omitted |
dirname | Directory basename | always present |
Example Titles
| Scenario | Title |
|---|---|
| Full context | [adaptyv monorepo feature-x@wt1] Question |
| No CLAUDE.md | [feature-x@wt1] Question |
| No git repo | [adaptyv monorepo @wt1] Question |
| Bare directory | [wt1] Question |
Body
The notification body shows context-specific information when available:
- Questions: The actual question text (truncated to 120 chars)
- Permission: The permission request message
- Other events: Generic description
Troubleshooting
"toastify not found"
The hook outputs installation instructions when toastify is missing. Follow the platform-specific instructions above.
Notifications not appearing (Linux)
Ensure a notification daemon is running. Common options:
dunst(lightweight, highly configurable)mako(Wayland)- Desktop environment's built-in (GNOME, KDE, etc.)
Check D-Bus notification service:
dbus-send --print-reply --dest=org.freedesktop.Notifications \
/org/freedesktop/Notifications org.freedesktop.Notifications.GetCapabilities
Notifications not appearing (macOS)
Check System Preferences > Notifications and ensure notifications are enabled for Terminal (or your terminal app).
Too many notifications
Edit .claude/user-notify.local.md and disable unwanted triggers. The notify_on_stop: false setting (default) prevents notifications after every response.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です