vibetunnel/docs/push-notification.md
Peter Steinberger d4b7962800
Refactor notification preferences system (#469)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Alex Fallah <alexfallah7@gmail.com>
2025-07-27 13:32:11 +02:00

38 lines
1.9 KiB
Markdown

# Push Notifications in VibeTunnel
VibeTunnel provides real-time alerts for terminal events via native macOS notifications and web push notifications. The system is primarily driven by the **Session Monitor**, which tracks terminal activity and triggers alerts.
## How It Works
The **Session Monitor** is the core of the notification system. It observes terminal sessions for key events and dispatches them to the appropriate notification service (macOS or web).
### Key Monitored Events
- **Session Start/Exit**: Get notified when a terminal session begins or ends.
- **Command Completion**: Alerts for long-running commands.
- **Errors**: Notifications for commands that fail.
- **Terminal Bell**: Triggered by programs sending a bell character (`^G`).
- **Claude "Your Turn"**: A special notification when Claude AI finishes a response and is awaiting your input.
## Native macOS Notifications
The VibeTunnel macOS app provides the most reliable and feature-rich notification experience.
- **Enable**: Go to `VibeTunnel Settings > General` and toggle **Show Session Notifications**.
- **Features**: Uses the native `UserNotifications` framework, respects Focus Modes, and works in the background.
## Web Push Notifications
For non-macOS clients or remote access, VibeTunnel supports web push notifications.
- **Enable**: Click the notification icon in the web UI and grant browser permission.
- **Technology**: Uses Service Workers and the Web Push API.
## Troubleshooting
- **No Notifications**: Ensure they are enabled in both VibeTunnel settings and your OS/browser settings.
- **Duplicate Notifications**: You can clear old or duplicate subscriptions by deleting `~/.vibetunnel/notifications/subscriptions.json`.
- **Claude Notifications**: If Claude's "Your Turn" notifications aren't working, you can try forcing it to use the terminal bell:
```bash
claude config set --global preferredNotifChannel terminal_bell
```