Music image

BM – minimalist terminal music player

BM is a modern terminal music player written in Go with a responsive text-based user interface. It supports popular audio formats and combines playback controls with library browsing, playlist management, and fuzzy search.

The player can display album artwork using the Kitty, Sixel, and iTerm2 image protocols. It also integrates with Linux desktops through MPRIS2, media keys, and track change notifications.

This is free and open source software.

Installation

I opted for the manual installation method. Go is required to build BM, but it was already installed on my system.

First, clone the project’s GitHub repository:

$ git clone https://github.com/zyoung11/BM.git

Cloning the BM GitHub repository

Next, change into the newly created directory and build the application:

$ cd BM
$ go build -ldflags="-s -w" .

In Operation

BM supports the important audio formats, including FLAC, MP3, WAV, and OGG.

The interface is divided into three sections: the library pane, album artwork, and playlist. You can move between them with the Tab key or jump directly to a section by pressing 1, 2, or 3.

Library

Library page

The library offers directory browsing, a feature I particularly value in a music player. Fuzzy search helps locate music without having to enter an exact match.

Album art

BM displays album covers using the Kitty, Sixel, and iTerm2 image protocols. It also extracts colours from the album artwork and uses them to theme the user interface.

Album art

The program has a playback bar which is not showed in my screenshot to save space.

Playlist

The playlist pane provides access to the current playback queue and complements the library browser well.

Playlist

Other Features

  • Control playback, volume, seeking, and playback speed.
  • Automatically switches the speaker sample rate for each track.
  • Responsive terminal interface adapts to the available dimensions.
  • Player, playlist, and music library pages.
  • Browse directories and search the music library with fuzzy matching.
  • Dynamic playlist management and playback history.
  • Detects and marks unplayable audio files.
  • MPRIS2 integration, desktop notifications, and media key support.
  • Customisable key mappings, player icons, and playback modes.
  • Automatically saves configuration and application state.

Summary

I really like music players that offer directory browsing, so BM immediately ticks an important box for me. Its clean interface is easy to navigate and adapts well to the available terminal dimensions. Album artwork also adds welcome visual appeal without detracting from the terminal-focused design.

BM is deliberately minimalist, so I am not clamouring for a long list of extra features. Nevertheless, there are some surprising omissions. Most notably, gapless playback is not supported. This is an important omission, and its inclusion would make the player more appealing for everyday listening.

The default keyboard shortcuts are somewhat unorthodox and take time to learn, although all key mappings can be customised in the configuration file.

BM is still at an early stage of development, but it is definitely one to watch.

Help

Linux has a plethora of high quality terminal-based music players which are showcased in this roundup.

Website: github.com/zyoung11/BM
Support:
Developer: zyoung11
License: MIT License

BM is written in Go. Learn Go with our recommended free books and free tutorials.


Related Software

Terminal-Based Music Players
musikcubeSublime audio engine, library, player and server written in C++
tapThe lightest music player with gapless playback
TizoniaPowerful cloud music player based on OpenMAX IL 1.2 written in C and C++
cmusGreat set of features including the essential gapless playback
termusicMusic Player TUI written in Rust
kewMusic player written in C
spectrumSimple and intuitive music player for tech enthusiasts
ncmpcFrugal Music Player Daemon client
ncmpyMusic Player Daemon client
MOCDesigned to be powerful and easy to use
RMuPSimple music player lacking gapless playback
SirenExtremely frugal with system resources
grumpCLI audio player written in Go
GomuAnother Go music player
mpvcmpc-like control interface for mpv
RustPlayerAudio and radio player written in Rust

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted