Notifications
OpenTUI can ask the terminal emulator to show a desktop notification using OSC escape sequences. Use this for long-running tasks, background work, or prompts that need attention.
const ok = renderer.triggerNotification("Build finished", "OpenTUI")
triggerNotification(message, title?) returns true when OpenTUI has detected a supported notification protocol, and false otherwise.
Capability
Check detection state through renderer capabilities:
if (renderer.capabilities?.notifications) {
renderer.triggerNotification("Tests passed", "CI")
}
OpenTUI detects and emits terminal OSC notification protocols only. It does not call platform tools such as notify-send, AppleScript, or PowerShell toasts.
Terminal behavior
Terminal and OS settings decide how the notification is presented. Some terminals only show banners when the terminal is unfocused, and macOS may store notifications in Notification Center without showing a banner depending on app notification settings.
Multiplexers
tmux does not forward raw notification OSC sequences. When OpenTUI detects renderer.capabilities?.multiplexer === "tmux", notification output is wrapped in tmux DCS passthrough. tmux must allow passthrough for the outer terminal to receive the notification:
set -g allow-passthrough on
Use allow-passthrough all if notifications need to work from panes that are not visible.
Zellij notification forwarding is OSC 99 based. OpenTUI ignores inherited host-terminal notification hints inside Zellij and enables notifications there only after an OSC 99 notification query succeeds, or when explicitly overridden. Zellij needs OSC 99 notification forwarding support for this to work.
Overrides
Use environment overrides for diagnostics or deployments where terminal detection cannot query the final terminal path:
OPENTUI_NOTIFICATION_PROTOCOL=osc99
OPENTUI_NOTIFICATIONS=0
OPENTUI_NOTIFICATION_PROTOCOL accepts osc9, osc777, osc99, or none. OPENTUI_NOTIFICATIONS=0, false, or off disables notifications.
See packages/examples/src/notification-demo.ts for an interactive example.