Astra

July 5, 2026 · View on GitHub

A desktop music player for people who still have a music library. Packaging status

code size GitHub Release GitHub License GitHub Actions Workflow Status GitHub Downloads (all assets, all releases) WinGet Package Version

Astra home screen

Astra plays your local music - FLACs, MP3s, whatever your collection looks like. It has a native C++ DSP engine, real-time visualizers, a parametric EQ, Dolby Atmos decoding, synchronized multi-room playback, scrobbling, and a UI that adapts to your music. No telemetry, no accounts, no streaming.

Playback

Gapless playback with pre-buffering so albums flow the way they were intended. Supports MP3, FLAC, WAV, OGG, AAC, M4A, OPUS, WMA, AIFF, ALAC, APE, and WavPack natively, with an FFmpeg fallback for anything else. Dolby Atmos multichannel decoding works without Atmos-compatible hardware. Bit-perfect output bypasses the OS mixer for direct hardware delivery — WASAPI Exclusive on Windows, CoreAudio HAL on macOS, ALSA hw on Linux.

Visualizers

Seven real-time visualizers powered by a native C++ module - oscilloscope, spectrum analyzer, vectorscope, and more. The entire scope rack is customizable: pick your scopes, drag and resize them into any layout, and save presets. The analysis path runs independently from output routing, so scopes always reflect the source material.

Equalizer

Up to 20 fully parametric bands, a live frequency response graph with spectrum overlay, and built-in presets. Save your own, or import AutoEQ headphone calibration profiles directly.

Astra equalizer

Library

Point Astra at your music folders and it handles metadata extraction, album artwork, and a searchable library you can browse by artist, album, or track. Reads ID3v2.4 and Vorbis Comments, parses multiartist tags properly, supports custom artist images, and scans .lrc files by filename. Favorites and recently played are tracked automatically, and the built-in metadata editor lets you fix tags without leaving the player. A Quick Launch palette and full keyboard shortcuts get you anywhere without touching the mouse.

Audio Settings

Output device selection, loudness normalization with ReplayGain support, per-channel remapping for multichannel setups, and delay calibration for wireless or Bluetooth speakers.

Interface

The seek bar renders the actual waveform of the current track. Fullscreen mode shows album art with an ambient spectrum backdrop.

Astra fullscreen mode

The mini player keeps controls accessible when you want Astra out of the way.

Astra mini player

There's also synced lyrics with auto-scroll, pulled automatically from embedded lyrics, an .lrc file, or from LRCLIB. The lyrics panel pops out into its own window if you want it somewhere else.

Astra lyrics

Scrobbling

Built-in support for Last.fm, AudioScrobbler, and ListenBrainz, plus a custom scrobbler profile system if you're running your own endpoint. Built in multiscrobble lets you submit to as many services as you want at once.

Integrations

Everything that touches the network is optional and off by default.

  • Discord Rich Presence - show what you're listening to with cover art, with options for how the presence is laid out
  • Self-hosted media servers - Jellyfin, plus any Subsonic-compatible server (Navidrome, Airsonic, Gonic, Funkwhale, etc.)

Astra API

An optional local REST API lets external tools read the current track, playback position, and cover art, or control playback. Loopback only, bearer token auth, disabled by default. See the API docs for details.

Parallax

Play the same music in perfect sync across multiple machines on your local network. One machine hosts and controls playback; any number of others join as speakers and stay locked to it. A guided setup walks each machine through its role, speakers are paired with a PIN over the LAN, and per-speaker delay tuning corrects anything that sounds early or late. Playback stays gapless across track boundaries on every speaker. Local network only, no accounts, no cloud.

Parallax is opt-in and still experimental (though stable) enable it from the Experimental section of Settings to reveal its controls.

Experimental

Opt-in experimental features that may get changed or removed based on feedback:

  • PWA phone controller - control playback from your phone over local network, with system media controls and a QR code pairing wizard - now supports Astra mobile
  • Library integrity scanner - find broken files, missing metadata, and quality issues across your library
  • Graph visualization - additional visualizer mode to see connections between artists in your library
  • Ambient stereo-to-multichannel upmix - fills the rear channels on multichannel setups when you're playing stereo files
  • 5×5 grid activity indicator - shows what Astra is doing in the background
  • Controller support - navigate Astra with an Xbox or PlayStation controller: D-pad/stick to move, A/Cross to select, bumpers for tabs, stick-clicks to jump to the sidebar or now playing

Download

Prebuilt binaries for Windows, macOS, and Linux are available on the Releases page.

Officially available on the AUR (astra-music-bin).

Windows users can also winget install Boof2015.Astra

Community maintained packages

These packages are maintained by third parties and are not built, audited, or officially supported by the Astra project. Packaging, signing, updates, and distribution are handled by their respective maintainers.

  • AUR - community maintained AUR source package
  • TerraPKG - community maintained Fedora/RPM package

Building from Source

Prerequisites: Node.js 18+, npm, and a C++ compiler toolchain.

PlatformToolchain
macOSXcode Command Line Tools
WindowsVisual Studio Build Tools
Linuxbuild-essential, python3, libasound2-dev
git clone https://github.com/Boof2015/astra.git
cd astra
npm install

The postinstall script compiles the native C++ visualizer module for your platform.

npm run dev              # Development
npm run build            # Build application assets
npm run dist             # Package for current platform
npm run dist:mac         # macOS (DMG + ZIP)
npm run dist:win         # Windows (NSIS + Portable)
npm run dist:linux       # Linux (AppImage + DEB + RPM + tarball)

Documentation

For detailed technical documentation, see the Wiki.

Support

If you find Astra useful and want to support a broke college student, consider supporting development:

Ko-fi

License

This project is licensed under the GNU General Public License v3.0. See LICENSE for the full text.

Star History

Star History Chart