Original author(s)Timo Hirvonen
Initial releaseJune 5, 2005; 18 years ago (2005-06-05)[1]
Stable release2.10.0 (July 5, 2022; 21 months ago (2022-07-05)) [±]
Written inC
Operating systemUnix-like
Available inEnglish
TypeAudio player

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.


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.[2] This resulted in a merge of the fork back into the official project in February 2010.[3]

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

cmus in the List view
cmus in the File Browser view
cmus in the Filter view


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:

Command cmus name Action triggered
b player-next play next track
c player-pause pause current track
x player-play play current track (after being paused)
z player-prev play previous track
v player-stop stops current track and sets timestamp to 00:00
B play-next-album play next album (if available in current directory)
Z player-prev-album play previous album (if available in current directory)
left (left arrow key) seek -5 goes back 5 seconds in current track
right (right arrow key) seek +5 goes forward 5 seconds in current track

See also


  1. ^ Initial release tag
  2. ^ "SourceForge Ticket #6365". Archived from the original on 12 November 2012. Retrieved 27 June 2017.((cite web)): CS1 maint: bot: original URL status unknown (link)
  3. ^ "Freshmeat announcement: cmus is alive". Archived from the original on 6 June 2011. Retrieved 24 April 2014.
  4. ^ cmus added to OpenWrt