Spotify recently blocked many essential features from their API, which allowed users to stream audio and do other things on their platform. This decision broke many other open source applications which also relied on their API. Thanks Spotify for nothing.
More information to this problem
Fast, native Spotify client written in Rust — low overhead, clean UI, lightweight runtime (no Electron).
- This project is a fork of https://github.com/jpochyla/psst
- The fork is maintained by skyline69 and diverges in naming, packaging, and ongoing changes
- Theme support with TOML themes (including custom colors and lyric highlighting)
- Spotify-style default dark theme with bundled Spotify Mix fonts
- Configurable cache size limit and cache usage display in preferences
- Playlist pagination toggle and real-time library search (playlists, albums, tracks, podcasts, albums)
- Saved playback state restoration (resume last track/position) and improved lyrics view (highlight, focus, auto-scroll)
- More fluid seek bar, bottom-bar cover click opens album, and platform release binaries
- More up-to-date dependencies and ongoing maintenance on the fork
- Automatic retry for transient network timeouts and throttling
- Built-in 10-band equalizer with presets and custom tuning
- Multi-select playlist mode with select all and bulk remove actions
- Early development; expect missing features and rough edges
- Requires a Spotify Premium account
GitHub Actions build and publish releases when changes land on main.
Grab the latest installers from the Releases page.
| Platform | Download Link |
|---|---|
| Linux (x86_64) | Download |
| Linux (aarch64) | Download |
| Debian Package (amd64) | Download |
| Debian Package (arm64) | Download |
| macOS | Download |
| Windows | Download |
- Rust stable (1.65.0 or newer)
- Debian/Ubuntu:
sudo apt-get install libssl-dev libgtk-3-dev libcairo2-dev libasound2-dev - RHEL/Fedora:
sudo dnf install openssl-devel gtk3-devel cairo-devel alsa-lib-devel
doas pkg_add gtk+3 cairo llvm
export LIBCLANG_PATH=/usr/local/libIf you hit rustc memory errors while building gtk:
ulimit -d $(( 2 * `ulimit -d` ))cargo build
# Add --release for release builds.cargo run --bin spotix-gui
# Add --release for release builds.cargo install cargo-bundle
cargo bundle --release
- Up to date dependencies
- Clean codebase
- and much more...
- Place TOML theme files in
~/.config/Spotix/themes/. - Spotix ships with multiple preset themes that auto-install into that folder on first run.
- Each theme file must include a
namefield (e.g.name = "catppuccin") and color keys. Example:
name = "catppuccin"
base = "dark"
[colors]
grey_000 = "#cdd6f4"
grey_100 = "#bac2de"
grey_200 = "#a6adc8"
grey_300 = "#585b70"
grey_400 = "#45475a"
grey_500 = "#313244"
grey_600 = "#181825"
grey_700 = "#1e1e2e"
blue_100 = "#a6e3a1"
blue_200 = "#89b4fa"
red = "#f38ba8"
link_hot = "#ffffff14"
link_active = "#ffffff0f"
link_cold = "#00000000"
lyric_highlight = "#cba6f7"
lyric_past = "#6c7086"
lyric_hover = "#cdd6f4"
playback_toggle_bg_active = "#a6e3a1"
playback_toggle_bg_inactive = "#313244"
playback_toggle_fg_active = "#1e1e2e"
icon_color = "#8e95b4"
icon_color_muted = "#6c7086"
media_control_icon = "#cdd6f4"
media_control_icon_muted = "#a6adc8"
media_control_border = "#585b70"
status_text_color = "#bac2de"- Select themes in Settings → General. Custom themes are listed by their
name.
/spotix-corecore library (session, decoding, playback)/spotix-guiGUI app (Druid)/spotix-climinimal CLI example
Spotix connects only to official Spotify servers. Credentials are not stored; a reusable token is used instead. Cached data is stored locally and can be deleted at any time.
- librespot: https://github.com/librespot-org/librespot
- druid: https://github.com/linebender/druid
- ncspot: https://github.com/hrkfdn/ncspot