🎵 Air Tune (v2.0.0)
A premium Apple Music Mini Player-inspired VS Code extension & live system media session controller for Windows, macOS, and Linux. Connects over WebSocket to stream real-time music metadata, lyrics, and controls from Apple Music, Spotify, VLC, Chrome, Edge, MPRIS players, and more.

🚀 What's New in v2.0.0
- 🐧 Full Linux Support: Added native MPRIS media player support via
playerctl and Python D-Bus fallback. Stream metadata and control playback for Spotify, Amberol, Rhythmbox, Cider, Audacious, MPV, VLC, Chrome, Firefox, and all MPRIS-compatible Linux media players.
- 🏷️ Rebranded to "Air Tune": Clean display branding update across VS Code extension UI, command palette, status bar, and companion service.
✨ Features
- 🍎 Apple Music Mini Player Aesthetic: Sleek glassmorphism dark mode design crafted specifically for VS Code.
- 🎨 Dynamic Album Art Backgrounds: Real-time pixel analysis extracts vibrant primary and secondary color palettes from album covers and smoothly transitions HSL background gradients.
- 🎤 Synchronized Lyrics View: Automatic online lyrics lookup via LRCLIB for synced (
.lrc) or plain text lyrics with real-time active line highlighting and click-to-seek playback.
- ⚡ Cross-Platform System Media Session (SMTC & MPRIS): Works out of the box across Windows, macOS, and Linux:
- Apple Music (Windows & macOS apps)
- Spotify
- VLC Media Player
- Google Chrome / Microsoft Edge / Mozilla Firefox
- Linux MPRIS Players (Amberol, Rhythmbox, Cider, Audacious, MPV, etc.)
- 📻 Output Devices & Track Options: Quick access to audio device info and track search options via bottom toolbar popovers.
- ⚡ 60 FPS Micro-Animations: Powered by Framer Motion and TailwindCSS.
- ⌨️ Command Palette & Keyboard Shortcuts: Control playback globally inside VS Code via
Ctrl+Shift+M.
🏗️ Architecture Overview
AirTune/
├── src/ # Extension Host (VS Code Node.js process)
│ ├── extension.ts # Extension entry point & command registration
│ ├── AirTunePanel.ts # Webview View Provider (renders React UI)
│ ├── WebSocketBridge.ts # Automatic WebSocket client with reconnect
│ ├── EmbeddedMediaBridge.ts # Cross-platform (Win/macOS/Linux) media engine
│ └── StatusBarController.ts
│
├── webview-ui/ # React 19 + Vite + Tailwind UI
│ └── src/
│ ├── components/
│ │ ├── Player/ # Air Tune header, Artwork, SongInfo, Controls, Timeline
│ │ ├── Lyrics/ # LyricsView with LRCLIB online lyrics & synced line seek
│ │ ├── Queue/ # QueueView & active track equalizer bars
│ │ └── Modals/ # DevicesModal & MoreMenu popovers
│ ├── hooks/ # useArtworkColor, useMediaSession, useAnimatedValue
│ └── store/ # Zustand global player state
│
└── companion/ # Standalone Media Session bridge
├── server.mjs # Node.js WebSocket companion server (ws://localhost:26539)
├── smtc-bridge.ps1 # Native Windows SMTC C# Reflection engine
└── AirTuneCompanion.csproj
🚀 Getting Started
1. Installation
Install Air Tune directly from the VS Code Marketplace / Store or package the extension:
# Clone the repository
git clone https://github.com/Dharaneesh20/AirTune.git
cd AirTune
# Install dependencies and build
npm run install:all
npm run build
2. Running Air Tune
Air Tune is a 100% standalone extension. The media session bridge starts automatically inside VS Code upon activation — no external companion server or background setup required!
- Open VS Code.
- Press
F5 to launch the Extension Development Host (or install the .vsix).
- Click the Air Tune (music note) icon in the VS Code Activity Bar!
- Start playing music from Spotify, Apple Music, VLC, or your browser. Air Tune will automatically connect and display live metadata and controls.
⌨️ Commands & Shortcuts
| Command |
Shortcut |
Description |
| Air Tune: Toggle Player |
Ctrl+Shift+M |
Open/focus the Air Tune player panel |
| Air Tune: Play |
Ctrl+Shift+Space |
Toggle Play / Pause |
| Air Tune: Next Track |
Ctrl+Shift+→ |
Skip to next track |
| Air Tune: Previous Track |
Ctrl+Shift+← |
Skip to previous track |
📄 License
MIT License © 2026 Dharaneesh (dharaneeshrs777@gmail.com)
| |