musiclisted
Install: claude install-skill anthonymaley/apple-music
# Apple Music Controller
Control Apple Music from the terminal via the `music` CLI. All commands run as bash — use `music` for structured operations, with `--json` for machine-readable output.
## If the CLI is not installed
If `command -v music` fails, do NOT improvise AppleScript fallbacks. Tell the user the CLI needs a one-time build and point them at the install script, then retry after they run it:
```bash
bash "${CLAUDE_PLUGIN_ROOT}/scripts/install.sh" # from the plugin
# or, in the repo: scripts/install.sh
```
## Fast path: play requests
For any request shaped like "play X [on/in speakers] [at volume%] [shuffle]", forward the user's words to `music play` in ONE bash call — strip only the leading "play" and any % sign. The CLI's parser deterministically extracts speaker names (including several at once), volume, filler words ("in", "the", "and", "at", "on"), and a trailing "shuffle":
```bash
music play kid a in the kitchen and living room at 60
music play jazz for cooking kitchen 40 shuffle
```
Naming speakers routes playback to exactly those speakers (it deselects the rest). Don't pre-chain `music speaker` + `music volume` for simple play requests — `music play` does all three. If the query itself contains a speaker-like word, use the explicit flags (`--song`, `--album`, `--playlist`) instead.
## Architecture
The music CLI has two backends:
- **AppleScript** — playback, speakers, volume, now playing (no auth needed)
- **REST API** — catalog search, library w