All projects
Open source contribution 6 PRs merged 2026, Systems

Sonora

Spotify Connect and Jams for a native Rust music client

Six merged pull requests to Sonora, a native music streaming client built with Rust and GPUI (2.5k+ stars), plus a merged right-to-left text fix in its gpui fork and an upstream fix in librespot that the Connect work depended on.

Highlights

  • Sonora shows up as a Spotify Connect device: a phone can start, pause, skip, seek and set the volume, and Sonora can hand playback to and from other devices (+2.9k lines, #895)
  • Join, start and share Spotify Jams from the devices menu, with a QR code, participant list and a strip above the player bar (#934)
  • Likes made in Spotify's other apps update the heart right away (#905); autoplay now defaults to on (#935)
  • Right-to-left text now renders, wraps and edits correctly, with a matching fix in the gpui fork (#880, sonorahq/gpui #18)
  • Jam follow-ups: leaving a jam keeps its queue, and the tray and taskbar follow the host's track and play state (#1170)
  • librespot fix: dealer messages carrying plain JSON were dropped as bad base64, which hid Liked Songs changes (#1786)

Connect

The feature sits behind a provider-neutral music::connect trait, so state and views never see Spotify directly, following the crate rules in the repo. It is off by default because Spotify may not allow third-party clients.

State updates to Spotify are spaced out and back off when it rate-limits them. Tested on Windows 11 against the Spotify phone app.

Jams

Joining reads a jam link from the clipboard and shows who is in it first. The host can remove people, leaving a jam you own ends it, and the strip stays current as people join and leave.