Psst is a lightweight, cross-platform Spotify client with a native GUI built in Rust. No bloat, no Electron — just speed and simplicity.
Psst delivers a native, responsive Spotify experience while staying lightweight and respecting your privacy.
Native Rust performance with no Electron overhead. Start up instantly and enjoy smooth playback.
Built with Druid, a pure Rust native UI toolkit. Looks and feels like a native app on every platform.
Connects only to official Spotify servers. No telemetry, no analytics, no phoning home.
Vorbis track playback, queue management, volume control, and audio loudness normalization included.
Explore saved albums, tracks, playlists, and podcasts. Search for artists, albums, and tracks instantly.
Full media key control so you can play, pause, and skip without switching windows.
Releases are built automatically on every push to main. Grab the latest for your OS, or build from source.
Requires Rust stable (at least 1.65.0) and a few platform-specific dependencies.
Minimum Rust toolchain:
rustup default stable
sudo apt-get install \
libssl-dev \
libgtk-3-dev \
libcairo2-dev \
libasound2-dev
sudo dnf install \
openssl-devel \
gtk3-devel \
cairo-devel \
alsa-lib-devel
cargo build
cargo run --bin psst-gui
# Release build
cargo build --release
cargo run --bin psst-gui --release
# macOS .app bundle
cargo install cargo-bundle
cargo bundle --release
A mix of what's already done, what's in progress, and what's next on the horizon.
Psst is organized into three main crates. Contributions are very welcome!
/psst-core
Spotify TCP session management, audio file retrieval and decoding, audio output, and the playback queue engine.
/psst-gui
The main desktop application built with Druid. This is what you run to use Psst.
/psst-cli
An example CLI that demonstrates track playback. Credentials are configured directly in the code.
Psst would not exist without these amazing projects: