🎵 Hold the VibeYou're on hold. The agent is working. Might as well lean into it.Hold the Vibe plays looping elevator music the moment your AI agent starts grinding — because watching tokens scroll is dull, and you're just sitting there anyway. When the agent wraps up, the music stops and you get a little ding. That's the cherry on top, not the point. Install from Marketplace · How it works · Contributing · Report a bug ✨ Why this existsYou kicked off an agent. Now you're watching it think, edit, run commands — and there's nothing for you to do but wait. It's boring. Hold the Vibe leans into that dead time with a joke: classic elevator hold music while the agent works. You're not really "on hold" with a call center — you're on hold with a language model — but the vibe fits. Sit back, let the muzak play, twiddle your thumbs, glance away from the screen. The ding when it's done? A small bonus so you know the turn finished. The extension isn't a reminder app for people who forgot they sent a prompt. The music is the whole bit.
Less silent staring. More please-hold energy. 🎬 How it worksBy default the extension runs in Advanced Mode. Here's what happens during a single agent turn:
In plain terms:
The Hook, the Bridge, and the music player are all just parts of this one extension — the diagram splits them into separate boxes only to make the order of events clearer. Advanced Mode (shown above, and on by default) hooks directly into your editor's agent events, so the music and ding fire reliably on every turn. There's a small, real startup delay the first time audio plays each turn — spinning up the player takes a moment — but it never blocks or slows down the agent itself. Notify Mode is a zero-install fallback for editors or setups where hooks aren't available. Instead of hooks, the AI can call a small "let the user know" tool built into the extension, and a backup check listens for terminal commands wrapping up. No files get written and nothing needs installing — but since it relies on the AI remembering to call that tool, it can occasionally miss a turn, which Advanced Mode doesn't. ⚡ InstallOption A — Marketplace (easiest)Search Elevator Music in the Extensions panel, or install directly: marketplace.visualstudio.com/items?itemName=joenberg.elevator-music Or from the command line:
Option B — Download a releaseGrab the latest Option C — Build from source
Install the generated Option D — Hack on it
Open the folder, press F5, and use the Extension Development Host window that opens.
🚀 Try it right now
If the muzak starts when the agent starts, it's working. 🎛 Two modes
Advanced Mode is on by default — reliable hold music on every agent turn. Toggle via the status bar menu or 🖥 Works where you code
Both editors on one machine? Set 🔧 Settings worth knowing
Search elevatorMusic in Settings for the full list. 🎶 SoundsRoyalty-free audio, included:
Full credits: media/ATTRIBUTION.md. Swap in your own WAVs anytime via 🛟 TroubleshootingDing works but no hold musicLarge WAV files can take a moment to start on Windows. Check Output → Log (Extension Host) for No status bar item after F5The extension loads in the Extension Development Host window (the second window), not the one where you pressed F5. Agent stops responding mid-turnUnrelated VS Code bug — see microsoft/vscode#301795. Try disabling Advanced Mode temporarily to compare. Multiple editor windows openOne window owns the localhost bridge; others connect passively. Disabling Advanced Mode sends a clean shutdown to all windows. More help? Open an issue — we actually read them. 🤝 ContributingIdeas, sounds, platform fixes, docs — all welcome. See CONTRIBUTING.md. Release process: RELEASE.md. Good first PRs: alternative hold loops (CC0), macOS/Linux playback polish, README improvements. 📄 LicenseHold the Vibe · Elevator music while your agent works. The ding is just the outro. ⭐ Star the repo if the joke landed · github.com/joenb33/hold-the-vibe |