Skip to content

A Python notification service that monitors and alerts on task execution status. Integrates with messaging platforms to keep you informed about automated workflows.

Notifications You must be signed in to change notification settings

nocoo/skill-task-notifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ‰ Claude Code Skill - TaskNotifier

Multi-channel notification tool for Claude Code - sends alerts via Bark (iOS push), desktop notifications, and sound alerts!

Skill License Tests


็ฎ€ไฝ“ไธญๆ–‡ | English


โœจ Features

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

๐ŸŽฏ Notification Levels

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

๐Ÿ“‹ Prerequisites

  • Python 3.6+ (pre-installed on macOS/Linux)
  • gum (for interactive installation)
    brew install gum
  • Bark App (iOS push, optional but recommended)

๐Ÿš€ Installation

Step 1: Clone or Download

git clone https://github.com/nocoo/skill-task-notifier.git
cd skill-task-notifier

Step 2: Configure Bark Key (Optional but Recommended)

  1. Open Bark App and copy your push key
  2. Create configuration file:
cp config.example.json config.json
  1. Edit config.json in 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.

Step 3: Run Installer

./install.sh

The 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

๐Ÿ“– Usage

Enable in Claude Code

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"

Example Prompts

# 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"

Manual Testing

# 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"

๐Ÿ“ Project Structure

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)

๐Ÿ”ง How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  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)โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿงช Testing

# 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

Test Coverage

Metric Value
Tests 50
Pass Rate 100%
Code Coverage 90%
Lines ~200

๐Ÿ”ง Configuration

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

โ“ Troubleshooting

No notifications received?

  1. Check Bark Key: Verify bark_key is correctly set in config.json (skill root)
  2. Check Sound: Ensure system volume is up on macOS
  3. Check Permissions: Ensure notify.py has execute permission (chmod +x scripts/notify.py)

macOS notification permission denied

# Grant Terminal notification permission
# System Settings โ†’ Notifications โ†’ Terminal โ†’ Allow Notifications

Linux notify-send not found

# Ubuntu/Debian
sudo apt install libnotify-bin

# Fedora/RHEL
sudo dnf install libnotify

# Arch Linux
sudo pacman -S libnotify

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“„ License

MIT License - see LICENSE file for details

๐Ÿ‘จโ€๐Ÿ’ป Author

Created by @nocoo

๐Ÿ™ Acknowledgments

  • Bark - iOS push notification service
  • Claude Code - AI programming assistant

็ฎ€ไฝ“ไธญๆ–‡ | English

About

A Python notification service that monitors and alerts on task execution status. Integrates with messaging platforms to keep you informed about automated workflows.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •