wimpysworld/sidra has 784 GitHub stars and 43 forks. Star changes are not measured yet. Last checked 2026-11-14 06:37 UTC. Last push 2026-11-13.
What you can do
- 🎧 Untouched audio - Sidra adds no AudioContext, DSP, or resampling of its own (Chromium and the OS can still resample); lossless on macOS and Windows via CastLabs EVS production VMP signing
- 🎨 Eight bundled themes - Catppuccin, Dracula, Everforest, Gruvbox, Nord, Rosé Pine, Solarized, and Tokyo Night - plus a live-reloading custom colour theme
- 📊 Last.fm scrobbling - opt-in, with browser approval or a custom scrobble endpoint
- 🎮 Discord Rich Presence - show what you are listening to, including Vesktop Flatpak on Linux
Measured star growth
- in 24h
- Collecting history
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
An elegant Apple Music desktop client for Linux, macOS and Windows. No frippery, just quality 🍎
Creative & MediaREADME.md
Original
Sidra
An elegant Apple Music desktop client for Linux, macOS and Windows. No frippery, just quality 🍎
Made with 💝 for 🐧🍏🪟
Sidra is Apple Music as a proper desktop citizen on Linux, macOS, and Windows - wired into each platform's native media subsystem, not bolted on top.
Most Apple Music desktop clients break the audio, mangle the playback controls, or bury you under a custom UI that Apple never signed off on - the problem is worst on Linux.
Sidra takes the opposite approach: wrap music.apple.com directly, stay out of the way, and let the audio through untouched. Apple owns the interface and keeps it current; Sidra inherits every improvement automatically.
Features
- 🎧 Untouched audio - Sidra adds no
AudioContext, DSP, or resampling of its own (Chromium and the OS can still resample); lossless on macOS and Windows via CastLabs EVS production VMP signing - 🎨 Eight bundled themes - Catppuccin, Dracula, Everforest, Gruvbox, Nord, Rosé Pine, Solarized, and Tokyo Night - plus a live-reloading custom colour theme
- 📊 Last.fm scrobbling - opt-in, with browser approval or a custom scrobble endpoint
- 🎮 Discord Rich Presence - show what you are listening to, including Vesktop Flatpak on Linux
- 🔔 Desktop notifications - tracks and radio songs with Play/Pause, Previous and Next controls where the platform supports notification actions
- 🌍 32 languages - localised storefront and interface
- 🧭 Back, Forward, and Reload - injected into both Apple Music and Apple Music Classical
- 🎮 Controller navigation - use a standard controller to move through and select items in both services
- ⚡ Fast playlist start - large library playlists start in one to three seconds once a playlist has been opened, and in four to five seconds the first time, instead of 17 or more; the track list is saved on your machine and deleted when you sign out
- 🖱️ Scroll to change volume - point at the player bar volume control and scroll; 5% a notch
- 🎼 Apple Music Classical - switch at runtime through Player in Settings or the tray:
- Start pages are Home, Browse, Playlists, Search, or your last page; Apple Music's are Home, New, Radio, All Playlists, or your last page
- 🐧 Linux:
- Widevine DRM via CastLabs Electron
- Wayland and X11 support
- Bi-directional MPRIS (
org.mpris.MediaPlayer2.sidra) over D-Bus, with seeking, queue-preserving Stop, media URL playback and radio song metadata
- 🍏 macOS:
- Full Widevine DRM with EVS production VMP signing
- Now Playing widget, Dock menu with playback controls, and Dock progress bar
- App menu (Cmd+Q, About) and native share sheet for the current track
- 🪟 Windows:
- Full Widevine DRM with EVS production VMP signing
- GSMTC media flyout, taskbar thumbnail toolbar (play/pause, next, previous)
- Taskbar overlay icon and progress bar showing playback state and position
- 🎚️ Application Indicator:
- Now Playing: track, artist, album, artwork
- Playback controls, volume, and mute
- Start page and last session restore, style switcher, zoom control
- Close to tray, opt-in: closing the window keeps Sidra running, with Hide and Show entries
- Share current track (macOS), auto-update status
- 🔄 Auto-update via GitHub Releases:
- AppImage and NSIS: silent OTA download with restart prompt; disable with
SIDRA_DISABLE_AUTO_UPDATE=1 - deb, rpm, Arch, Flatpak, Snap, Nix, macOS, Windows portable zip: update notification linking to the APT, RPM, Arch, Flatpak, Snap Store, Nix, Homebrew or Scoop page
- Unpackaged runs, and AppImage or NSIS with auto-update turned off: update notification linking to the GitHub release page
- AppImage and NSIS: silent OTA download with restart prompt; disable with
Open Settings with the gear button beside Back, Forward and Reload. With the player focused, press Ctrl+, on Linux or Windows, or Cmd+, on macOS. The resizable window contains player, start page, style, zoom, close-to-tray, notification, Discord and Last.fm preferences. Changes save immediately. The existing tray preferences remain available. View Settings screenshot.
Track notifications show artwork and let you select Play/Pause, Previous or Next without opening Sidra. Click the notification body to show the player. The playback button follows the current state. State changes do not reopen a dismissed notification. New tracks and radio songs replace the previous playback announcement. On Linux, Sidra requests transient notifications, so history retention depends on the notification service. On Linux, the controls and body click require a notification service that supports actions. On macOS, the controls require a signed app and alert-style notifications. The current unsigned macOS releases do not meet that requirement.
As seen in
![]() Episode 79: Pouring out the Sidra |
![]() Sidra 1.0 on the Linux desktop (German) |
I am a presenter on Linux Matters and discussed Sidra's origins in Episode 79. Linux Magazin Online covers Sidra 1.0 and includes an interview with me.
[!IMPORTANT] Sidra's macOS and Windows releases are currently unsigned, requiring Gatekeeper and SmartScreen workarounds at install time. Sponsoring the project 🩷 goes directly towards code-signing certificates to remove that friction for every user.
Install
| Platform | Repository | |
|---|---|---|
| Debian and Ubuntu | apt.wimpys.world | |
| Fedora and openSUSE | rpm.wimpys.world | |
| Arch Linux | pkg.wimpys.world | |
| Flatpak | flatpak.wimpys.world | |
| macOS (Homebrew) | brew.wimpys.world | |
| Windows (Scoop) | scoop.wimpys.world | |
| Nix and NixOS | nix.wimpys.world |
Each repository is signed, and its page gives the setup steps and keeps Sidra up to date.
Updates itself
| Format | Get it | How it updates |
|---|---|---|
| Snap | Snap Store | snapd refreshes it in the background |
| AppImage | x86_64 or arm64 | Sidra downloads each release and prompts for a restart |
| Windows installer | Latest release | Sidra downloads each release and prompts for a restart |
Theming
Choose Style in Settings. Sidra ships with Catppuccin, Dracula, Everforest, Gruvbox, Nord, Rosé Pine, Solarized, and Tokyo Night, plus the default Apple Music styling.
These theme examples show different artist pages. Select an image to view the full-resolution screenshot.
| Everforest | Catppuccin |
|---|---|
![]() |
![]() |
| Gruvbox | Dracula |
![]() |
![]() |
Your chosen theme applies to Apple Music, Apple Music Classical and Settings.
Custom theme
Place a custom-theme.json file in Sidra's user data directory or enable Noctalia's Sidra community template to add a live-reloading Custom Theme choice under Style in Settings. See Custom Themes in the wiki for file paths, colour keys, and setup instructions.
Mini Player
Sidra ships no mini player and does not need one. Christian Lauinger (@ChrisLauinger77) asked for one in #125, then built MPRIS MiniPlayer: a small GTK4/libadwaita window that controls any MPRIS player on Linux.
It pairs beautifully with Close to tray. Hide the Sidra window, keep the mini player on top, and place it anywhere on your desktop. Thank you, Christian 🙏
Why Sidra?
I used Cider for years, but as time passed and the weight of new features grew the core experience degraded.
Cider hardcoded a 96kHz AudioContext, so every track Apple delivers at 44.1 or 48kHz gets resampled up, then back down to whatever the hardware expects. Twice, needlessly. All audio routes through a DSP chain regardless of your settings - the "Cider Adrenaline Processor" markets itself as making lossy audio sound lossless, but it is biquad EQ shaping and cannot recover discarded information. Common advice in the community is to simply turn it off.
Reliability followed the same arc. Authentication reported failure after succeeding. Tracks stopped for no reason. Volume reset mid-session. On Linux, MPRIS volume never worked right because Cider's audio engine sat between the system volume curve and the actual output. These were not new bugs; they were architectural, and the architecture was load-bearing.
I wanted something that just worked. So, I made Sidra.
Linux came first. Every existing Apple Music client either lacks MPRIS, implements it badly, or wrecks the audio in the process. Media keys should work. Desktop notifications should fire. Volume should track. None of that is exotic, and none of it should require a custom audio engine.
macOS followed, for two reasons. Devices enrolled in MDM can block personal Apple ID authentication - the native app simply refuses to sign in. Sidra authenticates at the application layer, a glorified browser session, so MDM policy never sees it. Then there is the more relatable problem: a friend's daughter was steadily polluting his Apple Music recommendations with K-pop. Sidra installed alongside the native app gives her a fully isolated session - her listening history, her "For You" shelf, her algorithmic rabbit holes. His recommendations are his own again.
Windows followed at the request of another friend who wanted a decent Apple Music client that was not Cider.
The bonus became clear once everything was working. Wrapping music.apple.com directly means none of those failure modes can exist. Apple's audio pipeline, Apple's auth, Apple's UI - Sidra never creates an AudioContext. Audio flows untouched through Chromium's media stack to the OS. Authentication cannot drift out of sync with Apple's servers. The interface updates whenever Apple ships a change, automatically.
Sidra is the Spanish word for the traditional dry cider of Asturias in northern Spain - poured from height, unfiltered, drunk before it goes flat. The name came from a trip to the region for UbuCon Europe 2018. No additives, no artifice, nothing between the apple and the glass.
Documentation
Full guides and developer documentation live in the Sidra wiki:
- Home and Controls - configuration directory paths, keyboard shortcuts, and controller navigation
- Custom Themes -
custom-theme.jsonsetup, colour roles, and Noctalia integration - Scrobbling - Last.fm authentication, playback thresholds, radio scrobbling, and custom
multi-scrobblerendpoints - Development - architecture overview, Nix development environment, Widevine VMP signing, and Last.fm API credentials
See docs/SPECIFICATION.md for full technical detail: architecture, IPC event flow, MPRIS property checklist, platform media control implementation, and the complete feature inventory.
Dependency security is tracked in the open. Dependabot alerts carries the live state of every advisory affecting Sidra, and fixes are merged as they land. A live page beats a report checked into the repository, which is stale the day after it is written. GitHub restricts that page to repository maintainers.
Private vulnerability reporting is enabled. To report a security issue, follow SECURITY.md - your report stays between you and the maintainers until a fix ships.
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,560 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,659 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
120,114 starsmrdoob/three.js
JavaScript 3D Library.
118,345 stars





