personal lab / renos.tk archive

~/renjfk $ open /artifacts/opencode-notify

artifact / active

opencode-notify

Attention notifications plugin for OpenCode

Probes Ghostty, Zellij, terminal-notifier, and afplay with graceful degradation, driven through node:child_process. A context-aware notification matrix silences when the tab is active and terminal visible, otherwise triggers blinking Zellij tabs, macOS desktop notifications, and audible cues.

created
16/04/2026
updated
17/05/2026

> notes

opencode-notify handles the other side of terminal-based OpenCode work: actually noticing when OpenCode needs you.

I built it because I was running multiple OpenCode sessions in Zellij tabs and constantly missing the moment a task finished or a permission prompt appeared.

What it watches for

When a session goes idle, asks for permission, or asks a question, the plugin picks the right signal based on context.

The goal is not to make noise. The goal is to surface attention only when the current terminal state means I am likely to miss it.

How it signals

  • An inactive Zellij tab gets a blinking / prefix.
  • A hidden terminal window gets a macOS desktop notification.
  • A visible terminal with an inactive tab gets a short sound.
  • If the tab is already focused and the window is visible, it stays quiet.

Why it matters

Every integration is optional and probed at startup: Zellij, Ghostty, terminal-notifier, desktop notifications, and sounds. Missing dependencies disable only that branch instead of breaking the plugin.

That made it practical to parallelize OpenCode sessions in the background without losing track of which one needs attention.

I now parallelize sessions in the background without ever losing track.