Claude Code Pushover Notifications
Send push notifications to your mobile device when Claude Code events occur (idle prompts, permission requests, stops, etc).
Read the PUSHOVER_NOTIFICATIONS_README.md for more details
Features
- Event Hook Integration: Integrates with Claude Code hooks system
- Rate Limited: Maximum 1 notification per 30 seconds to avoid spam
- Priority Queue: Stop and PermissionRequest events are queued and sent when rate limit allows
- Daemon Process: Runs as a background daemon to handle notifications
- Configurable: Uses environment variables for API credentials
Setup
1. Install Dependencies
pip install -r requirements.txt
2. Configure Pushover
- Sign up for a free account at pushover.net
- Install the Pushover app on your mobile device
- Create a new application at pushover.net/apps
- Note your User Key (from your dashboard) and App Token (from your new app)
3. Configure Environment Variables
Edit .env and add your Pushover credentials:
PUSHOVER_USER_KEY=your_user_key_here
PUSHOVER_APP_TOKEN=your_app_token_here
4. Start the Daemon
python3 claude_pushover_daemon.py
Or run it as a background service using the provided script:
./claude_pushover_service.sh start
5. Configure Claude Code Hook
Add the following to your Claude Code hooks configuration:
{
"hooks": {
"notification": "./claude_hook.py",
"stop": "./claude_hook.py",
"permission_request": "./claude_hook.py"
}
}Files
- claude_hook.py: Hook script that receives Claude Code events and forwards to daemon
- claude_pushover_daemon.py: Background daemon that sends rate-limited notifications
- pushover_notifications.py: Standalone script for testing Pushover notifications
- claude_pushover_service.sh: Service management script for the daemon
Usage
Once configured, the daemon will automatically send notifications when:
- Claude Code becomes idle (idle_prompt)
- Claude Code requests permission (permission_prompt)
- Claude Code stops
Rate Limiting
To prevent notification spam, the daemon enforces a 30-second rate limit between notifications:
- Stop and PermissionRequest events are queued and sent after the rate limit expires
- Notification events are dropped if received during the rate limit window
Testing
Test your Pushover configuration with:
python3 pushover_notifications.py
This will send test notifications to verify your setup.
License
MIT License - feel free to modify and distribute