- Rust 95.4%
- Python 3%
- C 0.4%
- Shell 0.3%
- PowerShell 0.2%
- Other 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Incorporate crmne/spotifast v0.17.1 (d22e8185e0baadbbd4d0262023f74d30b493c6e4), retaining Sayori branding, signed Forgejo updates, the independent DJ engine and librespot-only playback. Keep Spotify-access authorization available and make historical update fixtures independent of the running version. Prepare Sayori 1.0.1 and written release notes. |
||
| .cargo | ||
| .forgejo/workflows | ||
| .github | ||
| assets | ||
| contrib | ||
| docs | ||
| examples | ||
| packaging | ||
| src | ||
| tests | ||
| .coderabbit.yaml | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| mise.toml | ||
| native-packages.yaml | ||
| NuGet.Config | ||
| PACKAGING.md | ||
| README.md | ||
| renovate.json | ||
| rust-toolchain.toml | ||
| UPSTREAM_VERSION | ||
Spotifast-Sayori
Branded in Sayori’s charcoal, warm ivory and amber, with a custom mascot and record icon based on artwork supplied by Sayori. This independent clone adds experimental Spotify DJ, including Spotify's spoken narration and continuous generated sets. It requires a Premium account with DJ available in the official Spotify app. Builds run on Forgejo Actions, with MSI and setup installers, portable archives, and Linux AppImage, DEB and RPM packages attached to successful DJ build runs. Flatpak is temporarily excluded from this clone's builds and releases. For an optional local build, prepare its pinned playback engine first:
python contrib/dj/prepare.py
cargo run --locked --no-default-features
Open DJ in the sidebar, then press Play. Let DJ pick requests a fresh set; the player bar's Next button skips a song. DJ uses the built-in player. Playback uses librespot. See the DJ build and testing notes. Downloads from the upstream website below are the original app and do not include this clone's DJ changes.
Spotify, native and fast.
A lightweight music app for Linux, macOS, and Windows.
Build downloads · Getting started · User guide · Contribute
Spotifast is a Spotify client written in Rust with egui and fastframe, the framework behind a family of native desktop apps. It plays music through librespot player, and has no browser engine.
The interface includes complete translations for all supported languages.
Playback needs Spotify Premium. Free accounts can browse and search, but cannot play music through Spotifast.
Watch Spotifast in action
https://github.com/user-attachments/assets/a5f669ce-b3b7-4f8e-9933-976a78876c7e
Features · Install · First playback · Mini player · MilkDrop · Help
Sayori uses librespot for playback, EQ, visualizers, local files and queue editing. Soloist runtime support and setup have been removed. Existing Spotify sign-ins, settings and session files remain readable.
The displayed name is Spotifast-Sayori () ().
Cargo.toml owns the independent Sayori version; UPSTREAM_VERSION
records the upstream code actually incorporated. spotifast --display-version
prints both. Machine-readable --version, tags, packages and filenames use
the Sayori version. Upstream notices remain information; application updates
install only signed Sayori releases from Forgejo.
See release activation and the local test checklist. Main pushes automatically build, test and publish independently signed Sayori releases after all required jobs pass.
Your music, on your desktop
| Feature | What you can do |
|---|---|
| Library and search | Browse playlists, Liked Songs, albums, artists, and podcasts. Discover upcoming albums on artist pages and open their countdown to pre-save. Search the catalogue and edit playlists you own. Copy a song's link, title, or artists from its menu. |
| Local files | Play the local files your playlists list from a folder you choose in Settings, at any sample rate. Names show spaces and accents correctly, including in cached playlists. |
| Lyrics | Spotify lyrics when the playback session is signed in, with LRCLIB as fallback. Temporary LRCLIB overloads retry and try search; older cached lyrics remain available during outages. |
| Spotify Connect | Play on this computer or control playback on your other devices, including Google Cast speakers and groups. Cast devices appear as they are discovered; frequently and recently chosen outputs rise to the top. Remote volume keeps your chosen level while Spotify updates. |
| Queue | Add songs to the queue, or choose Play next to put a song or selection first when playing on this computer. |
| Themes | Choose light, dark, system appearance, or custom colours, with one theme for light mode and one for dark mode that switch with the system. On Omarchy, follow your desktop theme. |
| Desktop controls | Use keyboard shortcuts and media keys. Keep music playing from the tray when supported by your desktop and settings, and start Spotifast with your computer, with its window or in the tray. |
| Winamp mini player | Use classic skins with an equalizer, playlist, and animated sound displays. |
| MilkDrop | Watch music-reactive visuals in a separate window or full screen. See platform availability below. |
Install
| Platform | Installation |
|---|---|
| Windows x64 | Choose the MSI, setup wizard or portable ZIP from Sayori releases. |
| Linux x64 | Choose the AppImage, DEB, RPM or tar archive from Sayori releases. |
| From source | Follow the Sayori build guide for the pinned DJ engine and native prerequisites. |
The fork's current release targets are Windows x64 and Linux x64. Upstream Spotifast's website and package repositories distribute the upstream application.
Start listening
- Register Spotifast with Spotify, as the sign-in screen shows: in the
Spotify developer dashboard,
click Create app, Spotify's name for this registration, with the
redirect URI
http://127.0.0.1:8989/loginand Web API ticked. It takes about two minutes and gives you a Client ID. Spotify requires Premium on the account that registers, so a Free account can't do this step itself. Getting started has the steps. - Paste the Client ID into Spotifast and choose Sign in with Spotify. Approve access in your browser, then return to the app to see your library.
- To listen on this computer, open the device menu in the bottom player bar and choose Set up playback here, also available in Settings.
- Complete the separate playback approval in your browser. Your computer appears as a Spotify Connect device named Spotifast.
Library access and local playback have separate approvals. Spotifast remembers both using your computer's protected storage. See Getting started for the full walkthrough and How it connects for the details.
The Winamp mini player
A classic look for your music, with Winamp 2 .wsz and Windows Media Player .wmz skins, an equalizer,
a playlist, and animated sound displays. Switch with Ctrl+M
(Cmd+Shift+M on macOS), the shrink button, or Settings.
The spectrum analyser and oscilloscope also work in the collapsed title bar.
Explore the mini player, including skins, window sizes, controls, and the return to the main player.
Music in motion
MilkDrop reacts to music playing on this computer, with more than 10,000 presets downloaded on first use. Open it from the visualiser button, Settings, or the mini player's V menu.
Included on Linux, macOS, and Windows Intel/AMD builds. It is not included in the Windows on ARM download. Read the MilkDrop guide for presets, controls, and fullscreen mode.
Guides and help
The complete guide lives at spotifast.rocks.
| You want to… | Read |
|---|---|
| Sign in, set up playback, or configure themes, fonts, and proxies | Getting started |
| Learn shortcuts, command-line controls, and updates | Everyday use |
| Check storage sizes, clear cached audio and find stored files | Settings and files |
| Understand scrolling performance and reduce loading delays | Make it even faster |
| Fix "Spotify refused the audio key" or "Spotify is being slow" | When something goes wrong |
| Understand what is stored and sent | Privacy · How it connects |
| Check Spotify and librespot limitations | What Spotify allows |
| Is it safe for my account? | Account safety |
| Report a bug or propose a feature | Read Contributing, then use the issue forms. |
Contributing
Read CONTRIBUTING.md before opening an issue or pull request. To look at the interface without a Spotify account, run:
cargo run --features demo -- --demo
Translations live in assets/i18n/; see
Translating Spotifast. Release packaging
is described in PACKAGING.md.
More native apps
Want WhatsApp just as fast and native? ZapFast is Spotifast's sibling. Both are built on fastframe.
Spotify Connect updates
With local playback enabled, Spotify pushes changes from other devices over Spotifast's existing Connect session. Playback changes trigger a refresh. Volume-only changes appear directly for the active playback device without an extra request; an unconfirmed volume change made in Spotifast takes precedence. Push-triggered refreshes are at least a second apart and wait for a pending playback read to finish. Changes received during that read are folded into one follow-up. Connect pushes are ignored when this computer is the active device both before and after; position-only updates cause no requests. Regular polling remains the fallback.
Sonos playback
Sonos speakers use the Spotify Connect session for playback control. Enable local playback first, then select the speaker in the device picker.
Acknowledgements
Spotifast uses librespot, egui, fastframe, the Inter typeface (OFL), and Lucide icons (ISC).
Spotifast is an independent project and is not affiliated with Spotify. Spotify is a trademark of Spotify AB.
Licensed under the MIT License.

