Skip to content

darkw3bb/aura

Repository files navigation

Aura icon

Aura

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.

Download Latest Release

Latest release Total downloads CI status

Maestro recommending introspective tracks Maestro building a mood-based playlist The finished introspective playlist


Why Aura

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.


Features

Listening experience

  • 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

Playlists as tags

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 — AI agent for your library

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.

Speed and efficiency

  • 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

Desktop-native

  • 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

Personalization

  • 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

Downloads

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.app

The 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.


Keyboard Shortcuts

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)

Tech Stack

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

Getting Started (Development)

Prerequisites

Platform-specific

macOS: Xcode Command Line Tools

xcode-select --install

Linux (Debian/Ubuntu):

sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
  libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev \
  libasound2-dev

Windows: Microsoft C++ Build Tools

Run locally

git clone https://github.com/darkw3bb/aura.git
cd aura
npm install
npx tauri dev

On first launch, enter your Navidrome server URL, username, and password in Settings. Click Sync Library to Local Cache to populate the local search index.

Build for production

npx tauri build

Architecture

src-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

Roadmap

  • 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

Contributing

Contributions are very welcome! If you want to improve Aura, open a PR.


License

PolyForm Noncommercial 1.0.0