Make managing music, podcasts and online streams fun again.
  • Rust 99.9%
  • Makefile 0.1%
Find a file
2026-08-12 00:13:52 +02:00
docs handle closing open mpv flatpak sessions 2026-08-11 23:30:51 +02:00
src much faster reaction when moving trough large music lists 2026-08-12 00:13:52 +02:00
tests Adding music view with basic music playing 2026-08-11 19:58:40 +02:00
.gitignore initial commit 2026-08-09 22:13:42 +02:00
Cargo.lock renamed application to aux 2026-08-11 22:01:19 +02:00
Cargo.toml renamed application to aux 2026-08-11 22:01:19 +02:00
CLAUDE.md much faster reaction when moving trough large music lists 2026-08-12 00:13:52 +02:00
Makefile renamed application to aux 2026-08-11 22:01:19 +02:00
README.md create, update and delete playlists from the app 2026-08-11 23:15:50 +02:00

aux

A terminal media player for everything you listen to. Three sections, switched with 1, 2 and 3:

Music scan a local folder, browse by artist or album, and queue what plays next
Radio search radio-browser.info, bookmark what you like, add your own streams
Podcasts search iTunes or fyyd, subscribe, and pick up each episode where you left it
 1 Music │ 2 Radio │ 3 Podcasts                                                         aux
┌ Browse ──────────┐┌ Artists (3) ────────────────┐┌ Miles Davis (4) ────────────────────────┐
│Artists (3)       ││   Artist      Albums  Tracks││   Title              Album         Time │
│Albums (4)        ││   Miles Davis 2       4     ││▶  Pharaohs Dance     Bitches Brew  9:26 │
│All tracks (7)    ││   Portishead  1       1     ││   So What            Kind of Blue  9:22 │
│Loved (1)         ││   Various Ar… 1       2     ││★  Blue in Green      Kind of Blue  5:37 │
│Road Trip (5)     ││                             ││   Freddie Freeloader Kind of Blue  9:46 │
└──────────────────┘└─────────────────────────────┘└─────────────────────────────────────────┘
 ▶ Miles Davis - Pharaohs Dance                    0:41 / 9:26 │ vol  70% │ mpv
 ↵ play ␣ pause ,. skip / filter o sort g playlist r rescan y yank ? help

Audio is handled by an external player — mpv or ffplay — rather than decoded in-process. That keeps the build free of ALSA/PulseAudio dependencies and means AAC+, HLS and Opus streams just work. With mpv it also means GNOME's media controls and media keys drive it for free.

Requirements

  • Rust 1.85 or newer
  • mpv (preferred) or ffplay from ffmpeg. Both native binaries and the io.mpv.Mpv Flatpak are found automatically.
  • A Unix-like system. Linux is what it is developed on; the signal handling and socket paths assume Unix, so Windows is not supported.

Build and install

make install          # release build, installed to ~/.local/bin/aux

PREFIX and DESTDIR are honoured, so make install PREFIX=/usr/local and packaging into a staging root both work.

Other targets:

make build            # cargo build --release
make run              # cargo run, straight into the TUI
make check            # fmt, clippy -D warnings, tests — run this before committing
make test fmt lint uninstall clean

The crate is named aux-player because aux is a reserved device name on Windows and cannot be used as a package name; the binary it produces is aux.

First run

Just run aux. On first start it writes a commented config.toml and scans ~/Music if that folder exists. Nothing else is required.

aux                   # start
aux --paths           # print the config, data and log locations actually in use
aux --help

Point it somewhere else with m in the Music section, or by editing music.directories. Press ? at any time for the keys that apply to where you are.

Documentation

Keys every binding, by section
Configuration config.toml in full
Files where things are stored, and how sessions are restored
Playback backends, what each can do, MPRIS, the terminal title
Music scanning, grouping, the queue, playlists
Radio searching, stream checks, import and export
Podcasts subscribing, refreshing, episode state
Development layout of the source, testing, logging

Licence

MIT.