A cross-platform lyrics viewer built with Flutter that displays and synchronizes song lyrics from multiple providers.
- Musixmatch
- Netease Music
- QQ Music
- LRCLIB
- Synchronized and syllable-synced (rich) lyrics support.
- Multiple lyrics providers with configurable priority.
- Local lyrics cache using Isar.
- Per-track and global lyrics offset support.
- Lyrics translation support, including LLM-based translation.
- Arch Linux (x86_64/arm64)
paru -Sy fluent-lyrics-bin-
Other Linux Distros
Download the portable archive from GitHub Releases or kindly package it yourself :3
Saving an LLM API key or Musixmatch token needs a Secret Service (GNOME Keyring or KWallet) and
libsecret.
-
Tracking GitHub Releases with Apps like Obtainium (Recommended)
-
Custom F-Droid repo:
-
Click to add the Fluent Lyrics custom F-Droid repo or scan this QR Code:
-
Sync the repos
-
Search for "Fluent Lyrics"
-
Check GitHub Releases for other platform builds (such as macOS).
- Linux
- Retrieve now-playing metadata via the MPRIS D-Bus interface.
- Android
- Requires Android 7.0 (API 24) or later.
- Currently tested primarily on Android 15 and later.
-
macOS
- Obtain now-playing metadata via the MediaRemote adapter.
- HUGE thanks to @watchdogexd for testing and contributing.
- I don't have a macOS device, so I can't test it directly; expect best-effort support.
-
Linux arm64
- I don't have a Linux arm64 device, so I cannot test on this architecture directly.
-
Windows
we dun want to :3
In fact, the project's developers do not have Windows installations, so we do not consider developing for Windows to have a sufficient benefit.
-
iOS
Theoretically impossible to obtain now-playing metadata without jailbreaking.
-
Other platforms/architectures Platforms not natively supported by Flutter will not be supported. Pull requests for other Flutter-supported platforms/architectures are welcome if accompanied by tests and feedback.
For architecture, setup instructions, codegen, and everyday commands, see:
- AGENTS.md — conventions, generated files, and agent rules
- docs/architecture.md — now-playing, fetch, cache, and UI flow
- docs/development.md — setup, toolchains, tests, and release workflows
Quick clone with submodules:
git clone --recurse-submodules <repo-url>
./tool/sync_opencc_assets.sh
flutter runThis project is vibe-coded; I think I only produced around 5% of the codebase, so don't expect any quality or polished experience from this.
Non-AI Coded Up To 5%!



