A desktop music player for Jellyfin and Navidrome servers — bit-perfect mpv playback (Linux + Windows).
Project description
jellytoast
A desktop music player for Jellyfin and
Navidrome servers —
bit-perfect playback, casting, mini-player, and offline downloads.
Features
- Desktop app for your self-hosted music — supports Jellyfin and Navidrome, with multiple libraries.
- Bit-perfect audio — FLAC / ALAC / OPUS / DSD playback via mpv.
- Cast anywhere — send music to Chromecast, AirPlay 2, Sonos, DLNA, or Snapcast. A built-in local relay can forward the stream for trickier setups, like Tailscale connections or fully offline playback.
- Offline mode — cache albums, playlists, or your whole library for offline playback.
- Floating mini player — compact and album-art views.
- Desktop features — media keys, a tray icon, optional notifications, and a start-at-login option.
- Frosted-glass look — real background blur on KDE and Windows, light and dark themes, and your own accent color.
- And more — synced lyrics, an audio visualizer, smart playlists, smart shuffle, a sleep timer, ListenBrainz scrobbling, tag editing (Jellyfin), and encrypted login storage.
Install
Windows 10/11 (x64)
- winget:
winget install wolfgangwarehaus.jellytoast - Installer or portable zip from Releases — the direct download is unsigned, so SmartScreen warns on first run; click More info → Run anyway (verify the SHA256 against
SHA256SUMS). - Microsoft Store — coming soon.
Linux
- Ubuntu / Debian / Mint (22.04+ / 12+): download the
.debfrom Releases, thensudo apt install ./jellytoast_*_amd64.deb - AppImage (any distro, no install needed) — coming soon.
- AUR — coming soon.
Any OS
- PyPI:
pipx install jellytoast
From source (Python 3.11+, Qt 6, libmpv):
git clone https://github.com/wolfgangwarehaus/jellytoast.git
cd jellytoast
pip install -e .
jellytoast # or: python3 -m jellytoast
Want to contribute? CONTRIBUTING.md has the
dev setup, the architecture, and the conventions this codebase follows.
Documentation
| Doc | What it is |
|---|---|
docs/user_guide.md |
Shortcuts, mini player, tray, casting, settings, themes & blur, troubleshooting |
CONTRIBUTING.md |
Dev setup, architecture & the conventions this codebase follows |
docs/SPEC.md |
What the app actually does today |
docs/decisions.md |
Architecture decision log (why, not just what) |
docs/TODO.md |
The backlog (P0–P4) |
SECURITY.md |
How to report a vulnerability |
CHANGELOG.md |
Dated history of what shipped |
License
GPL-2.0-or-later. See LICENSE.
Support
Want to leave a tip? Ko-fi ☕
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jellytoast-0.1.2.tar.gz.
File metadata
- Download URL: jellytoast-0.1.2.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46bb40032f8b3438dc03bf3626090460439cc9f4a836495d48f68ec495284315
|
|
| MD5 |
c5d8a1bf8470b82cc459afde21c5da1d
|
|
| BLAKE2b-256 |
69c617636697d5b01cf77166adf60f048d332b536fa2fa86f97a83d89d27b342
|
Provenance
The following attestation bundles were made for jellytoast-0.1.2.tar.gz:
Publisher:
pypi-publish.yml on wolfgangwarehaus/jellytoast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jellytoast-0.1.2.tar.gz -
Subject digest:
46bb40032f8b3438dc03bf3626090460439cc9f4a836495d48f68ec495284315 - Sigstore transparency entry: 1886654897
- Sigstore integration time:
-
Permalink:
wolfgangwarehaus/jellytoast@9e916b7c46babf9e78e6311fc376c5883da38fe3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wolfgangwarehaus
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9e916b7c46babf9e78e6311fc376c5883da38fe3 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file jellytoast-0.1.2-py3-none-any.whl.
File metadata
- Download URL: jellytoast-0.1.2-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
482cb59acfd695e2e79bfc16e87efdbfaad6442045debd2e2ef4ae890f5abc0c
|
|
| MD5 |
f0623e1086b11e942d0207be94cb1c8b
|
|
| BLAKE2b-256 |
d3fee418a2d88efe3b0f7127b0ddae936481f98b7a86283c467e5cae326a6798
|
Provenance
The following attestation bundles were made for jellytoast-0.1.2-py3-none-any.whl:
Publisher:
pypi-publish.yml on wolfgangwarehaus/jellytoast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jellytoast-0.1.2-py3-none-any.whl -
Subject digest:
482cb59acfd695e2e79bfc16e87efdbfaad6442045debd2e2ef4ae890f5abc0c - Sigstore transparency entry: 1886654924
- Sigstore integration time:
-
Permalink:
wolfgangwarehaus/jellytoast@9e916b7c46babf9e78e6311fc376c5883da38fe3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/wolfgangwarehaus
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9e916b7c46babf9e78e6311fc376c5883da38fe3 -
Trigger Event:
workflow_dispatch
-
Statement type: