You know the moment. You hit enter, the agent starts "thinking," and for the next 15 to 45 seconds you're left watching a blinking cursor that gives you nothing β not a percentage, not a heartbeat, nothing. Too short to context-switch into something else. Too long to just sit there. So you do the thing everyone does: you tab away, then tab right back to check if it's done, then again, then again. Polling by hand, which is exactly the busywork agents were supposed to save you from. π©
VibeAudio kills that dead zone. πΆ Music while your agent thinks. A chime the instant it's done. That's the whole pitch β and it's a good one.
15 to 45 seconds is a weird length of time. It's long enough that a static screen starts to feel broken β did it hang? Is it stuck? β but short enough that switching tasks just means you'll be back in a few seconds to check anyway. VibeAudio's bet is simple: fill the gap with sound, and you stop needing to look at all. You keep reading, writing, or just breathing β and you know, by ear, the instant it's your turn again.
Lo-Fi Focus β. Chill Synthwave π. Cozy 8-Bit πΉοΈ. Melodic Electronic β‘. Midnight Jazz π·. Zen Ambient π. Sparse Piano πΉ. Deep Drone π«οΈ. Every single one is generated in real time by pure Node.js synthesis β no audio files, no native bindings, nothing to download. And it's not just background noise: tracks build in tiers as the agent digs deeper into a turn, so a quick lookup sounds different from a long, gnarly refactor.
This is the detail that separates a gimmick from a tool. VibeAudio doesn't play one generic "ding." It plays three:
And if you hit Ctrl+C? Silence, on purpose. An aborted run never gets reported as a win.
Your working directory seeds the arrangement, so ~/work/api always sounds like ~/work/api β same progression, every time you come back to it. It's not random per run; it's a fingerprint for the project you're in.
VibeAudio ships three ways to integrate, and you pick based on your setup:
vibe <command> times the process itself. Perfect for anything that exits when it's done: vibe npm test, one-shot agent calls, CI runs. vibe_play, so it's a suggestion rather than a guarantee.
It also stays out of your way when you don't need it: a 1.5-second grace window keeps fast commands silent, exit codes stay honest so vibe claude && deploy behaves exactly like it would without the wrapper, and there's a vibe --mute that auto-expires in an hour so you never forget it's still on.
npm i -g github:kiril6/vibeaudio
vibe --install-hooks
vibe --preview jazz
Install it, wire it into your agent's hooks, and audition a genre before you commit to one. That's it. π¬
If you spend your day waiting on agents, VibeAudio is a genuinely small idea with a genuinely large payoff: fewer alt-tabs, fewer "is it done yet" glances, and an actual reason to trust the silence when there isn't any. π§β¨
Check it out: kiril6.github.io/vibeaudio