mirror of
https://github.com/skyline69/spotix.git
synced 2026-04-26 07:55:56 +03:00
A fast, native Spotify client written in Rust - a fork of psst focused on a lightweight, Electron‑free desktop experience.
| .github | ||
| .homebrew | ||
| .pkg | ||
| assets | ||
| librespot-playback-patch | ||
| rspotify-model-patch | ||
| spotix-core | ||
| spotix-gui | ||
| vendor/wrapped-vec | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| Cross.toml | ||
| LICENSE.md | ||
| README.md | ||
Spotix
Fast, native Spotify client written in Rust — low overhead, clean UI, lightweight runtime (no Electron).
Fork notice
- 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
Additional features over upstream psst
- 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
Status
- Early development; expect missing features and rough edges
- Requires a Spotify Premium account
Download
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 |
Build
- Rust stable (1.65.0 or newer)
Linux dependencies
- 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
OpenBSD (WIP)
doas pkg_add gtk+3 cairo llvm
export LIBCLANG_PATH=/usr/local/lib
If you hit rustc memory errors while building gtk:
ulimit -d $(( 2 * `ulimit -d` ))
Install from source
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.
Build from source
cargo build
# Add --release for release builds.
Run from source
cargo run --bin spotix
# Add --release for release builds.
Build app bundle (macOS)
cargo install cargo-bundle
cargo bundle --release
Cool Features compared to psst
Equalizer with all the Spotify presets
Crossfade
Autoplay using Spotify's algorithm
Full Caching support for maximum performance!
And some more
- Up to date dependencies
- Clean codebase
- and much more...
Built-in Themes
Gruvbox Dark
Dracula
Kanagawa
Any many more!
Theming
- 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.
Project layout
/spotix-corecore library (session, decoding, playback)/spotix-guiGUI app (Druid) — binary name:spotix
Privacy
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.
Credits
- librespot: https://github.com/librespot-org/librespot
- druid: https://github.com/linebender/druid
- ncspot: https://github.com/hrkfdn/ncspot