Overview
A plugin for OpenCode that delivers Native OS notifications when tasks complete, errors occur, or the AI needs your input. It uses native OS notification delivery on macOS, Windows, and Linux, with an additional cmux-native path when available.Why This Exists
You delegate a task and switch to another window. Now you’re checking back every 30 seconds. This plugin solves that:- Stay focused — Work in other apps. A notification arrives when the AI needs you.
- Native OS notifications first — Uses macOS Notification Center via
alerter, plus Windows Toast and Linux notify-send vianode-notifier. - Smart defaults — Only notifies for meaningful events, with parent-session filtering and quiet-hours support.
- Additional cmux-native path — When running in cmux, can route through
cmux notifyand still falls back safely to desktop notifications.
Installation
Notification Events
| Event | Notifies? | Sound | Why |
|---|---|---|---|
| Session complete | Yes | Glass | Main task done — time to review |
| Session error | Yes | Basso | Something broke — needs attention |
| Permission needed | Yes | Submarine | AI is blocked, waiting for you |
| Question asked | Yes | Submarine (default) | Questions should always reach you promptly |
| Sub-task complete / error | No (default) | — | Set notifyChildSessions: true to include child-session session.idle and session.error events |
- Detects your terminal emulator (supports 37+ terminals)
- Suppresses
session.idle,session.error, andpermission.updatednotifications when your terminal is focused on macOS - Enables click-to-focus on macOS
Native OS Notification Paths
By default, notifications go through the native OS desktop notification path:- macOS: Notification Center via
vjeantet/alerter(alertermust be onPATH, macOS 13+) - Windows: Toast notifications (
SnoreToastbackend) - Linux:
notify-send
alerter separately. Supported install paths include Homebrew (brew install vjeantet/tap/alerter), MacPorts, or downloading the release zip from GitHub Releases and placing the binary on PATH.
Additional cmux-native path
When OpenCode runs inside cmux (withCMUX_WORKSPACE_ID set), the plugin can also send notifications via cmux:
alerter on macOS, and the existing node-notifier-backed path on Windows/Linux.
Platform Support
| Feature | macOS | Windows | Linux |
|---|---|---|---|
| Native OS notifications | Yes | Yes | Yes |
| Custom sounds | Yes | No | No |
| Focus detection | Yes | No | No |
| Click-to-focus | Yes | No | No |
| Terminal detection | Yes | Yes | Yes |
Configuration (Optional)
Works out of the box. To customize, create~/.config/opencode/kdco-notify.json:
notifyChildSessions(defaultfalse) — whentrue, include child/sub-sessionsession.idleandsession.errornotifications (question and permission notifications are unaffected).terminal(optional) — override terminal auto-detection.sounds— per-event sounds (idle,error,permission, optionalquestion).quietHours— scheduled suppression window.
See Also
- Workspace Integration — Full multi-agent workspace bundle.
- Background Agents — Async delegation system.
- KDCO Workspace Guide — Installation walkthrough.