Fast and multi-platform Spotify client with native GUI
Alternatives To Psst
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Spotify Downloader11,205222 days ago64June 27, 202217mitPython
Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found).
11 days ago1,502gpl-3.0Kotlin
Kotlin Multiplatform Music Downloader, Supports Spotify / Gaana / Youtube Music / Jio Saavn / SoundCloud. NOTE: BEING REWRITTEN, SO STAY TUNED.
Mopidy7,6542107810 days ago79April 28, 2022201apache-2.0Python
Mopidy is an extensible music server written in Python
11 days ago100mitRust
Fast and multi-platform Spotify client with native GUI
15 hours ago37September 17, 202293bsd-2-clauseRust
Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes.
Spotify Web Api Node2,772852923 months ago50January 24, 2021157mitJavaScript
A Node.js wrapper for Spotify's Web API.
a month ago25mitJavaScript
Export/Backup Spotify playlists using the Web API
Spotify Dl1,285
3 days ago31April 19, 202225mitPython
Downloads songs from your Spotify Playlist
Spotifyapi Net1,27212213 days ago34September 28, 202114mitC#
:sound: A Client for the Spotify Web API, written in C#/.NET
Everyones Guide For Starting Up On Wechat Network868
7 months ago7
Alternatives To Psst
Select To Compare

Alternative Project Comparisons


Fast Spotify client with native GUI, without Electron, built in Rust. Very early in development, lacking in features, stability, and general user experience. It is being tested only on Mac so far, but aims for full Windows and Linux support. Contributions welcome!

Note: Spotify Premium account is required.



Pre-built binaries

GitHub Actions automatically runs when new commits are pushed to master. To download prebuilt binaries for x86_64 macOS, Windows or Ubuntu, go to the newest successfully built action.


Our user-interface library, Druid, has two possible backends to choose from on Linux: GTK and pure X11, with Wayland backend in the works. The default linux backend is GTK. Before building on Linux, make sure the required dependencies are installed.


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

On all platforms, the latest Rust stable (at least 1.54.0) is needed.

Development build:

git submodule update --recursive --init
cargo build

Release build:

git submodule update --recursive --init
cd psst-gui
cargo build --release
# Use `cargo install cargo-bundle` and `cargo bundle --release` for building the installation bundle (i.e. macOS .app)
Running and configuration
cd psst-gui
cargo run
# Use `cargo run --release` for the release build.
  • [x] Vorbis track playback
  • [x] Browsing saved albums and tracks
  • [x] Save / unsave albums and tracks
  • [x] Browsing followed playlists
  • [x] Search for artist, albums, and tracks
  • [x] Podcast support
  • [x] Media keys control
  • [x] Open Spotify links through search bar
  • [x] Audio volume control
  • [x] Audio loudness normalization
  • [x] Genre playlists and "For You" content
  • [x] Dark theme
  • [ ] Resilience to network errors (automatically retry timed-out requests)
  • [ ] Managing playlists
    • Follow / unfollow
    • Add / remove track
    • Reorder tracks
    • Rename playlist
    • Playlist folders
  • [ ] Playback queue
  • [ ] React to audio output device events
    • Pause after disconnecting headphones
    • Transfer playback after connecting headphones
  • [ ] Better caching
    • Cache as much as possibly of WebAPI responses
    • Visualize cache utilization
      • Total cache usage in the config dialog
      • Show time origin of cached data, allow to refresh
  • [ ] Trivia on the artist page, Wikipedia links
  • [ ] Downloading encrypted tracks
  • [ ] Reporting played tracks to Spotify servers
  • [ ] OS-specific application bundles
  • UI
    • [ ] Rethink current design, consider a two-pane layout
      • Left pane for browsing
      • Right pane for current playback
    • [ ] Detect light/dark OS theme
    • [ ] Robust error states, ideally with retry button
    • [ ] Correct playback highlight
      • Highlight now-playing track only in the correct album / playlist
      • Keep highlighted track in viewport
    • [ ] Paging or virtualized lists for albums and tracks
    • [ ] Grid for albums and artists
    • [ ] Robust active/inactive menu visualization
    • [ ] Save last route, volume, playback state

Contributions are very welcome! Project structure:

  • /psst-core - Core library, takes care of Spotify TCP session, audio file retrieval, decoding, audio output, playback queue, etc.
  • /psst-gui - GUI application built with Druid
  • /psst-cli - Example CLI that plays a track. Credentials need to be configured in the code.
  • /psst-protocol - Internal Protobuf definitions used for Spotify communication.
Privacy Policy

Psst connects only to the official Spotify servers, and does not call home. Cache of various things is stored locally, and can be deleted at any time. User credentials are not stored at all (re-usable authentication token from Spotify is used instead).


This project would not exist without:

  • Big thank you to librespot, the Open Source Spotify client library for Rust. Most of psst-core is directly inspired by the ideas and code of librespot, although with a few differences:
    • Spotify Connect (remote control) is not supported yet.
    • Psst is completely synchronous, without tokio or other async runtime, although it will probably change in the future.
    • Psst is using HTTPS-based CDN audio file retrieval, similar to the official Web client or librespot-java, instead of the channel-based approach in librespot.
  • druid native GUI library for Rust.
  • ncspot cross-platform ncurses Spotify client written in Rust, using librespot.
  • ...and of course other libraries and projects.
Popular Spotify Projects
Popular Playlist Projects
Popular Media Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.