Skip to content
HypoxStudiosPublic

About

Native Spotify client for Windows in Rust + GPUI, playing through Spotify's official Soloist daemon.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Sonear

Sonear

A native Spotify client for Windows, built in Rust.

Website · Install · Features · FAQ · Privacy

CI Windows Rust Apache 2.0

Sonear playing music: colours change with every song, lyrics follow along, the palette searches, and the queue reorders

Demo mode, with made-up artists and artwork. Not affiliated with Spotify.

Features

QueueDrag, drop, remove, reorder.
RadioStart Spotify's radio from any song or artist. The song you picked plays first.
Ctrl+KSearch, playback, navigation and Spotify links, all from one box. Every shortcut can be rebound.
Synced lyricsLine by line, from LRCLIB. Click a line to jump to it.
Color from the coverThe whole app takes its accent from what's playing.
Mini playerAlways on top. Resize it, fade it, or switch it to the lyrics. It never steals focus from a game.
Tray and media keysClose the window and the music keeps going. Your keyboard and the Windows overlay still work.
HistoryA list of what you played.

The Ctrl+K palette   The mini player

Performance

CPU Memory
Idle 0.14% 39 MB
Playing 0.25% 41 MB
In use 0.87% 72 MB

Two-minute averages from a release build with a real Spotify account, on one Windows 11 machine with an i5-12500H and a 144 Hz display, as a share of the whole CPU, without Soloist. The app is 36 MB.

Install

Sonear requires Spotify Premium and Windows 11.

Download the installer from the latest release and run it. It isn't signed yet, so Windows may warn you: choose More info, then Run anyway.

The first launch walks you through connecting your own Spotify developer app and installing Soloist, Spotify's official player.

To build from source, you need Rust 1.92+, the Visual Studio C++ build tools and CMake:

git clone https://github.com/HypoxStudios/sonear
cd sonear
cargo run -p sonear --release

Just want a look? Demo mode needs no account:

cargo run -p sonear --features demo --target-dir target/demo

FAQ

Why do I need my own developer app?

Spotify only gives wide API access to large companies, so you create your own app for personal use. It's free and takes a couple of minutes.

What does it send, and where?

Nothing goes to us. Sonear talks to Spotify, to LRCLIB while lyrics are showing, and to GitHub to check for updates, which you can turn off. Settings → Delete all Sonear data wipes everything. More in the privacy policy.

What are the limits?

Mostly Spotify's:

  • Soloist builds expire after 90 days. Sonear warns you and updates with one click.
  • Followed playlists don't list their tracks, but they play fine, and Sonear fills them in as it hears them.
  • Search shows 10 results per page, artist pages show albums only, and there are no recommendations.
  • History starts from your last 50 plays and grows from there, without podcasts.
  • Crossfade follows your Spotify account's setting, and Windows has no output device picker.
Is it safe?

Your login and keys live in Windows Credential Manager, and Soloist only listens on your own machine. Report security problems to support@hypox.studio.

What's coming?

An MCP server for your own tools, an assistant you can ask for music, and spoken intros between songs. All optional and off by default.

Contributing

cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features

crates/soloist runs the player, crates/spotify talks to the Web API, crates/core holds playback, queue and library logic, and crates/app is the GPUI interface.

Credits

Built on GPUI and gpui-kit, with lyrics from LRCLIB. Inspired by Spotifast and spotatui.

Apache 2.0 · Notice · End-user agreement

Questions? support@hypox.studio

About

Native Spotify client for Windows in Rust + GPUI, playing through Spotify's official Soloist daemon.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages