About this project
# Psst
Psst is a high-performance, multi-platform Spotify client featuring a native graphical user interface (GUI). Written entirely in Rust, it avoids the overhead of Electron-based applications, providing a lightweight and responsive experience. The software is fully cross-platform, supporting Windows, Linux, and macOS.
## Key Features
- **Native Performance**: Built with Rust for speed and efficiency, utilizing the Druid UI library for a native look and feel.
- **Core Functionality**: Supports Vorbis track playback, browsing saved albums and tracks, followed playlists, and genre playlists including "For You" content.
- **Search & Discovery**: Allows searching for artists, albums, and tracks directly within the app.
- **Podcast Support**: Includes functionality to browse and listen to podcasts.
- **Playback Controls**: Features media key control, audio volume adjustment, and audio loudness normalization.
- **Theming**: Includes a dark theme option.
- **Privacy**: Connects only to official Spotify servers; does not call home. User credentials are not stored locally; instead, reusable authentication tokens from Spotify are used. Caches are stored locally and can be deleted at any time.
## Requirements
- A **Spotify Premium** account is required to use the application.
- As of February 2026, due to changes in Spotify's developer access policies, Psst requires users to register their own Spotify Developer Client ID for Web API features (such as search, library access, and playlists). Users must register an app at the Spotify Developer Dashboard and enter the Client ID in Psst's sign-in screen.
## Platform Support
- **Windows**: Available via executable download.
- **macOS**: Available via DMG installer.
- **Linux**: Available for x86_64 and aarch64 architectures, including Debian packages (.deb).
- **OpenBSD**: Work in progress; support may be unstable.
Unofficial builds are also available through the Arch User Repository (AUR) and Homebrew.
## Installation
Pre-built binaries can be downloaded from the [GitHub Releases page](https://github.com/jpochyla/psst/releases/latest).
### Building from Source
To build Psst from source, you need the latest stable version of Rust (at least 1.65.0).
#### 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`
#### Build Commands
```shell
cargo build
# Append --release for a release build.
```
To run the GUI:
```shell
cargo run --bin psst-gui
```
To create an installation bundle (e.g., macOS .app):
```shell
cargo install cargo-bundle
cargo bundle --release
```
## Project Structure
- `/psst-core`: Core library handling Spotify TCP sessions, audio retrieval, decoding, output, and playback queue.
- `/psst-gui`: The GUI application built with Druid.
- `/psst-cli`: An example CLI tool for playing tracks.
## Roadmap
Current development focuses on improving stability and adding missing features such as playlist management (follow/unfollow, add/remove tracks), better caching mechanisms, resilience to network errors, and OS-specific application bundles. Future UI improvements include a two-pane layout, light/dark OS theme detection, and virtualized lists for better performance with large libraries.
## Contributing
Contributions are welcome. The project relies on community efforts to enhance features and fix bugs. For more details on the codebase structure and contribution guidelines, refer to the repository's development section.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.