#music #apple #macos #rich-presence #apple-music #tui

app am

A beautiful and feature-packed Apple Music CLI

9 releases

0.5.4 Sep 12, 2024
0.5.3 Jul 4, 2024
0.5.2 Feb 8, 2024
0.5.1 Nov 17, 2023
0.0.0 May 23, 2019

#186 in Command line utilities

GPL-3.0-only

155KB
1.5K SLoC

am

A beautiful and feature-packed Apple Music CLI!

Written in Rust.

Installation

This GitHub repository contains a flake. Add github:ryanccn/am to your flake inputs:

{
  inputs = {
    # ...other inputs
    am = {
      url = "github:ryanccn/am";
      inputs.nixpkgs.follows = "nixpkgs";
    }
  }
}

Then, use the overlay from overlays.default and add am to your packages. Alternatively, you can use packages.{default,am} directly.

Cargo

You can install am through cargo from crates.io.

$ cargo install am

Manual download

Download the aarch64 (Apple Silicon) or the x86_64 (Intel) version of the binary.

Dequarantine them with xattr -d com.apple.quarantine <path> and make them executable with chmod +x <path>.

Features

  • Beautiful now playing display
  • Playback controls (play, pause, toggle, resume, back, forward, next, previous)
  • Discord rich presence
  • Launch agent installation
  • Shell completions

Screenshots

am now

am now

am next

am next

am discord

am discord

Discord presence launch agent

Through a macOS launch agent, the Discord rich presence can be made to run in the background as long as you are logged in.

Standard installation

You can install the Discord presence as a launch agent by running am discord install. Note that this depends on the executable/symlink staying in the same place; if it moves to a different place, run the command again.

The am process running in the launch agent will log to ~/Library/Logs/am-discord-rich-presence.log.

You can uninstall the launch agent with am discord uninstall.

Home Manager

This repository's flake also provides a Home Manager module at homeManagerModules.default. This module exposes a service am-discord-rich-presence that you can enable.

{
  services.am-discord-rich-presence = {
    enable = true;

    # optional
    # logFile = "${config.xdg.cacheHome}/am-discord-rich-presence.log";
  }
}

Thanks to...

License

GPLv3

Dependencies

~16–31MB
~509K SLoC