15β45 seconds of silence is exactly long enough to be annoying.
Agents think
Reasoning, reading files, writing code β a real turn takes 15 to 45 seconds. Long enough that a blank cursor feels broken.
Tabbing away means polling
Switch tasks and you're back checking every few seconds anyway β which defeats the point of switching at all.
VibeAudio fills it
Music while it thinks, a chime when it's done. You keep reading, writing, or just breathing β and know the instant it's your turn.
Eight genres, all synthesized.
Click a genre to hear a full simulated turn β gentle intro, main groove, deep focus, then the success chime. Only one plays at a time.
Three chimes, three meanings.
Ctrl+C is silent on purpose β an aborted run is never reported as done.
Your repo, your sound.
Your working directory seeds the arrangement β the seed picks among hand-written, in-key progressions, it never invents harmony. Same repo, same sound, every time you come back.
Hooks, wrapper, or MCP.
Agent hooks
Music starts the moment you submit a prompt, stops the moment the agent finishes. No grace-window guessing. For Claude Code, Codex, Cursor, Grok, Gemini CLI, Copilot CLI, Qwen Code.
The wrapper
vibe <command> times the process itself. Right for anything that exits when its work is done β vibe npm test, one-shot agent calls, CI.
MCP
For clients with no hook system β Claude Desktop, Antigravity. The assistant decides to call vibe_play, so it's a suggestion, not a guarantee.
Drop into what you already use.
The details that keep it out of the way.
Grace window
Fast commands stay silent β music starts only past 1.5s.
Escalating tiers
Layers build as the agent digs deeper into a turn.
Honest exit codes
vibe claude && deploy behaves exactly like without the wrapper.
Title-bar HUD
A live waveform in the terminal title β never corrupts a full-screen TUI.
Pauses for permission
A rising "your turn" chime when the agent is stuck on you.
Mute for calls
vibe --mute β expires in an hour so you never forget it's on.
Reactive mode
Opt-in: intensity follows the tool in use, not just elapsed time.
Zero deps
Pure Node.js synthesis. No native bindings, no audio assets.
Three commands.
Install globally.
npm i -g github:kiril6/vibeaudioWire it into your agent's hooks.
vibe --install-hooksAudition a genre before committing.
vibe --preview jazzEvery flag, every troubleshooting note, every hook dialect: the full README.