Skip to content

Repository files navigation

Sonora

Build License Installs
Discord Matrix

A native music streaming client, built with Rust and GPUI

Stream from your favorite services and play local files — all in one native app.

image
image image
Adaptive themes are optional. Everything is (or will be) customizable.

Important

Sonora is not a piracy tool.

Sonora is not a platform for obtaining or sharing copyrighted material. We will not implement any functions that can be used to export decrypted streams, DRM licenses, content keys, or to convert protected streams into media files.

Sonora is not designed to circumvent subscriptions or other restrictions put in place by music streaming platforms. If the service demands that you have a valid subscription in order to play back their tracks, so will Sonora.

Features aimed at ripping, downloading, distributing, or gaining access to protected streaming content are out of scope for the project.

Features

  • Apple Music, Spotify, YouTube Music, Deezer, Subsonic/Navidrome and local playback
  • Gapless playback, audio normalization, shuffle, sleep timer
  • Synced/karaoke lyrics, background vocals, and romanization
  • Scrobbling with LastFM, ListenBrainz, LibreFM, and Maloja
  • Themes, fonts, icons, transparency, blur, and window styling
  • Discord Rich Presence, native file opening
  • macOS, Windows, Linux, and (probably) FreeBSD support

Installation

macOS

Install with Brew:

brew install --cask nolight132/tap/sonora

After installing (thanks Apple):

xattr -dr com.apple.quarantine /Applications/Sonora.app

Linux

Arch

Install from the AUR with your AUR helper of choice:

yay -S sonora-bin

sonora-bin installs the prebuilt release binary. sonora builds the same version from source instead, which takes a while on a Rust and GPUI tree but links against your own system libraries:

yay -S sonora

Either pipewire-alsa or pulseaudio-alsa is required, matching your sound server.

Flatpak

Add the Sonora repository (updates with flatpak update):

flatpak install --user https://sonorahq.github.io/sonora/sonora.flatpakref

AppImage

Download the x86_64 AppImage from the latest release, make it executable and run it:

chmod +x sonora-*.AppImage
./sonora-*.AppImage

An aarch64 build is published beside it. The AppImage carries no Vulkan driver and no ALSA bridge, so both still come from your system. It does not update itself, but it carries its update information, so AppImageUpdate or an AppImage manager such as AppManager can fetch a new release for you.

Nix

The flake packages the latest tagged release binary or builds from source if unavailable for your platform.

inputs.sonora.url = "github:sonorahq/sonora";
inputs.sonora.packages.${system}.default
inputs.sonora.packages.${system}.sonora (build from source)
inputs.sonora.packages.${system}.sonora-bin (prebuilt, if available)

You can set configuration options via the included Home Manager module under programs.sonora:

{
  imports = [ inputs.sonora.homeManagerModules.default ];
  programs.sonora = {
    enable = true;
    settings = {
      provider = "youtube";
      appearance.theme = "dark";
    };
  };
}

Windows

Installer

Download and run the installer, or the ARM installer on Windows on ARM.

Portable

Download the latest windows-msvc.exe for your architecture from Releases.

Community

Feel free to join our Discord server and Matrix space. Discord is the primary one, but we do have a Matrix bridge.

AI policy

We have nothing against the usage of LLMs in the project — in fact, we use them ourselves. We believe that AI can speed up development in a lot of meaningful ways and be a useful tool for learning new concepts. We have also found it particularly helpful for contributing to substantial codebases such as GPUI and librespot, where it has helped us quickly locate the relevant parts of the code.

However, using AI cannot act as an excuse for failing to understand, review, and test the changes proposed. Furthermore, we expect communication with a real person, not a computer. This includes but is not limited to PR/issue text generation, comments in discussions, etc. A short summary of minor changes can be generated and does not need to be disclosed explicitly, but the reasoning and motivation behind a change must come from the contributor and reflect their own understanding.

Note that PRs that fail to adhere to these requirements may be rejected without further notice.

AI-assisted proofreading and translation of human-written text are permitted.

Translations

Language Translated Coverage
English (en-US) 695/695 100%
Deutsch (de) 632/695 91%
Español (es) 610/695 88%
Français (fr) 632/695 91%
Italiano (it) 610/695 88%
Bahasa Indonesia (id) 610/695 88%
日本語 (ja) 610/695 88%
Русский (ru) 690/695 99%
Українська (uk) 690/695 99%
Polski (pl) 690/695 99%
Português (Brasil) (pt-BR) 610/695 88%
简体中文 (zh-CN) 610/695 88%
Türkçe (tr) 610/695 88%

Star History

Star History Chart

Credits

Sonora is built with the help of some incredible open-source projects, including:

  • Zed — a wonderful editor (ab)used by all core team members. Conveniently provides gpui — their native Rust rendering stack.
  • librespot — Spotify playback and library integration.
  • yt-dlp — certain YouTube ideas implemented in ytmusic-rs :)

Code signing

Sonora has applied for code signing through SignPath Foundation. Current releases are not yet signed through SignPath Foundation. If approved, signed releases will use free code signing provided by SignPath.io, with a certificate by SignPath Foundation.

License

Copyright (C) 2026 Sonora Contributors.

Sonora is free software, released under the GNU General Public License version 3 or later.

Sonora is an unofficial client and is not affiliated with, endorsed by, or sponsored by Spotify AB.

The binary also embeds the Inter typeface (SIL Open Font License 1.1) and four interchangeable icon sets: Lucide (ISC), Iconoir (MIT), Remix Icon 4.8.0 (Apache 2.0) and the Solar Linear set (CC BY 4.0, by 480 Design). Each pack keeps its licence beside its files in assets/icons. THIRD-PARTY.md lists every bundled dependency.

About

A native music streaming client, built with Rust and GPUI

Topics

Resources

Contributing

Stars

1.3k stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages