Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>InterludeNew to Visual Studio Code? Get it now.
Interlude

Interlude

Patapsco.AI

|
1 install
| (0) | Free
Play music while long-running build processes are detected - never wait in silence again!
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Interlude

Play music while long-running build processes are detected. Never wait in silence again!

Interlude watches for build processes (like docker buildx, go build, cargo build, make, etc.) and automatically starts playing music when they've been running for a configurable amount of time. The music stops when the build completes.

Features

  • Automatic Detection: Watches for common build processes across all platforms (Linux, macOS, Windows)
  • Built-in Song Library: Comes with 6 royalty-free songs to choose from
  • Customizable Music: Add your own MP3, WAV, OGG files or stream from URLs
  • Song Picker: Easily switch between songs from the status bar menu
  • Volume Control: Adjust volume from 5% to 100% via the UI
  • Configurable Patterns: Add or remove process patterns to watch for
  • Exclusion Patterns: Automatically excludes watch modes and dev servers to avoid false positives
  • Permanent Disable: Disable specific patterns permanently so they won't trigger again
  • Process Tree Deduplication: Only tracks root build processes, preventing duplicate triggers when a parent process spawns children
  • Minimum Runtime Threshold: Only play music for builds that take longer than a specified time
  • Fade In/Out: Smooth audio transitions when starting and stopping
  • Status Bar Integration: Click the status bar to see tracked processes and manage them

Installation

Search for "Interlude" in the VS Code Extensions view, or install from the command line:

code --install-extension PatapscoAI.interlude

Usage

Status Bar Menu

Click the Interlude status bar item to open the menu:

  • Toggle Extension: Enable or disable Interlude
  • Stop Music: Immediately stop playback (when music is playing)
  • Tracked Processes: View currently tracked processes with options to:
    • Dismiss (this session): Stop tracking a process temporarily
    • Disable pattern permanently: Never track this pattern again
  • Select Song: Choose from built-in songs or add your own
  • Set Volume: Adjust playback volume (5% to 100%)
  • Test Audio: Test that audio playback is working
  • Manage Disabled Patterns: Re-enable patterns you've previously disabled

Process Management

When Interlude detects a build process, you can:

  1. Let it play: The music will automatically stop when the build completes
  2. Dismiss temporarily: Click the status bar, select the process, and choose "Dismiss" - it won't play for this session but will track again next time
  3. Disable permanently: Click the status bar, select the process, and choose "Disable pattern permanently" - this pattern will never trigger again until you re-enable it

Configuration

Open VS Code Settings and search for "Interlude" to configure:

Setting Default Description
interlude.enabled true Enable or disable Interlude
interlude.audioFile "" Currently selected song. Use the "Select Song" command to change.
interlude.songLibrary [] Additional songs (URLs or local paths) to add to the built-in library
interlude.processPatterns See below Process names or command patterns to watch for
interlude.excludePatterns See below Patterns to exclude (watch modes, dev servers, daemons)
interlude.disabledPatterns [] Patterns you have permanently disabled (managed via the status bar menu)
interlude.minimumRuntimeSeconds 5 Minimum runtime before music starts
interlude.pollIntervalMs 1000 How often to check for processes (ms)
interlude.volume 0.05 Audio volume (0.0 to 1.0). Use "Set Volume" command for easier control.
interlude.fadeInDurationMs 1000 Fade-in duration (ms)
interlude.fadeOutDurationMs 500 Fade-out duration (ms)

Default Process Patterns

The extension watches for 80+ build commands by default, including:

Category Commands
Containers docker build, docker-compose build, buildx, podman build
Build Systems make, cmake, ninja, bazel build, buck build, meson compile
Go go build, go test, go install, go mod download
Rust cargo build, cargo test, cargo install, rustc
Node.js npm run build, npm install, npm ci, npm test, yarn, pnpm, bun
Deno deno compile, deno test
Bundlers webpack --mode production, vite build, rollup -c, esbuild --bundle, parcel build
Frameworks next build, nuxt build, nx build
JVM gradle build, gradlew build, mvn compile/package/install, sbt compile, lein compile
.NET dotnet build/test/publish, msbuild
Python pip install, poetry install, pdm install, pytest, pyinstaller
Ruby bundle install, rake, gem install
PHP composer install
Mobile xcodebuild, fastlane, flutter build, react-native run, expo build
Other swift build, zig build, mix compile/test (Elixir), stack/cabal build (Haskell)
C/C++ gcc, g++, clang, clang++, vcpkg install, conan install

Default Exclusion Patterns

These patterns are excluded to avoid triggering on watch modes and dev servers:

  • Watch flags: --watch, -w
  • Dev servers: serve, dev, start
  • Webpack: webpack-dev-server, webpack serve
  • Vite: vite dev, vite preview
  • Next.js: next dev, next start
  • Nuxt: nuxt dev, nuxt preview
  • Node watchers: nodemon, ts-node-dev, tsx watch
  • Turbo: turbo watch, turbo dev
  • TypeScript: tsc --watch, tsc -w
  • Rollup: rollup --watch, rollup -w
  • Parcel: parcel serve, parcel watch
  • Cargo: cargo watch
  • Go: go run
  • Python servers: flask run, uvicorn, gunicorn
  • Rails: rails server, rails s
  • PHP: php artisan serve
  • Angular: ng serve, angular serve

Commands

Access these via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):

  • Interlude: Show Menu - Open the status bar menu
  • Interlude: Toggle On/Off - Enable or disable the extension
  • Interlude: Select Song from Library - Pick a song from your library (built-in + custom)
  • Interlude: Set Volume - Choose volume level (5% to 100%)
  • Interlude: Select Audio File - Add a local audio file to your library
  • Interlude: Set Audio URL - Add a URL to your library
  • Interlude: Test Audio Playback - Test that audio is working (plays for 5 seconds)
  • Interlude: Show Status - Show current status and tracked processes

Audio Playback

Interlude uses native system audio commands for reliable playback without browser restrictions:

  • macOS: Uses afplay
  • Windows: Uses PowerShell with Windows Media Player
  • Linux: Uses ffplay, mpv, paplay, or aplay (whichever is available)

Audio files from URLs are downloaded and cached locally for faster subsequent playback.

Built-in Songs

Interlude comes with 6 royalty-free songs from Archive.org:

  • Kevin MacLeod - Aces High
  • Kevin MacLeod - Presenterator
  • Elevator Music Bossa Nova
  • 8-bit Bossa
  • Scott Joplin - The Entertainer
  • Kevin MacLeod - Corncob

Changing Songs

Use the Select Song option in the status bar menu or run "Interlude: Select Song from Library" to:

  • Choose from built-in songs
  • Add local audio files
  • Add songs from URLs

Songs you add are saved to your library and persist across sessions.

Adjusting Volume

Use the Set Volume option in the status bar menu or run "Interlude: Set Volume" to choose from preset levels (5% to 100%). Volume changes apply immediately if music is playing.

How It Works

  1. The extension polls the system for running processes at a configurable interval
  2. When a process matching one of the configured patterns is found (and doesn't match exclusion patterns), it starts tracking it
  3. Process trees are deduplicated - if a parent build process spawns child processes that also match, only the parent is tracked
  4. If the process runs longer than the minimum runtime threshold, music starts playing via native audio commands
  5. When all tracked processes end, the music fades out
  6. Click the status bar item to manage tracked processes or permanently disable patterns

Limitations

Dev Containers & Remote Sessions

Interlude does not work in:

  • Dev Containers
  • Remote SSH sessions
  • GitHub Codespaces
  • Other remote development environments

Why? Interlude uses native audio commands (afplay, ffplay, mpv, etc.) to play sound. In remote environments, these commands run on the remote host or container—not your local machine. Since containers and remote servers typically don't have audio hardware or access to your speakers, no sound is produced.

Workaround: Install the extension in a local VS Code instance. The extension will detect builds running locally and play audio through your computer's speakers.

Troubleshooting

No sound on Linux

Make sure you have one of the following audio players installed:

  • ffplay (part of ffmpeg)
  • mpv
  • paplay (part of pulseaudio-utils)
  • aplay (part of alsa-utils)

False positives

If Interlude keeps triggering for a process you don't want:

  1. Click the status bar item
  2. Select the process
  3. Choose "Disable pattern permanently"

Alternatively, add patterns to interlude.excludePatterns in settings.

Process detected multiple times

Interlude automatically deduplicates process trees. If you're still seeing duplicates, check if the processes have different command patterns - each unique pattern match is tracked separately.

License

MIT License

Contributing

Contributions welcome! Clone the repository and run npm install to get started.

Acknowledgments

  • Music by Kevin MacLeod (incompetech.com) licensed under CC BY 4.0
  • "8-bit Bossa" and other tracks licensed under CC0 1.0 (public domain)
  • Thanks to everyone who has ever waited for a Docker build to finish
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft