Cmus

cmus (C Music Player) is a console audio player for Unix-like operating systems. cmus is distributed under the terms of the GPL-2.0-or-later and is operated exclusively through a text-based user interface, built with ncurses.

Employing a text-only design significantly reduces the resource demands for the program's operation, making it an optimal selection for underpowered computer systems. Moreover, it is advantageous for systems that do not possess a GUI, such as the X Window System. In some cases, using a terminal application can significantly accelerate navigating through the program.

History
cmus was originally written by Timo Hirvonen. At around June 2008, he discontinued development of cmus, which resulted in a fork named "cmus-unofficial" in November 2008. After a year of development, a takeover request was sent to SourceForge, which was granted after a 90-day period without response from the original author. This resulted in a merge of the fork back into the official project in February 2010.

User interface
The interface of cmus is centered on views. There are two views on the music library (an artist/album tree and a flat sortable list) and views on playlists, the current play queue, the file system and for filters/settings. There is always only one view visible at any time.

Owing to the console-orientation and portability goals of the project, cmus is controlled exclusively via the keyboard. Commands are loosely modeled after those of the vi text editor. General operation mimics being in command-mode of vi, where complex commands are issued by prepending them with a colon, (e.g. ":add /home/user/music-dir"), simpler, more common commands are bound to individual keys, such as "j/k" moving down/up, or "x" starting playback, and searches beginning with "/" as in "/the beatles".

Core features

 * Support for multiple audio formats: Ogg Vorbis, MP3, FLAC, Musepack, WavPack, Wav, MPEG-4/AAC, ALAC, WMA, APE, TTA, SHN and MOD.
 * Gapless playback
 * ReplayGain support
 * MP3 and Ogg streaming (SHOUTcast/Icecast)
 * Powerful music library filters / live filtering
 * Play queue
 * Compilations handling
 * Customizable colors and dynamic keybindings
 * Vi style search and command mode
 * Remotely controllable through cmus-remote program (UNIX socket or TCP/IP)
 * Compatibility with numerous Unix-like systems, including Linux, macOS, FreeBSD, NetBSD, OpenBSD, Cygwin and OpenWrt

Keybindings
Here is a list of some common keybindings to interact with cmus while in the terminal, taken from the official manpage on a Linux distribution: