Apache-2.0 — available on crates.io & AUR

Music that lives
in your terminal.

audium is a keyboard-driven music player for people who live in the terminal. No Electron. No cloud sync. No background daemons. No FFmpeg. Your files, your library, your rules.

audium
audium in action

Pick your platform.

Cargo (all platforms)

cargo install audium

# requires Rust (edition 2024)

AUR (Arch Linux)

paru -S audium

# or yay, or manually with makepkg

audium targets Linux exclusively and uses ALSA, the standard Linux audio API — its development headers are needed to build, see the README for distro-specific instructions.

Everything you need.
Nothing you don't.

Format agnostic

Plays MP3, FLAC, OGG, WAV, AAC, M4A, Opus, AIFF and more via Symphonia — no FFmpeg required.

Fully keyboard-driven

Every action is a single keypress. Tab between panels, j/k to navigate, space to play.

📂

Built-in file picker

Browse your filesystem and import audio without ever leaving the app.

🏷

Track metadata

Artist, album, year and genre are read automatically from your files' tags on import and shown throughout the UI. Edit any field in-app with e, or open the built-in lyrics editor from the same screen.

🎨

Themes

15 built-in themes — dark, light, nord, gruvbox, catppuccin, rosé pine, dracula, tokyo night, and more. Switch live with instant preview. Transparency support for composited terminals.

🎵

Playlists & loop modes

Create, rename, and delete playlists. Loop a single track or the whole queue — toggle with l.

🔀

Shuffle

Shuffle any playlist into the queue with a single keypress. Keeps your library intact while letting you rediscover it.

Playback speed

Adjust speed from 0.05× to 3× in 0.05× steps with [ and ]. Displayed in the player bar when not at 1×.

🔍

Tracklist filter

Press / to filter by title, artist, album, year or genre in real time. Esc clears. Works across all playlists.

🎤

Lyrics

Store plain or LRC synced lyrics per track. Toggle an overlay with y — synced lyrics auto-scroll to the current line; plain lyrics scroll with j/k. Edit directly with the built-in text editor.

🔊

Threaded audio

Playback runs on a dedicated thread. UI interactions will never stutter your music.

💾

It's your library

Stored at $XDG_DATA_HOME/audium/library.json — plain JSON, human-readable, editable by hand. audium doesn't rename your files, doesn't embed metadata, and never phones home.

Lighter. Simpler.
Actually yours.

Alternatives like termusic ship with heavy dependency trees, FFmpeg requirements, daemon processes, or config formats that take longer to learn than the app itself. audium takes a different approach.

No FFmpeg, no daemon

One binary. Zero background processes. Symphonia handles every format natively in-process.

Smaller and faster to build

Fewer dependencies means shorter compile times and a ~3 MB release binary with no runtime surprises.

Cleaner UI

Built on ratatui with a layout designed for daily use — not just feature completeness. Panels, queue, progress bar, volume: everything visible at once.

Modern codebase

Written in Rust edition 2024. No unsafe, no global state, no legacy baggage.

Plain data, no lock-in

Your library is a JSON file you can read, edit, back up, or move between machines freely. audium is a tool, not a platform.

System audio, done right

audium plays through your default system output. Switch devices at the OS level and it follows — no in-app device picker that fights your setup.

Muscle memory
over menus.

Playback

SpacePlay / Pause
nNext track
NPrevious track
/ Seek backward / forward
+ / =Volume up
-Volume down
lCycle loop mode
[ / ]Speed down / up

Navigation

TabCycle panel focus
j / Move down
k / Move up
EnterPlay selected
?Help overlay

Library & Queue

fOpen file picker
/Filter tracklist
aAdd to queue
pAdd to playlist
cNew playlist
zShuffle playlist into queue
dRemove
rRename
eEdit track metadata & lyrics
yToggle lyrics overlay
mMenu
qQuit (confirm)