███╗ ███╗██████╗ ██╗ ██╗ ████╗ ████║██╔══██╗██║ ██║ ██╔████╔██║██████╔╝██║ ██║ ██║╚██╔╝██║██╔═══╝ ╚██╗ ██╔╝ ██║ ╚═╝ ██║██║ ╚████╔╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ███╗ ███╗██╗ ██╗███████╗██╗ ██████╗ ████╗ ████║██║ ██║██╔════╝██║██╔════╝ ██╔████╔██║██║ ██║███████╗██║██║ ██║╚██╔╝██║██║ ██║╚════██║██║██║ ██║ ╚═╝ ██║╚██████╔╝███████║██║╚██████╗ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝
Music for your terminal.
Blazing fast, Rust native 🦀.
Stable v0.29.0+ available.
Rust (1.93.0+)
Linux / macOS
Windows (PowerShell)
Direct CLI Experience
Interactive TUI Experience
Linux (x86_64, ARM64), BSD/macOS, WSL, Windows
While I do appreciate a good GUI, I prefer my tools to be lightweight, incredibly fast, and follow the UNIX philosophy. There's an abundance of terminal music players and scripts out there, but they almost always try to do too much—whether it's rendering heavy visualizers, managing podcasts, or running background daemons (which I'm firmly against for a simple music app).
I just wanted something that plays music and gets out of the way, without reinventing the wheel. I love
mpv and yt-dlp, and since they are already installed on my system, why write a
custom audio engine from scratch? It's not that I hate having multiple tools doing similar things, but I
have a strong personal bias toward mpv. Because no existing player fit my workflow, I built a
blazing-fast Rust frontend around the tools I already use and love.
Simply run mpv-music to launch the interactive TUI, or use arguments for instant playback:
mpv-music -a "Daft Punk" (Filter by artist, instant-play if 1 match)
mpv-music --radio lofi (Jump straight into ad-free Lofi Hip Hop)
mpv-music --yt "never gonna give you up" (Search & stream directly from YouTube)
mpv-music "https://youtu.be/..." (Instantly play a URL)
mpv-music --help (See all available commands and shortcuts)
For full documentation, configuration options, and keybindings, please refer to the README.