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 install --locked --path spotix-gui
# This installs the `spotix` binary to ~/.cargo/bin/.
# On Linux, the app auto-installs its .desktop file and icons on first run,
# so it will appear in your application launcher.
# --locked ensures the pinned dependency versions are used.cargo build
# Add --release for release builds.cargo run --bin spotix
# 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) — binary name:spotix
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