tabby-nv-bell-notify
v1.1.1
Published
Native OS notifications for terminal bell and configurable output patterns in Tabby
Downloads
348
Maintainers
Readme
tabby-nv-bell-notify
:gb:English · :jp:日本語
A Tabby plugin that shows native OS notifications when the terminal rings a bell or matches a configurable output pattern.
Useful for tools like Claude Code that pause and wait for user input — get notified even when Tabby is in the background.
Features
- Bell notification — triggers on BEL character (
\x07) emitted by any terminal process - Pattern notification — triggers when terminal output matches a user-defined regex
- Idle debounce — waits for output to stop before firing, distinguishing real prompts from startup bursts
- Native OS notifications — uses macOS / Windows system notifications (not in-app toasts)
- Focus-aware — optionally suppresses notifications while the Tabby window is focused
- Cooldown — configurable minimum interval between notifications to prevent spam
- i18n — UI follows Tabby's language setting (English / Japanese)

Installation
Install via Settings → Plugins inside Tabby, or run the following command and restart Tabby:
macOS
cd ~/Library/Application\ Support/tabby/plugins
npm install tabby-nv-bell-notifyWindows
cd "$env:APPDATA\tabby\plugins"
npm install tabby-nv-bell-notifyNotification Permission
On first use, Tabby will prompt for notification permission. If you previously denied it, enable it manually:
macOS — System Settings → Notifications → Tabby

Windows — Settings → System → Notifications → Tabby
Configuration
Open Settings → NV Bell Notify inside Tabby.
| Option | Default | Description |
|---|---|---|
| Enable notifications | true | Master switch |
| Bell notification | true | Notify on BEL character |
| Pattern notification | true | Notify on regex match |
| Only when unfocused | true | Skip notification if Tabby window is focused |
| Idle wait | 500ms | Wait for output to stop before firing. Prevents false positives from startup bursts. Set to 0 for immediate firing. |
| Cooldown | 5000ms | Minimum interval between notifications |
| Patterns | see below | List of regex patterns with labels |
Default patterns
| Label | Regex | Screen | Enabled |
|---|---|---|---|
| Claude Code - Permission | Do you want to (proceed\|make this edit\|allow\|continue\|use this API key) | Any | ✓ |
| Claude Code - Plan Mode | (Enter\|Exit) plan mode\?\|How should the plan be implemented | Any | ✓ |
| Claude Code - Question | Choose an option: | Any | ✓ |
| Claude Code - Auto/Setup | Enable auto mode\?\|Allow external CLAUDE\.md | Any | ✓ |
| General - (y/n) prompt | \(y/n\)\|\(Y/N\) | Any | — |
Pattern options
Each pattern supports:
- Label — displayed as the notification title
- Regex — JavaScript regex matched against the last 500 characters of visible terminal output (ANSI codes stripped)
- Screen mode —
Any,Normal screen, orAlternate screen(e.g. vim, Claude Code TUI)
