Download Stellody

Free and open source: the model under GPL-3.0, the user interface under LGPL-3.0. No account and no cloud. Your music folder is read and never written to; everything Stellody learns lives in its own store on your machine.

Latest release
🪟

Windows

Windows 10 or 11, 64-bit

Download for Windows

Setup program (.exe)

Windows may show a SmartScreen warning when you run this: here's why.

Run the setup: it installs per user, so no administrator rights are needed. It reads what is already installed and shows one screen for what that means, whether that is an install, an update, a downgrade, a repair or an uninstall. It offers a desktop and a Start menu shortcut, then offers to start Stellody when you sign in, which brings it up in the notification area rather than over whatever Windows has just finished drawing.

Once it is installed

Point it at your music.

Choose a folder

One music folder, chosen once, from the button at the left of the top tray or from the File menu. Stellody scans it and remembers where it is.

It reads FLAC today

A folder holding MP3, M4A or WMA scans to nothing for now. Widening that is planned work; the project is honest about the size of it rather than quiet.

Rescans are cheap

Add an album later and rescan: a folder whose files are all unchanged is reused without opening one of them, so a rescan costs a fraction of the first scan.

It tells you when there is more

Stellody asks GitHub whether a newer version has been published, saying nothing unless there is one. Help then Check for updates asks outright. The request carries nothing about you or your library, not even which version you are running.

Building it yourself

From source

Stellody is Python 3.13 with PySide6. Install the development requirements, then run it:

python -m pip install -r requirements-dev.txt
python main.py

The test suite gates at 100% branch coverage over the layers reachable with no filesystem, no clock and no audio device. It also runs black, flake8 and ruff as assertions, so a formatting or linting regression is a test failure:

python -m pytest

The Windows build is two scripts. The first compiles the application with Nuitka using every core the machine has; the second zips that as a payload and compiles the setup program around it:

python buildexe.py
python buildinstaller.py