apple-music
Skill159 starsChanged 6 months agoMITView on GitHub
Control Apple Music playback, inspect now playing, start playlists, and automate the macOS Music app.
We split this skill into the rules it gives an agent
29 rules. 0 are common, 17 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Use this skill for the macOS Music app and Apple Music playback workflows.
- Distinctive: line 39
Do not modify playlists or library state unless the user asks.
- Distinctive: line 40
If the user already asked you to play, pause, skip, or open something in Music, do not ask for a separate "yes" just to be safe.
- Very specific: line 44
When you already have an exact Apple Music URL for playback, prefer the bundled play-url.sh helper instead of inventing a new open or …
- Very specific: line 47
If you need to resolve a content target from a plain-language query first, use the bundled search.sh helper.
- Distinctive: line 74
Use these only for generic transport actions like "play", "pause", "resume", "next", or "what is playing".
- Very specific: line 87
Use this when the user asked to open Music or show a page.
- Very specific: line 99
If the user already provided an Apple Music URL, hand that URL to Music with AppleScript open location.
- Distinctive: line 105
Verify playback state before claiming success.
- Very specific: line 106
Only fall back to generic play or playpause if the user asked for generic playback and there is no content target to resolve.
- Very specific: line 114
No other helper filenames are shipped here.
- Distinctive: line 149
Use read-only verification after a station or stream handoff when helpful:
- Distinctive: line 163
Do not add a second confirmation step when the user already explicitly asked for playback control.
- Distinctive: line 173
If Music is not already open, launch the Music app first before sending the playback URL or transport command.
- Very specific: line 181
Do not satisfy a content-specific request with activate + play, playpause, or other generic transport controls alone.
- Very specific: line 183
Do not satisfy a content-specific request with open "https://music.apple.com/...", open "https://music.apple.com/search?term=...", or other …
- Very specific: line 186
Do not pass /artist/... or /search...
- Very specific: line 188
Do not invent additional helper filenames under skills/apple-music/scripts/.
- Distinctive: line 189
If you have not read or listed the exact script path, do not call it.
- Distinctive: line 190
Do not degrade an exact station or playlist request into a generic search page or an artist query and then claim success.
- Distinctive: line 192
Prefer read-only now-playing queries before issuing playback changes.
- Distinctive: line 193
Keep actions small and reversible: play or pause first, deeper library edits only on request.
- Distinctive: line 195
If the user wants durable automations, suggest a Shortcuts or scheduled host workflow instead of a one-off manual command.
- Distinctive: line 200
Do not assume Apple Music streaming is available if the Music app is only used for local media on that Mac.
- Distinctive: line 202
Do not change library organization, ratings, or playlists without explicit confirmation.
- Very specific: line 204
Do not use plain shell open on a https://music.apple.com/...
- Distinctive: line 207
Do not use an Apple Music artist profile page as if it were a playable URL.
- Very specific: line 208
Do not treat "play artist radio/station/playlist/album/song" as equivalent to "resume whatever is already loaded in Music."
- Distinctive: line 210
Do not pretend host playback control will work on non-macOS environments.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Apple Music
Use this skill for the macOS Music app and Apple Music playback workflows.
Scope
- play, pause, skip, or resume playback
- inspect what is currently playing
- open the Music app or a music URL
- trigger simple host-side playback actions on the Mac
Default Strategy
- Confirm whether the user wants local Mac playback control or just information about Apple Music content.
- Distinguish generic transport requests from content-specific requests.
- For content-specific requests such as an artist radio, station, playlist, album, or song, resolve a directly playable target first and hand that target to the Music app itself.
- For generic playback control on macOS, prefer small
osascriptactions against the Music app. - Do not modify playlists or library state unless the user asks.
- If the user already asked you to play, pause, skip, or open something in Music, do not ask for a separate "yes" just to be safe. Attempt the host-side action and rely on the runtime approval flow if the command needs approval.
- When you already have an exact Apple Music URL for playback, prefer the
bundled
play-url.shhelper instead of inventing a newopenor UI-automation sequence. - If you need to resolve a content target from a plain-language query first,
use the bundled
search.shhelper. Do not invent additional helper names.
Core Commands
Open the app:
open -a MusicPlayback controls:
osascript -e 'tell application "Music" to playpause'
osascript -e 'tell application "Music" to pause'
osascript -e 'tell application "Music" to next track'
osascript -e 'tell application "Music" to previous track'Now playing:
osascript -e 'tell application "Music" to get player state'
osascript -e 'tell application "Music" to if player state is playing then get {name of current track, artist of current track, album of current track}'Use these only for generic transport actions like "play", "pause", "resume", "next", or "what is playing". Do not use them to satisfy a request for specific content such as "Play Phil Collins Radio".
URL Workflow
Open Music directly only for app launch or page-view requests:
open -a Music
open "music://"Use this when the user asked to open Music or show a page. Do not use plain
shell open "https://music.apple.com/..." for a playback request, because that
opens the default browser instead of issuing an in-app playback command.
Targeted Content Workflow
For content-specific requests like "Play Phil Collins Radio on Apple Music":
- Resolve the exact Apple Music target first.
- For artist-only requests like "Play Phil Collins", prefer an artist radio or other directly playable station/song/album/playlist URL. Do not use the artist profile page itself as the playback target.
- If the user already provided an Apple Music URL, hand that URL to Music with
AppleScript
open location. - Otherwise, find the best matching Apple Music station, album, playlist, or track URL.
- For playback, hand the resolved URL to Music with AppleScript
open location, then trigger playback in Music. - Verify playback state before claiming success.
- Only fall back to generic
playorplaypauseif the user asked for generic playback and there is no content target to resolve.
Shipped helpers in this skill:
skills/apple-music/scripts/play-url.shskills/apple-music/scripts/search.sh
No other helper filenames are shipped here. Do not guess names like
lookup.sh, radio.sh, or any other sibling script that you have not
actually read or listed.
Preferred playback helper:
bash skills/apple-music/scripts/play-url.sh "https://music.apple.com/us/station/bruce-springsteen/ra.1691955673"The helper launches Music first when the app is not already running, opens the
resolved URL inside Music, nudges playback once, and prints verification
fields. For music.apple.com links it rewrites the handoff to a native
music://... deep link before asking Music to open it. Treat exit code 0 as
success. If it exits nonzero or prints ok=false, playback did not start
cleanly and you should not claim that music is playing. The helper rejects
Apple Music browse pages such as /artist/... or /search... because those
are not direct playback targets.
Preferred query-resolution helper when you do not already have a directly playable URL:
bash skills/apple-music/scripts/search.sh "Phil Collins"The search helper resolves a best-effort playable Apple Music target from the
query and, by default, immediately hands that URL to play-url.sh so playback
starts within the same approved action. Use --resolve-only only when you need
the resolved URL without playback:
bash skills/apple-music/scripts/search.sh --resolve-only "Phil Collins Radio"Use read-only verification after a station or stream handoff when helpful:
osascript <<'APPLESCRIPT'
tell application "Music"
get {player state, current stream title, current stream URL}
end tell
APPLESCRIPTWorking Rules
- Confirm before starting playback if the user may already be in a call or focused work session.
- Do not add a second confirmation step when the user already explicitly asked for playback control; let the runtime approval prompt handle host-side approval if needed.
- For
play ...requests, success means Music started playback, not merely that a page, search results, or the app window opened. - For exact URL playback, prefer
bash skills/apple-music/scripts/play-url.sh "<resolved-url>"over handwritten inline AppleScript. - For plain-language content requests without an exact URL, prefer
bash skills/apple-music/scripts/search.sh "<query>"so target resolution and playback stay in one approved action. - If Music is not already open, launch the Music app first before sending the playback URL or transport command.
- For artist-only playback requests, resolve an artist radio or another directly playable item. Do not treat an artist profile page as playable.
- The helper only counts playback as successful when Music exposes real
playback evidence such as a loaded track/stream or an advancing player
position, and when the target replaced the previous playback state.
missing valueis not success. - Do not satisfy a content-specific request with
activate+play,playpause, or other generic transport controls alone. - Do not satisfy a content-specific request with
open "https://music.apple.com/...",open "https://music.apple.com/search?term=...", or other browser-first URL opens. - Do not pass
/artist/...or/search...Apple Music URLs toplay-url.sh; those are browse pages, not direct playback targets. - Do not invent additional helper filenames under
skills/apple-music/scripts/. If you have not read or listed the exact script path, do not call it. - Do not degrade an exact station or playlist request into a generic search page or an artist query and then claim success.
- Prefer read-only now-playing queries before issuing playback changes.
- Keep actions small and reversible: play or pause first, deeper library edits only on request.
- If the user wants durable automations, suggest a Shortcuts or scheduled host workflow instead of a one-off manual command.
Pitfalls
- Do not assume Apple Music streaming is available if the Music app is only used for local media on that Mac.
- Do not change library organization, ratings, or playlists without explicit confirmation.
- Do not use plain shell
openon ahttps://music.apple.com/...URL as the playback step. That is a browser open, not a deterministic Music playback action. - Do not use an Apple Music artist profile page as if it were a playable URL.
- Do not treat "play artist radio/station/playlist/album/song" as equivalent to "resume whatever is already loaded in Music."
- Do not pretend host playback control will work on non-macOS environments.
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- epheterson/applemusic-mcp★ 112same name
- Panchangam18/background-computer-use★ 4same name
- ai-ecoverse/skills★ 1same name
- G-HunterAi/openclaw-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository91 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/llm-wiki/templates/AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- 1passwordSkill
- agentic-tpmSkill
- airtableSkill
- alexaSkill
- apple-calendarSkill
- apple-passwordsSkill
- bahnSkill
- blinkSkill
- bookingSkill
- brand-voiceSkill
- byd-batterySkill
- channel-catchupSkill
- code-reviewSkill
- code-simplificationSkill
- current-timeSkill
- diagramSkill
- discordSkill
- distil-pii-redactorSkill
- docxSkill
- download-platform-invoicesSkill
- excalidrawSkill
- fastbillSkill
- fax-sendSkill
- feature-planningSkill
- firecrawlSkill
- froniusSkill
- ga4Skill
- gh-issuesSkill
- github-pr-workflowSkill
- gogSkill
- google-adsSkill
- google-workspaceSkill
- gwsSkill
- handoff-linksSkill
- hermes3000-writingSkill
- hetzner-cloudSkill
- hetzner-dnsSkill
- hetzner-storage-boxSkill
- heygenSkill
- homematicSkill
- hubspotSkill
- hueSkill
- human-distillSkill
- hybridclaw-helpSkill
- image-generationSkill
- inbox-cleanupSkill
- iss-positionSkill
- langfuseSkill
- lexware-officeSkill
- llm-wikiSkill
- mailchimpSkill
- manim-videoSkill
- microsoft-365Skill
- miroSkill
- mittwaldSkill
- money-savingSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

