Multi-channel notification tool for Claude Code - sends alerts via Bark (iOS push), desktop notifications, and sound alerts!
็ฎไฝไธญๆ | English
| Feature | Description |
|---|---|
| ๐ฑ Bark Push | iOS push notifications with custom icons and sounds |
| ๐ป System Notify | Desktop notifications on macOS/Linux/Windows |
| ๐ Sound Alert | Cross-platform sound with different tones per level |
| ๐ Zero Dependency | Pure Python standard library - no pip install needed |
| ๐ค Smart Trigger | Auto-detects task success/failure status |
| Level | Icon | Sound | Use Case |
|---|---|---|---|
success |
โ | Glass | Build success, tests passed, deployment complete |
error |
โ | Basso | Build failed, tests failed, command error |
info |
โน๏ธ | Ping | Task started, status update, warning |
- Python 3.6+ (pre-installed on macOS/Linux)
- gum (for interactive installation)
brew install gum
- Bark App (iOS push, optional but recommended)
git clone https://github.com/nocoo/skill-task-notifier.git
cd skill-task-notifier- Open Bark App and copy your push key
- Create configuration file:
cp config.example.json config.json- Edit
config.jsonin the skill root and add your Bark Key:
{
"bark_server": "https://api.day.app",
"bark_key": "YOUR_BARK_KEY_HERE",
"bark_group": "Claude Code",
"sound_enabled": true,
"system_notify_enabled": true
}๐ก Tip: If you don't configure Bark Key, system notifications and sound alerts will still work.
./install.shThe interactive installer (powered by gum) will:
- Create
~/.claude/skills/task-notifier/directory - Copy all skill files (not symlinks - more reliable)
- Set executable permissions
- Prompt for Bark key configuration
- Optionally send a test notification
- Verify installation integrity
Add to your global config file ~/.claude/CLAUDE.md:
## Task Notifications
When completing tasks that take more than 1 minute, or when I explicitly ask for notification:
- Use the TaskNotifier skill to send me a notification
- Use 'success' level if the task completed without errors
- Use 'error' level if any command failed (exit code != 0)
- Use 'info' level for status updates
Example:python3 ~/.claude/skills/task-notifier/scripts/notify.py success "Build completed in 2m 15s"
# Let Claude notify you after build
"Build the project and notify me when done"
# Notify after tests
"Run all tests and send me a notification when finished"
# Notify after long task
"Deploy to production and notify me of the result"
# Explicit notification request
"Run the migration and tell me when it's done"
# Test success notification
python3 ~/.claude/skills/task-notifier/scripts/notify.py success "Test notification"
# Test error notification
python3 ~/.claude/skills/task-notifier/scripts/notify.py error "Test error"
# Test info notification
python3 ~/.claude/skills/task-notifier/scripts/notify.py info "Test info"skill-task-notifier/
โโโ .gitignore # Git ignore rules
โโโ config.example.json # Configuration template
โโโ install.sh # Installation script
โโโ README.md # This file (English)
โโโ README.zh-CN.md # Chinese version
โโโ requirements.txt # Zero dependency declaration
โโโ run_tests.sh # Test runner script
โโโ SKILL.md # Skill definition (used by Claude)
โโโ config.json # Your configuration (not in git)
โโโ scripts/
โโโ notify.py # Core notification logic (zero-dep Python)
โโโ run.py # Unified entry point (for consistency)
โโโโโโโโโโโโโโโโโโโ
โ Claude Code โ
โ (Task Done) โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ TaskNotifier Skill โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ 1. Read config.json (root) โ โ
โ โ 2. Determine level โ โ
โ โ 3. Send Bark Push (iOS) โ โ
โ โ 4. Show System Notification โ โ
โ โ 5. Play Sound โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โ
โ โ Bark โ โ Desktop โ โ Sound โ โ
โ โ (iOS) โ โ (macOS) โ โ (afplay)โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Run all tests
./run_tests.sh
# Or use unittest directly
python3 -m unittest discover -s tests -p 'test_*.py' -v
# With coverage report (requires: pip install coverage)
coverage run --source='scripts' -m unittest discover -s tests
coverage report -m
coverage html| Metric | Value |
|---|---|
| Tests | 50 |
| Pass Rate | 100% |
| Code Coverage | 90% |
| Lines | ~200 |
| Parameter | Type | Default | Description |
|---|---|---|---|
bark_server |
string | https://api.day.app |
Bark server URL |
bark_key |
string | "" |
Your Bark push key |
bark_group |
string | "Claude Code" |
Message group name |
sound_enabled |
boolean | true |
Enable sound alerts |
system_notify_enabled |
boolean | true |
Enable desktop notifications |
- Check Bark Key: Verify
bark_keyis correctly set inconfig.json(skill root) - Check Sound: Ensure system volume is up on macOS
- Check Permissions: Ensure
notify.pyhas execute permission (chmod +x scripts/notify.py)
# Grant Terminal notification permission
# System Settings โ Notifications โ Terminal โ Allow Notifications# Ubuntu/Debian
sudo apt install libnotify-bin
# Fedora/RHEL
sudo dnf install libnotify
# Arch Linux
sudo pacman -S libnotifyContributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details
Created by @nocoo
- Bark - iOS push notification service
- Claude Code - AI programming assistant
็ฎไฝไธญๆ | English