cmus
Play music from the command line
TLDR
Open cmus into the specified directory (this will become your new working directory)
Add file/directory to library
Refresh the metadata of songs in the library
Search for songs, albums, or artists
Pause/unpause current song
Toggle shuffle mode on/off
Quit cmus
SYNOPSIS
cmus [options] [file|directory|playlist]
PARAMETERS
--help
Displays a brief help message and exits.
--version
Outputs the cmus version information and exits.
--listen [ADDR]
Starts cmus and listens for connections from cmus-remote clients. If ADDR is not specified, it listens on a default local socket. This is crucial for remote control or scripting.
--servername
Specifies a unique server name for this cmus instance. Useful when running multiple cmus instances concurrently to differentiate them for cmus-remote.
[file|directory|playlist]
One or more paths to audio files, directories to scan for music, or M3U/PLS playlist files. These items will be added to the library or queue upon startup.
DESCRIPTION
cmus is a small, fast, and powerful console music player for Unix-like operating systems. Designed for efficiency and minimal resource usage, it offers a purely text-based user interface, making it an excellent choice for users who prefer working in the terminal or on systems with limited graphical capabilities.
Its core philosophy revolves around keyboard-driven navigation and control, providing a highly responsive and fluid user experience once familiarized with its keybindings. cmus supports a wide array of audio formats, including MP3, Ogg Vorbis, FLAC, WavPack, Musepack, WAV, and more, leveraging various audio output plugins like ALSA, PulseAudio, OSS, and Sun Audio. It features gapless playback, replaygain support, and a robust library management system that organizes music in a tree-like hierarchy.
Users can create and manage playlists, apply filters, and customize nearly every aspect of the player, from keybindings and colors to file display formats. Its lightweight nature and powerful features make it a favorite among power users and terminal enthusiasts.
CAVEATS
cmus has a text-based user interface (TUI), which means it lacks graphical elements common in modern music players. All interactions are performed via keyboard shortcuts, which can have a steep learning curve for new users. Configuration is primarily done through text files (`~/.config/cmus/rc` and `~/.config/cmus/autosave`), requiring manual editing for advanced customization. While highly efficient, it does not offer built-in visualizers or direct streaming capabilities like some graphical players; however, external tools can sometimes bridge these gaps.
INTERACTIVE KEYBINDINGS
The primary method of interacting with cmus is through its extensive set of keyboard shortcuts. Users navigate different views (e.g., library, queue, playlists, settings) by pressing number keys (1-7), add files with `a`, play/pause with `p`, stop with `s`, and search with `/`. Mastering these bindings is essential for efficient use.
VIEWS AND MODES
cmus organizes its functionality into several distinct views, accessible by pressing numbers 1 through 7:
- 1: Library (Artist/Album view)
- 2: Library (Flat view)
- 3: Play Queue
- 4: Playlists
- 5: File Browser
- 6: Filters and Settings
- 7: Help
CONFIGURATION FILES
cmus stores its main configuration in `~/.config/cmus/rc` and its auto-saved state (like current queue, library, and settings) in `~/.config/cmus/autosave`. These plain text files allow users to deeply customize keybindings, colors, column layouts, and various playback parameters.
HISTORY
cmus was initially developed by Timo Hirvonen, with its first public release around 2008. It was conceived as a lightweight, fast, and highly customizable music player that embraced the Unix philosophy of doing one thing well and doing it efficiently. From its inception, the focus has been on providing a robust and responsive terminal-based experience, prioritizing speed and keyboard control over graphical interfaces. It has maintained an active development community, continually evolving with new features, bug fixes, and support for modern audio technologies while retaining its core principles of minimalism and performance.
SEE ALSO
cmus-remote(1): The indispensable companion utility for controlling cmus instances from the command line or scripts., mpd(1): Music Player Daemon, another popular client-server architecture for console music playback., ncmpcpp(1): A popular feature-rich curses client for MPD., alsamixer(1): A terminal-based mixer often used to adjust system volume in conjunction with cmus when using ALSA output.