While you wait·terminal·MIT
player
Apple Music remote above the prompt: track, progress bar and click buttons. macOS only.

player turns the row above the Claude Code prompt into a remote for Apple Music. While a track plays, one line shows the title, the artist, a progress bar and click-only buttons. /player expands it into a four-row band with the album cover drawn in block characters, the artist and album, volume, shuffle and repeat. Music.app stays the player; the mod drives it, on macOS, through Apple’s own interfaces.
The plugin is named player, which is why this page carries the author’s name in its address. You install it as player from the author’s claude-mods marketplace.
What it does
- Compact row. Appears on its own when something plays and leaves when Music.app goes idle.
/playeropens the full band and closes it again; the▲or▼button does the same from inside the band. - Buttons. Previous and next track, ten seconds back and forward, play or pause. The full band adds volume in steps of five, shuffle and repeat. Clicking the progress bar to seek is not possible: the press event carries no position.
- Commands.
/player <song>ranks your library and the Apple Music catalog together and plays the best hit; append- <artist>to tell two songs of one title apart./player pause,next,prev,volume 40,seek 30,shuffle on,repeat allandplaylist <name>do what they say./player playlists,search <text>andcatalog <text>print lists without playing. - Shell. While the plugin is on, its
bin/joins PATH, soplayer helpworks from a shell, and an optionalplayer-statuslinescript feeds Claude Code’s status line.
Install
Needs Claude Code 2.1.287 or later, macOS with Music.app, and a terminal that passes mouse clicks. On first run macOS asks whether your terminal may control Music; no Accessibility permission is needed.
claude plugin marketplace add aimdevlee/claude-mods
claude plugin install player@claude-mods
The marketplace is called claude-mods, the same name as Arunjay4213’s marketplace (budget-guard, quota-meter and others); if you already have that one added, the names collide.
Play something in Music.app, or run /player <song>. The row appears by itself.
How it works
On session.start the hooks module registers /player and starts a one-second clock. Every tick it runs bin/player status, a script inside the plugin, and parses the JSON it returns: state, title, artist, album, position, duration, volume, shuffle and repeat. It redraws only when something changed. According to the README, bin/player talks to Music.app through its AppleScript dictionary.
The cover is fetched only while the full band is open and only when the track changes: player art 12 exports the artwork from Music.app as a PNG, shrinks it with sips to a 24 by 8 pixel bitmap and packs two by two pixels per cell with quadrant block glyphs. The CLI caches the result per track; compact mode never exports artwork.
The band itself makes no network calls. The CLI does when you ask for the catalog: /player <song>, search, catalog and open query the iTunes Search API, without an API key, against the storefront in PLAYER_COUNTRY (default US).
Nothing goes to the model. The poll and the buttons print nothing; the only text /player writes is the reply to your own command, such as a search list. The density resets with each session and the module writes nothing to disk.
Limitations
- macOS only. Nothing appears in
claude -por the VS Code extension’s chat panel. The author documents the terminal only; the Desktop app’s Code tab is untested. - A song outside your library is opened in Music.app, not played: the AppleScript dictionary reaches only the library. Search also turns over subscription playlists and plays the shared tracks it finds there.
- The iTunes Search API returns storefront-specific IDs and the Korean storefront returns no songs at all; the author suggests using catalog results for listings only.
- Album art draws only for tracks Music.app holds artwork for, and its aspect depends on your terminal’s cell ratio;
CELL_ASPECTinbin/player-artis the number to adjust. - Clicks only, no hotkeys. The glyphs suit a font that has them; another font may substitute its own.
- Mod events and methods can change between Claude Code releases.
More mods
The whole directory →adlib-lyrics
Word-by-word lyrics of what plays in Music or Spotify, above the prompt. macOS only.
cat-spinner
A pixel-art cat above the spinner that walks, plays, sits to think and reacts to tools.
cc-buddy
The retired /buddy companion back above the prompt, leveling up from commits and tests.
persona-panel
A maid persona and a pixel portrait panel whose expression Claude changes as it works.


