explaingit

clangen/musikcube

4,764C++Audience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A full-featured music player that lives entirely in your terminal, no graphical interface, just keyboard shortcuts and text. Plays from your local music library, runs on Windows, Mac, and Linux, and includes a built-in streaming server so your phone can control playback remotely.

Mindmap

mindmap
  root((musikcube))
  Core Features
    Terminal interface
    Keyboard navigation
    Music library index
    Browse by artist album
  Audio
    ffmpeg codecs
    ncurses display
    System audio output
  Streaming Server
    Local web server
    musikdroid Android app
    Remote control
    Network playback
  Platform Support
    Windows
    macOS
    Linux
    Raspberry Pi
  Installation
    GitHub releases
    Homebrew macOS
    Chocolatey Windows
    Package managers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Play your music library from a terminal window using only keyboard shortcuts, with no graphical desktop needed

USE CASE 2

Run musikcube on a Raspberry Pi connected to a home stereo as a headless music server

USE CASE 3

Control music playback from your Android phone using the musikdroid app while audio plays through another machine

USE CASE 4

Build a custom music player plugin or frontend using the included software development kit

Tech stack

C++ncursesffmpegSQLite

Getting it running

Difficulty · easy Time to first run · 30min

Pre-built binaries on GitHub Releases page. Install via Homebrew on macOS or Chocolatey on Windows. Also available in BSD package managers. SDK included for plugin developers.

BSD 3-Clause license, free to use, modify, and distribute, including in commercial products, as long as you keep the copyright notice.

In plain English

musikcube is a music player that runs entirely in a terminal window, meaning it has no graphical interface with buttons and icons. Instead, you navigate it with keyboard shortcuts in a text-based display. It runs on Windows, macOS, and Linux, and also works well on a Raspberry Pi, which is a small inexpensive computer that some people connect to a home stereo. Despite the minimal visual design, musikcube handles the full workflow of a music library: it scans your files and builds an index of your music collection, lets you browse by artist, album, and track, and plays audio through your system's audio hardware. It supports common formats through the ffmpeg library, which handles most audio codecs people encounter. The interface uses a library called ncurses, the same technology behind many command-line tools that need text-based menus and navigation. A notable feature is the built-in streaming server. When musikcube is running, it starts a local web server that exposes your music library over your network. A companion Android app called musikdroid can connect to this server, letting you browse and play music from your phone while the audio comes out of whichever machine musikcube is running on. The server also accepts remote control commands, so you can pause, skip, or adjust volume from the app. The documentation notes clearly that this server is not designed to be exposed to the internet without additional configuration, specifically because it does not include encrypted connections by default. Installation options include pre-built binaries on the GitHub releases page, Homebrew on macOS, Chocolatey on Windows, and package managers on FreeBSD and OpenBSD. The project also ships a software development kit for anyone who wants to build plugins or custom frontends that connect to the same audio engine. Full keyboard shortcut documentation and a user guide are available in the project wiki.

Copy-paste prompts

Prompt 1
I installed musikcube and want to set up my music library. How do I point it at my music folder, let it index everything, and start browsing by artist and album?
Prompt 2
Show me the most important keyboard shortcuts in musikcube for playing, pausing, skipping tracks, adjusting volume, and switching between library views.
Prompt 3
I want to run musikcube on a Raspberry Pi connected to my stereo and control it from my Android phone using musikdroid. Walk me through the setup.
Prompt 4
The musikcube streaming server documentation says not to expose it to the internet without extra config. What specific steps should I take to secure it if I want to access my music remotely?
Open on GitHub → Explain another repo

← clangen on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.