A desktop music player built for the way music was meant to be heard—album by album, year by year.
Connects to Navidrome and Subsonic-compatible servers. Lightweight. Native. Cross-platform.
Most music players treat songs as interchangeable items in a playlist. Aura doesn't.
Aura is built for people who love music — who want to put on an album and hear it the way the artist intended, front to back. The entire interface is designed around albums and artists, not individual tracks. There's no standalone track shuffle mode because that's not the point. The point is discovery and immersion.
Browse your library through time. The Years view lets you scroll through your collection decade by decade, year by year — a timeline of your musical taste. The Albums landing page shows what you've been listening to recently, keeping you connected to the music you're into right now. Artist pages group everything by album, because that's how music is made.
Designed to feel instant. Your entire library — every album, artist, track, and piece of cover art — is cached locally on your machine. Search results come back in microseconds via a full-text index. Scrolling through thousands of albums is smooth because the UI never waits on your server. Pages open near-instantly. The app feels like browsing local files, even though your music lives on a remote server.
Your music. Your server. A proper desktop app with a point of view about how music should be experienced.
- Album-first navigation — Albums, Artists, and Years are the primary ways to explore your library
- Years view — browse your entire collection grouped by release year, newest first
- Recently Played — the Albums landing page keeps you close to what you've been listening to
- Artist pages — album-grouped tracks with per-album ratings and Play All; click any album name or cover art to jump to its detail page
- 3D tilt hover — Apple TV-style pointer-tracking tilt, shine, and parallax on album cards
- Star ratings — rate tracks and albums 1–5 stars, synced back to your server
- Genre browsing — explore your library by genre
- Queue management — drag-and-drop reordering, play next, add to queue, previously-played history
Aura treats playlists like tags. A track can belong to many playlists at once, and a playlist is just a view of every track that carries that tag. This is different from traditional playlist managers where a track lives in one ordered list — here the focus is on categorization and discovery.
- Tag any track — open the command palette (Cmd/Ctrl+K, type
tag) and assign one or more playlist tags to a track; if the playlist doesn't exist yet, it's created on your server automatically - Tag pills on every track row — small color-coded pills appear inline next to each track showing which playlists it belongs to
- Click a pill to navigate — clicking a tag pill jumps straight to that playlist's track list
- Remove tags — hover any tag pill to reveal an ×, click to untag the track
- Playlists view — a dedicated sidebar lists all playlists with J/K keyboard navigation; press Enter to select and browse tracks, Escape to return to the sidebar
- Rename and delete — rename playlists inline (double-click or Rename button) and delete with confirmation; changes sync to your Navidrome server
- Per-playlist colors — pick from 8 accent-derived color shades so each playlist is visually distinct; colors automatically adapt when you switch themes
- Searchable playlists — playlists appear as results in the Cmd/Ctrl+K command palette alongside artists, albums, and songs
Maestro is a built-in AI assistant that lives in a sidebar panel (toggle with Cmd/Ctrl+J). It can read your entire library, analyze your taste, and take real actions — building playlists, tagging tracks, and surfacing music you forgot you had. Powered by the Anthropic Claude API with your own API key.
How it works with tags. Maestro is designed to work hand-in-hand with Aura's tagging system. Tell it a mood, a feeling, or a vibe — "introspective late-night music", "upbeat workout energy", "melancholy rainy day" — and it will dig through your albums, artists, genres, and ratings to find tracks that fit. It tags them into a playlist automatically, so you end up with deeply personal, emotionally curated collections that no algorithm could generate. You can keep refining: ask it to find 10 more tracks that match the vibe, or to pull from a specific artist's catalog.
What Maestro can do:
- Search your library — find tracks, albums, and artists by name, keyword, or description
- Browse everything — list all albums, all artists, all genres, all playlists; filter albums and artists by name
- Deep-dive into artists — fetch an artist's full discography and every track across all their albums in one shot
- Explore albums — get the complete tracklist, ratings, and metadata for any album
- Analyze your taste — look at your rated tracks, find patterns, and suggest music based on what you already love
- Filter by genre — pull tracks from any genre with pagination for large collections
- Build playlists by mood — tag tracks into new or existing playlists based on feelings, moods, lyrical themes, or sonic qualities
- Bulk-tag tracks — tag up to 50 tracks at once when building larger playlists
- See what's playing — check the current track, playback position, and upcoming queue to make contextual suggestions
- Interactive responses — every album, artist, playlist, and track mentioned in a response is a clickable button that navigates or plays instantly
- Markdown formatting — responses render with full rich text: bold, lists, code blocks, headings
Usage tracking: Maestro tracks token usage and estimated cost per session. View totals in Settings or broken down by period (week/month/all time) on the Stats page. Reset anytime.
- Aggressive local caching — metadata in SQLite, cover art on disk, search via FTS5 full-text index — the UI almost never makes a network call
- Background library sync — incremental sync every hour, full sync every 6 hours, with a progress indicator in the player bar — your cache stays fresh without you lifting a finger
- Native Rust audio engine — pure Rust playback via rodio + symphonia: FLAC, MP3, AAC, ALAC, OGG Vorbis, Opus, WAV, AIFF, WavPack
- Persistent cover art cache — album art is downloaded once and served from disk forever, with iTunes fallback for missing artwork
- ~5 MB binary — minimal memory footprint, no Electron, no browser overhead
- OS media controls — macOS Now Playing / Control Center, Windows SMTC, Linux MPRIS
- Keyboard-driven — Cmd/Ctrl+K search, vim-style J/K navigation, Enter to activate, and more
- Auto-updates — built-in updater checks for new versions and installs with one click
- Cross-platform — macOS, Windows, and Linux from a single codebase
- 15 built-in themes — Midnight, Nord, Catppuccin, Aura Light, Winamp, Matrix, iTunes Classic, Cyberdeck, Phosphor, Vaporwave, Bloodmoon, Espresso, Sahara, Y2K, Cybertruck
- Track list album art — optional cover art thumbnails in track rows, togglable in Settings
Head to the Releases page and grab the latest build for your platform:
| Platform | Architecture | What to download |
|---|---|---|
| macOS | Apple Silicon (M1/M2/M3/M4) | Aura_x.x.x_aarch64.dmg |
| macOS | Intel | Aura_x.x.x_x64.dmg |
| Windows | x64 | Aura_x.x.x_x64-setup.exe (NSIS installer) |
| Linux | x64 | Aura_x.x.x_amd64.AppImage or .deb |
macOS users: Aura isn't code-signed yet, so macOS will show an "app is damaged" warning. Click Cancel, then run this in Terminal to clear the quarantine flag:
xattr -cr /Applications/Aura.appThe app will open normally after that. This is a standard macOS restriction on unsigned apps — the app is not actually damaged.
Where are the builds? Every tagged release triggers a GitHub Actions build across macOS, Windows, and Linux. The compiled installers are uploaded as assets to the Releases page — not under "Packages." Look for the Assets dropdown at the bottom of each release.
Auto-updates: Once installed, Aura checks for new versions automatically. You'll see a banner at the top of the app when an update is available — one click to download, install, and restart.
| Shortcut | Action |
|---|---|
J / K |
Move focus down / up in lists and grids |
Enter |
Activate focused item (open album, play track) |
Cmd/Ctrl + K |
Open search and command palette (type tag for Apply tag; commands appear above results) |
Cmd/Ctrl + J |
Toggle Maestro AI sidebar |
G then L |
Go to Playlists (tags synced from Navidrome as playlists) |
Cmd/Ctrl + [ |
Navigate back |
Cmd/Ctrl + ] |
Navigate forward |
Space |
Play / Pause |
Escape |
Close search / overlay |
| Media keys | Play, Pause, Next, Previous (via OS) |
| Component | Technology |
|---|---|
| Framework | Tauri 2 |
| Frontend | React 19, TypeScript, Vite |
| Styling | Tailwind CSS 4 |
| State | Zustand |
| Virtual scroll | TanStack Virtual |
| Audio | rodio + symphonia (Rust) |
| Media keys | souvlaki (Rust) |
| HTTP | reqwest (Rust) |
| Cache | SQLite + FTS5 via rusqlite |
| Async | Tokio |
| Updates | tauri-plugin-updater |
| AI | Anthropic Claude API (via Rust proxy) |
| Markdown | react-markdown |
macOS: Xcode Command Line Tools
xcode-select --installLinux (Debian/Ubuntu):
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev \
libasound2-devWindows: Microsoft C++ Build Tools
git clone https://github.com/darkw3bb/aura.git
cd aura
npm install
npx tauri devOn first launch, enter your Navidrome server URL, username, and password in Settings. Click Sync Library to Local Cache to populate the local search index.
npx tauri buildsrc-tauri/ Rust backend
src/
audio/ Audio playback engine (rodio + symphonia)
streaming.rs HTTP streaming with chunked buffer
queue.rs Queue, shuffle, repeat logic
cache/ SQLite metadata cache + FTS5 search + cover art disk cache
subsonic/ Subsonic/OpenSubsonic API client
client.rs REST client, auth, streaming URLs
models.rs API response types
commands.rs Tauri IPC command handlers
media_controls.rs OS media key integration (souvlaki)
sync.rs Background library sync (incremental + full)
lib.rs App setup, plugin registration, event wiring
src/ React + TypeScript frontend
components/
Library/ Album grid, album detail, artist detail/list, cover art,
genre list, Years view, album card with 3D tilt
Player/ Transport bar (play/pause/seek/volume/format pill/sync indicator)
TrackList/ Virtual track lists (all tracks, rated, genre, shared VirtualTrackList)
Queue/ Queue panel with drag-and-drop reordering
Search/ Search + command palette (Cmd+K; tags via Navidrome playlists)
Playlist/ Playlists page (tag sidebar + tracks)
Agent/ Maestro AI sidebar (chat panel, action buttons, markdown)
Settings/ Server connection, theme picker, display options, Maestro config
Stats/ Listening stats + Maestro usage tracking
Rating/ Star rating component
UpdateBanner.tsx In-app update prompt
stores/ Zustand state (library, player, settings, theme, context menu,
agent chat, usage tracking)
hooks/ useSearch, useUpdater, useKeyboardNav, useTiltHover
themes/ 15 color themes (midnight, nord, catppuccin, aura-light, etc.)
lib/
tauri.ts Typed Tauri IPC wrappers
agentTools.ts Anthropic tool schemas + dispatcher (library read/write tools)
agentLoop.ts Multi-turn agent conversation loop with tool execution
- Gapless playback
- Offline mode (download tracks)
- Synced lyrics (LRCLIB)
- Last.fm / ListenBrainz scrobbling
- Audio equalizer
- Vim-style keyboard navigation
- Waveform seekbar
- Mini player mode
- Multiple server support
- AI agent (Maestro) — mood-based playlist builder and library research assistant
- Smart playlists
- ReplayGain volume normalization
- Crossfade
- Playlists / tag system (tracks belong to multiple playlists)
- Theme system (15 themes)
- Years view (browse by release year)
- Background library sync
- Cover art disk cache
- Album card 3D tilt hover
Contributions are very welcome! If you want to improve Aura, open a PR.


