A lightweight macOS notification system that alerts you when Claude Code (or any long-running terminal task) completes. Never miss when your AI assistant finishes thinking or when your builds are done!
- π΅ Audio Notifications - Plays system sounds when tasks complete
- π± Desktop Alerts - Native macOS notifications
- π Quick Setup - One-line installation
- β‘ Lightweight - Pure bash, no dependencies
- π¨ Customizable - Multiple sounds and message options
- π§ Flexible - Works with any command-line tool
- π» Shell Agnostic - Supports bash and zsh
# Get notified when Claude finishes thinking
$ notify-done
π *chime* "Claude Code: Task complete! Ready for input."
# Auto-notify after any command
$ run-notify ./gradlew build
Building... Done!
π *hero sound* "Claude Code: Build complete!"curl -sSL https://raw.githubusercontent.com/YOUR_USERNAME/claude-notifier/main/install_notifications.sh | bash- Clone the repository:
git clone https://github.com/YOUR_USERNAME/claude-notifier.git
cd claude-notifier- Run the installer:
bash install_notifications.sh- Reload your shell:
source ~/.zshrc # or ~/.bashrc- Test it:
notify-test| Command | Description | Use Case |
|---|---|---|
notify-done |
Task complete notification | When Claude finishes processing |
notify-test |
Test the system | Verify installation |
notify-error |
Error notification | When something goes wrong |
notify-build |
Build complete | After compilation |
run-notify <cmd> |
Auto-notify any command | Wrap any long-running task |
For even quicker access:
ndβnotify-doneneβnotify-errorntβnotify-test
# Quick notification when Claude is done
nd
# Get notified after a build
run-notify ./gradlew build
# Custom notification
notify custom "Deploy complete!" "Success" "Hero"
# Chain multiple commands
npm install && npm test && notify-done
# Use with conditional execution
make || notify-errorThe script uses macOS system sounds. Available options:
| Sound | Best For | Description |
|---|---|---|
Glass |
Default | Pleasant chime |
Hero |
Success | Triumphant sound |
Basso |
Errors | Low warning tone |
Ping |
Attention | Simple ping |
Pop |
Quick tasks | Soft pop |
Submarine |
Deep focus | Deep submarine ping |
List all available sounds:
notify list# Custom message with specific sound
notify custom "Your message" "Title" "Sound"
# Examples
notify custom "Tests passed!" "CI/CD" "Hero"
notify custom "Merge conflict" "Git" "Basso"# Add to your workflow when using Claude
# 1. Start a long Claude task
# 2. Switch to terminal
# 3. Type: nd
# 4. Get notified when ready!# Gradle
alias gradle-notify='run-notify ./gradlew'
gradle-notify build
# NPM
alias npm-notify='run-notify npm'
npm-notify install
# Make
alias make-notify='run-notify make'
make-notify allAdd to .git/hooks/post-commit:
#!/bin/bash
notify custom "Commit successful" "Git" "Pop"# Notify only on success
command && notify-done
# Notify only on failure
command || notify-error
# Always notify with appropriate message
command && notify-done || notify-error# Pomodoro timer
run-notify sleep 1500 # 25 minutes
# Meeting reminder
(sleep 3300 && notify custom "Meeting in 5 minutes!" "Calendar" "Ping") &#!/bin/bash
# my-long-script.sh
echo "Starting process..."
# ... long running tasks ...
# Notify on completion
source ~/scripts/claude-notify/notify_complete.sh
notify doneThe installer:
- Creates
~/scripts/claude-notify/directory - Installs the notification script
- Adds aliases to your shell profile (
.zshrcor.bashrc) - Makes commands available in all future terminal sessions
~/
βββ scripts/
β βββ claude-notify/
β βββ notify_complete.sh
βββ .zshrc (or .bashrc)
βββ # Added aliases
# Reload your shell configuration
source ~/.zshrc # or ~/.bashrc
# Or open a new terminal window- Check System Preferences β Sound β Sound Effects volume
- Ensure "Play sound effects through" is set correctly
- Test with:
afplay /System/Library/Sounds/Glass.aiff
- System Preferences β Notifications & Focus
- Allow notifications from Terminal
- Check Do Not Disturb is off
# Test sound only
afplay /System/Library/Sounds/Glass.aiff
# Test notification only
osascript -e 'display notification "Test" with title "Test"'
# Test the script directly
~/scripts/claude-notify/notify_complete.sh testContributions are welcome! Feel free to:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'β¨ Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- π§ Linux support (using
notify-sendandpaplay) - πͺ Windows support (PowerShell notifications)
- π¨ More notification styles/themes
- π Statistics tracking (how many notifications sent)
- βοΈ Configuration file support
- π Web dashboard
- π± Mobile app notifications
- π IDE plugins
- terminal-notifier - Send macOS notifications from terminal
- noti - Monitor a process and trigger notifications
- ntfy - Cross-platform notification tool
This project is licensed under the MIT License - see below:
MIT License
Copyright (c) 2024 [Your Name]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Inspired by the need to know when Claude finishes processing
- Built for developers who multitask while waiting for AI responses
- Uses native macOS notification system and sounds
- Linux support
- Windows support
- Custom sound packs
- Integration with more AI tools
- Browser extension
- Slack/Discord webhooks
- Configuration GUI
- π Report bugs
- π‘ Request features
- π¬ Discussions
- β Star this repo if you find it useful!
When working with Claude Code or running long builds, it's easy to get distracted and forget to check back. This simple tool solves that problem by alerting you the moment your task completes, helping you maintain flow while staying productive.
Perfect for:
- π€ AI-assisted coding sessions
- ποΈ Long build processes
- π§ͺ Test suite runs
- π¦ Package installations
- π CI/CD pipelines
- β° Any time-consuming terminal task
Made with β€οΈ for developers who value their time and focus
If this tool saves you time, consider buying me a coffee β