It wraps any CLI command in a PTY and watches the output stream. When output has been silent for 1500ms after a prompt submission, it fires three notifications in parallel: a system sound (afplay), a Notification Center banner (osascript), and a terminal bell (\a).
A few things I'm happy with:
- 1:1 prompt gating — each Enter arms exactly one notification; startup banners and unsolicited output are ignored - Echo suppression — output within 100ms of a keystroke is treated as PTY echo, not AI output - Quick-response suppression — no notification if the AI responds in under 5s (you're probably still watching)
It's a single Go file (~300 lines), macOS-only for now (relies on afplay and osascript).
brew install turtlekazu/tap/crai
crai claude
GitHub: https://github.com/turtlekazu/crai