Sone
Native TIDAL desktop client for Linux. Modern UI, custom themes, and bit-perfect lossless audio up to 24-bit/192kHz via exclusive ALSA.
Install / Use
/learn @lullabyX/SoneREADME
[!IMPORTANT] Requires an active TIDAL subscription. Not affiliated with TIDAL.
https://github.com/user-attachments/assets/67d7a8ed-352b-4ce6-8b9c-70b7427a5f22
<p align="center"> <img src="data/sone_homepage_readme.png" width="32%" alt="SONE Linux TIDAL client — home page with lossless streaming library" /> <img src="data/sone_drawer_readme.png" width="32%" alt="SONE now playing drawer — Hi-Res FLAC playback with synced lyrics" /> <img src="data/sone_theme_readme.png" width="32%" alt="SONE custom theme — native Linux music player with full color customization" /> </p>The Vision
The Linux desktop app TIDAL never built.
SONE finally gives Linux users a first-class streaming client. It delivers the complete, fully-featured experience you expect with seamless library management and a sleek, familiar workflow—and then supercharges it.
We went beyond the basics with direct-to-DAC bit-perfect ALSA output, a resizable-adaptive floating miniplayer, custom themes, Discord Rich Presence, and multi-service scrobbling (Last.fm, Libre.fm, ListenBrainz)—all wrapped in a fast, native Linux app.
<details> <summary>Table of Contents</summary> </details>Features
Audio
- Lossless FLAC and MQA streaming up to Hi-Res (24-bit/192kHz) with automatic quality fallback
- Bit-perfect output — no resampling, no dithering. Your DAC receives the unaltered decoded signal
- Exclusive ALSA — bypasses PipeWire/PulseAudio entirely for direct hardware access
- Smart DAC matching — automatically detects your hardware's supported formats and sample rates, picking the best fit
- Volume normalization (ReplayGain) with automatic context switching between album and track gain
- Autoplay — discovers and plays similar tracks when your queue ends
Interface
- Custom themes — 12 presets and a full color picker for accent and background with both light/dark mode
- Lyrics — synced lyrics display for supported tracks
- Miniplayer — compact floating window with album art, playback controls, and resizable-adaptive layout
- Full-screen player — maximized view with album art, lyrics option and auto-hiding controls
- Queue persistence — picks up where you left off across restarts
- MPRIS integration — media keys, shuffle, repeat, seek, and desktop widget support
- Scrobbling — track your listening history on Last.fm, Libre.fm, and ListenBrainz with full ISRC and MusicBrainz metadata
- Proxy support — route traffic through HTTP, HTTPS, or SOCKS5 proxies
- Discord Rich Presence — show what you're listening to with album art, track info, and a direct TIDAL link
- System tray with playback controls and minimize-to-tray
- Keyboard shortcuts for all common actions with a built-in shortcut overlay
Library
- Library management — browse and sort your playlists, albums, artists, and mixes with playlist folder support
- Share — share tracks, albums, playlists, artists, and mixes with your friends via a direct TIDAL link
- Deep links — open
tidal://URLs directly in SONE
Why SONE?
SONE is a lightweight, native alternative to the official TIDAL web player and Electron-based unofficial clients.
- Full audio quality — browsers and Electron apps downsample audio to 48kHz before it leaves the application. SONE is native — it outputs at the source's original sample rate, up to 192kHz (TIDAL's max). Exclusive ALSA mode bypasses the system mixer entirely for bit-perfect output to your DAC.
- Familiar interface — a modern UI inspired by the streaming apps you already use
- Direct hardware access — GStreamer talks directly to your audio hardware. Lock your DAC to the exact source format, bypassing the system mixer
- Lightweight — built with Tauri and Rust. Small binary, low memory footprint
- Encrypted at rest — credentials, cache, and settings are encrypted with AES-256-GCM
- No telemetry, no tracking — fully open source under GPL-3.0. Your listening data stays on your machine
Installation / Download
OS Packages
Pre-built packages for Ubuntu/Debian (.deb), Fedora (.rpm), openSUSE (.rpm), and Arch Linux (PKGBUILD) are available on the GitHub Releases page.
<p align="center"> <a href="https://github.com/lullabyX/sone/releases/latest"> <img src="https://img.shields.io/badge/Debian%20/%20Ubuntu-.deb-A81D33?style=for-the-badge&logo=debian" height="60" alt="Download SONE .deb package for Debian and Ubuntu" /> </a> <a href="https://github.com/lullabyX/sone/releases/latest"> <img src="https://img.shields.io/badge/Fedora-.rpm-51A2DA?style=for-the-badge&logo=fedora" height="60" alt="Download SONE .rpm package for Fedora Linux" /> </a> <a href="https://github.com/lullabyX/sone/releases/latest"> <img src="https://img.shields.io/badge/openSUSE-.rpm-73BA25?style=for-the-badge&logo=opensuse" height="60" alt="Download SONE .rpm package for openSUSE Linux" /> </a> <a href="https://github.com/lullabyX/sone/releases/latest"> <img src="https://img.shields.io/badge/Arch%20Linux-PKGBUILD-1793D1?style=for-the-badge&logo=archlinux" height="60" alt="Download SONE PKGBUILD for Arch Linux and Manjaro" /> </a> <a href="https://aur.archlinux.org/packages/sone"> <img src="https://img.shields.io/badge/AUR-sone-1793D1?style=for-the-badge&logo=archlinux" height="60" alt="Install SONE from AUR (build from source)" /> </a> <a href="https://aur.archlinux.org/packages/sone-bin"> <img src="https://img.shields.io/badge/AUR-sone--bin-1793D1?style=for-the-badge&logo=archlinux" height="60" alt="Install SONE from AUR (pre-built binary)" /> </a> </p>Flathub
SONE is also officially available on Flathub, making it easy to install on any Linux distribution. You can install it via your software center or by using the CLI:
Install the application
flatpak install flathub io.github.lullabyX.sone
Run the application
flatpak run io.github.lullabyX.sone
<a href="https://flathub.org/apps/io.github.lullabyX.sone">
<img width="200" alt="Download on Flathub" src="https://flathub.org/api/badge?locale=en"/>
</a>
Building from source
Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
Node.js 18+ (via nvm, fnm, or your preferred method)
System dependencies:
<details> <summary>Ubuntu / Debian</summary>sudo apt install -y \
build-essential curl wget file patchelf \
libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libssl-dev \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav \
libsecret-1-dev
Optional (for exclusive ALSA output):
sudo apt install -y gstreamer1.0-alsa
</details>
<details>
<summary>Fedora</summary>
sudo dnf install -y \
gcc gcc-c++ make curl wget file patchelf \
webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel librsvg2-devel openssl-devel \
gstreamer1-devel gstreamer1-plugins-base-devel \
gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-libav \
libsecret-devel
Optional (for exclusive ALSA output):
sudo dnf install -y gstreamer1-plugins-base-tools
</details>
<details>
<summary>Arch Linux</summary>
AUR
SONE is available on the AUR in two variants:
Install with your AUR helper:
yay -S sone # build from source
# or
yay -S sone-bin # pre-built binary
Manual Install
sudo pacman -S --needed \
base-devel curl wget file patchelf \
webkit2gtk-4.1 gtk3 libayatana-appindicator librsvg openssl \
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav \
libsecret
Optional (for exclusive ALSA output):
sudo pacman -S --needed gst-plugin-pipewire alsa-plugins
</details>
Build and run:
git clone https://github.com/lullabyX/sone.git
cd sone
npm install
npm run tauri dev # Development mode
npm run tauri build # Release build (produces .deb, .rpm, .AppImage)
Using build scripts:
Docker-based build scripts are provided in build-scripts/build/ to produce distro-specific packages in isolated environments. Requires Docker.
./build-scripts/build/all.sh # Build all packages in parallel (deb, rpm, pacman)
./build-scripts/build/deb.sh # Build .deb only (Ubuntu 22.04)
./build-scripts/build/rpm.sh # Build .rpm only (Fedora)
./build-scripts/build/pacman.sh # Build pacman package only (Arch)
./build-scripts/build/all.sh --o
