Skip to content


Repository files navigation

Cmus Control

Control cmus with Media Keys ⏪ ▶️ ⏩ under macOS.

Project Outlines

The project outlines as described in my blog post about Open Source Software Collaboration.

  • The main purpose of this software is to provide support for cmus under macOS. Cmus can be controlled by the Media Keys of your Apple Keyboard.
  • The feature-set is restricted because this software already provides the features what it was made of. But still, feel free to request features.


  • At least macOS 10.8.
  • cmake to build it.
  • Since Cmus Control doesn't have the behavior of changing any foreign processes it's highly recommended to deactivate the Remote Control Daemon.
  • cmus installed. ;)


You can either install Cmus Control via Homebrew or manually. The preferred method of installation is via Homebrew.

Homebrew installation

  1. Add the thefox/brewery tap to brew.

    $ brew tap thefox/brewery
  2. Actual installation

    $ brew install cmus-control
  3. After a successful installation follow the Caveats output, start the service:

    $ brew services start thefox/brewery/cmus-control

    Or, if you don't want/need a background service you can just run

    $ cmuscontrold

Manual installation

  1. You need to install cmake: brew install cmake
  2. Run ./bin/ to compile Cmus Control Daemon and install cmuscontrold under /usr/local/bin path. A launchd.plist file named at.fox21.cmuscontrold.plist will be created under ~/Library/LaunchAgents to start Cmus Control Daemon automatically on login.

If you just want to compile Cmus Control Daemon without installing run ./bin/ The binary will be created at build/release/bin/cmuscontrold.

For a debugging version you can run ./bin/ The binary will be created at build/debug/bin/cmuscontrold.


Just run ./bin/ Doing so

  • cmuscontrold will be unloaded via launchctl;
  • ~/Library/LaunchAgents/at.fox21.cmuscontrold.plist will be removed;
  • /usr/local/bin/cmuscontrold will be removed.


After a successful manual installation the cmuscontrold is loaded/started automatically with launchctl. You can unload the daemon manually:

$ ./bin/

Or load it manually:

$ ./bin/


After changing the source code you might want to re-build the binary and re-install it.