Skip to content
 
 

Repository files navigation

TidaLunar

TidaLunar

A native desktop TIDAL client written in Rust, bundling the TidaLuna client mod.

Windows · Linux · macOS · NixOS

Latest release Downloads Build Discord

Features

  • TidaLuna ships built in
  • Lighter and smoother
  • TIDAL Connect receiver (Windows, Linux, macOS)
  • Audio cache system
  • ASIO output on Windows
  • OS volume sync on Windows
  • System media controls integration
  • In-app updater
  • More to come

Roadmap

  • Exclusive ALSA output on Linux
  • Crossfade
  • Cache settings

Download

Every build is on GitHub Releases.

Platform Formats
Windows .exe installer (per-user, no admin prompt), portable .zip
Linux .deb (amd64, arm64), portable .tar.gz
macOS .zip (Apple Silicon, Intel)
NixOS flake
  • Linux: sudo apt install ./tidalunar_<version>_amd64.deb, or unpack the .tar.gz and run ./tidalunar.
  • macOS: unsigned, so right-click > Open on first launch. No in-app updater; re-download to update.
  • NixOS: nix profile install github:Brskt/TidaLuna, or nix run github:Brskt/TidaLuna.

Support

Something not working? Come ask on the TidaLuna Discord.

Requirements

All platforms

  • Rust (edition 2024, rustc >= 1.96)
  • Bun
  • CMake
  • Ninja

Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install -y \
  build-essential \
  pkg-config \
  libasound2-dev \
  libdbus-1-dev \
  libx11-dev \
  libglib2.0-dev \
  libgdk-pixbuf-2.0-dev \
  cmake \
  ninja-build

Windows

  • Visual Studio Build Tools (Desktop development with C++)
  • Ninja (choco install ninja)

macOS

  • Xcode Command Line Tools
  • CMake and Ninja (brew install cmake ninja)

Build

Dev build:

cargo xtask bundle

Release build (optimized, strips debug symbols from CEF binaries):

cargo xtask bundle --release

The bundle is created in dist/ with the executable, CEF files, and Bun runtime.

build.rs rebuilds the frontend (bun esbuild.config.ts) automatically on Linux and macOS. On Windows it reuses an existing frontend/dist/bundle.js, so after editing frontend/src, frontend/render, or frontend/plugins, run bun esbuild.config.ts from frontend/ before cargo xtask bundle.

Faster rebuilds (optional)

CEF's Rust bindings (cef-dll-sys) are large and recompile whenever the build fingerprint changes (switching between bundle and clippy, dev vs --release, or WSL vs Windows). sccache caches the compiler output so they build once and are reused:

cargo install sccache
export RUSTC_WRAPPER=sccache    # add to your shell profile to persist
export CARGO_INCREMENTAL=0      # lets sccache cache the workspace crate too

Code quality

cargo fmt
cargo xtask clippy

Logging

Logs are controlled by LOGS (default: 0):

  • LOGS=0 - No logs
  • LOGS=1 - General logs (IPC, player, plugins, media controls, TIDAL Connect, updater)
  • LOGS=2 - + Streaming details (governor state changes, range restarts, TTFB)
  • LOGS=3 - + Streaming verbose (chunk progress, governor periodic stats)

The in-app Settings toggle can raise the level too; LOGS acts as a floor over the saved value.

Linux/macOS:

LOGS=1 ./dist/tidalunar

Windows CMD:

set "LOGS=1" && dist\tidalunar.exe

Local data path

  • Linux: ~/.local/share/tidalunar
  • Windows: %LOCALAPPDATA%\tidalunar
  • macOS: ~/.local/share/tidalunar

TIDAL is a trademark of its respective owner. TidaLunar is an unofficial client, not affiliated with or endorsed by TIDAL.

About

A client mod for the Tidal music client & successor to Neptune

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages