A beautiful and feature-packed Apple Music CLI!
Written in Rust.
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.
You can install am
through cargo
from crates.io.
$ cargo install am
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>
.
- Beautiful now playing display
- Playback controls (play, pause, toggle, resume, back, forward, next, previous)
- Discord rich presence
- Launch agent installation
- Shell completions
Through a macOS launch agent, the Discord rich presence can be made to run in the background as long as you are logged in.
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
.
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";
}
}
- Raycast's Apple Music extension for a helpful reference of Apple Music's AppleScript interface usage
- sardonicism-04/discord-rich-presence for the original Rust crate for connecting to Discord
- caarlos0/discord-applemusic-rich-presence for inspiring the Discord presence part of this CLI
- @ajaxm for ceding ownership of the
am
package on crates.io
GPLv3