A new open-source project called notify brings a dead-simple solution to one of the most annoying problems with AI coding agents: knowing when the damn thing finished. Posted on Hacker News by developer lucastononro, the tool is an MCP server and plugin combo that works with both Claude Code and OpenAI Codex — playing system sounds and speaking plain-English status updates using your operating system's built-in text-to-speech engine.

How It Works

The setup consists of two tools: play_sound fires off a quick chime (hero, glass, sosumi, basso, or whatever system sound you prefer) for those "glance at the screen" moments. The notify tool goes further — it plays that sound, then speaks a sequence of short status beats with natural pauses in between. Both tools are backed by a single cross-platform MCP server written in Python, so you're not juggling separate implementations depending on which agent you're running. One clever detail: the skill layer enforces speech-friendly formatting. No tables, code snippets, file paths, or markdown get read aloud — what you hear is actually comprehensible human language while the detailed output stays in your terminal. When you ask Claude Code to "notify me when the build finishes," it might chime and say something like: "All tests passed. The branch is ready for review." That's useful information delivered without you having to stare at a screen.

Platform Support

The project targets macOS as its primary platform — tested and verified, using the built-in say command (which auto-selects neural voices like Ava Premium or falls back through the list) combined with afplay for system sounds from /System/Library/Sounds/*.aiff. Windows support is marked best-effort but uses PowerShell's System.Speech (default SAPI voice) and winsound to find the closest equivalent to requested sounds. Linux works if you have spd-say, espeak-ng, or similar TTS tools plus a sound player — also best-effort. Every backend call is guarded so missing voices or players return descriptive strings instead of crashing the server.

Privacy and Zero Cost

This is where notify stands out from the crowd. Speech synthesis happens entirely on your machine using OS built-ins — no OpenAI API calls, no per-character billing, no rate limits, zero telemetry. There is literally no server involved in generating these notifications. Your AI coding agent finishes a complex refactor at 2 AM and you want an audio alert? That stays between Claude Code and your Mac's speech synthesizer. For developers who care about keeping their development environment air-gapped from unnecessary network calls, this is exactly the kind of tooling that should be standard.

Getting Started

Prerequisites are minimal: just uv on your PATH (the package installer/runner handles fetching the MCP server and its single dependency mcp[cli] from git automatically). No manual virtual environment setup. For Claude Code, installation is a two-command dance through the plugin marketplace (/plugin marketplace add lucastononro/notify followed by /plugin install notify@notify-marketplace). Codex uses near-identical commands with codex prefix instead of /. Once installed, you can ask either agent naturally: "ping me when you're done," "let me know when the tests pass," or invoke directly via /notify:notify (Claude Code) or $notify (Codex).

The Bottom Line

Notify isn't revolutionary — it's just practical infrastructure that should have existed from day one. When you're running a coding agent on a long task, you shouldn't need to babysit it or keep glancing back. At zero cost, fully local operation, and MIT licensed, this is the kind of utility that gets into your workflow and stays there. Worth installing if you spend any significant time with Claude Code or Codex.