🎵 Code in Flow. A Visual Studio Code extension that displays currently playing music information and provides playback controls directly in your editor.
VS Music integrates your system's media controls directly into the VS Code status bar. It’s designed for developers who want to skip track, pause, or see what's playing without ever leaving their code editor.
✨ NEW IN v0.2.1: Full Windows Support! Now compatible with Windows 10/11 using native System Media Transport Controls.
- Universal Widget: Shows song title, artist, and playback status.
- Media Controls: Play, Pause, Next, and Previous directly from the UI.
- Cross-Platform: Seamless experience on both Windows and Linux.
- Zero-Config (Windows): Automatically detects your active media player.
🚧 Roadmap: We are currently working on a direct D-Bus integration for Linux to further improve performance in the next release.
The extension showing current track information in the status bar and media panel.
No additional software required! The extension includes a lightweight helper utility that automatically communicates with Windows media services (Spotify, Chrome, System Media, etc.).
- Install via VS Code Marketplace.
- Start playing music.
- Enjoy!
🚨 Critical Requirement: You MUST have
playerctlinstalled for this extension to work.
1. Install playerctl
| Distro | Command |
|---|---|
| Ubuntu/Debian | sudo apt install playerctl |
| Fedora/RHEL | sudo dnf install playerctl |
| Arch Linux | sudo pacman -S playerctl |
| openSUSE | sudo zypper install playerctl |
2. Verify Installation Run this in your terminal to ensure it detects your player:
playerctl status
- Linux: 90% of issues are solved by installing
playerctland restarting VS Code. - Windows: Ensure your music player (Spotify/Browser) is actually playing audio. Windows puts inactive players to "sleep" to save resources.
- Extension doesn't detect music:
- Make sure the song is playing.
- Check if you can see the music in your Windows Notification Center / Lock Screen. If Windows can't see it, neither can we!
- Browser Users: Ensure "Hardware Media Key Handling" is enabled in your browser settings.
-
"playerctl not available" error:
-
Run
playerctl --versionin your terminal. If this command fails, the extension will not work. -
Artwork not loading:
-
The extension caches artwork (limit 100MB/200 images) to prevent bloat.
-
Supported formats: PNG, JPEG, WebP.
-
Try restarting VS Code to clear the cache.
This extension uses a platform-agnostic architecture to ensure speed and stability:
- Windows: Uses a custom C# helper (
QuazaarMedia.exe) to interface withWindows.Media.Control.GlobalSystemMediaTransportControlsSessionManager. - Linux: Wraps
playerctlcommands to interface with MPRIS-compatible players. - Performance: Implements intelligent caching and exponential backoff strategies to ensure VS Code remains lightweight.
Swapnil Ingle (@codershubinc)
