TobiasVeiga00 / soloist-mpris
git clone https://github.com/TobiasVeiga00/soloist-mpris.git
v0.2.1 · today
Spotify on Linux in ~60 MB: Spotify's official Soloist player as an MPRIS player, so bars, media keys and playerctl just work.
+90
stars, 24h · #111
+90
stars, 7 days · #591
+90
stars, 30 days · #2,579
90
★ total · +90% this week
0
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
LicenseMIT
Created2026-10-20 (today)
Last pushtoday
Watchers0
OwnerUser
GitHub topics
Links
README excerpt
# soloist-mpris **Spotify on Linux in about 60 MB of RAM, with your bar, media keys and `playerctl` working.** Spotify's desktop app is a whole Chromium browser running one web page. In 2026 Spotify released Soloist, its official headless player for Linux: a tiny Spotify Connect speaker with no window and no browser. It sounds great and costs almost nothing, but the rest of your desktop cannot see it. Your bar shows nothing, play/pause does nothing, and `playerctl` finds no player. This kit fixes that. It installs Soloist, keeps it updated, and adds `soloist-mpris`, a small Rust bridge that publishes Soloist as a standard MPRIS player. ## What you get - **Spotify as a background service.** It starts with your session and shows up in Spotify Connect as this computer. - **Your desktop knows what is playing.** Waybar, Quickshell, GNOME, KDE and any other MPRIS client get the title, artist, album, cover art and progress. - **Media keys and `playerctl` work**: play/pause, next, previous, seek, volume, shuffle and repeat. - **15x lighter than the desktop app.** About 60 MB of RAM and 3% of one core while playing, against more than 900 MB for Spotify's app (benchmark). - **Official playback.** Soloist is Spotify's own player, so it is not affected by the audio key refusals that stop librespot-based clients on many accounts. - **Restarts do not stop the music.** When Soloist restarts while it is playing (a weekly update, a reinstall), the bridge takes playback back within seconds. After a reboot, or when another device had the music, it leaves things as they are. - **No expiry surprises.** Soloist builds stop working after 90 days, so a weekly timer fetches the current one from Spotify. ## How light is it? Same laptop (ThinkPad T480, i5-8350U, Arch Linux), same song, 60 seconds of playback each, measured with `bench/measure.sh`: | | RAM (PSS) | CPU (one core) | Installed size | | --- | --- | --- | --- | | **Soloist + soloist-mpris** | **61 MB** | **3%** | **40 MB** | | Spotify desktop app, window hidden | 922 MB | 10% | 387 MB | | Spotify desktop app, window open | 943 MB | 27% | 387 MB | Installed size is the program files on disk (`soloist` and `soloist-mpris` against Spotify's install directory), caches excluded. That is **15 times less memory** and less than a third of the CPU, even when the official app sits hidden in the background. The desktop app is a Chromium browser showing Spotify's web page, spread over 9 processes. Here, three small processes play the music and nothing renders at all. Run the same measurement on your machine while music plays: [code] ## Choosing what to play Soloist is a speaker: it has no library or search of its own. You pick music with any Spotify Connect controller and play it here: - the **Spotify app on your phone** (devices icon, then this computer); - **open.spotify.com** in any browser, closed again when the music is going; - a native client such as Spotifast, used as a remote control; - the terminal: