- Rust 99.9%
- Makefile 0.1%
| docs | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| Makefile | ||
| README.md | ||
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.MpvFlatpak 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.