From sundial-org-awesome-openclaw-skills-4
Controls Spotify macOS desktop app via AppleScript CLI wrapper. Play tracks, playlists, albums, episodes; manage playback, volume without API keys or OAuth.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4This skill uses the workspace's default tool permissions.
Control the Spotify desktop app using AppleScript. Works reliably with the macOS Spotify app without API rate limits or OAuth.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Control the Spotify desktop app using AppleScript. Works reliably with the macOS Spotify app without API rate limits or OAuth.
# Play a playlist
spotify play "spotify:playlist:665eC1myDA8iSepZ0HOZdG"
spotify play "https://open.spotify.com/playlist/665eC1myDA8iSepZ0HOZdG"
# Play an episode
spotify play "spotify:episode:5yJKH11UlF3sS3gcKKaUYx"
spotify play "https://open.spotify.com/episode/5yJKH11UlF3sS3gcKKaUYx"
# Play a track
spotify play "spotify:track:7hQJA50XrCWABAu5v6QZ4i"
# Playback control
spotify pause # Toggle play/pause
spotify next # Next track
spotify prev # Previous track
spotify status # Current track info
# Volume control
spotify volume 50 # Set volume (0-100)
spotify mute # Mute
spotify unmute # Unmute
The spotify command is a wrapper script at {baseDir}/spotify.sh
| Command | Description | Example |
|---|---|---|
play <uri> | Play track/album/playlist/episode | spotify play spotify:track:xxx |
pause | Toggle play/pause | spotify pause |
next | Next track | spotify next |
prev | Previous track | spotify prev |
status | Show current track info | spotify status |
volume <0-100> | Set volume | spotify volume 75 |
mute | Mute | spotify mute |
unmute | Unmute | spotify unmute |
Accepts both Spotify URIs and open.spotify.com URLs:
spotify:track:7hQJA50XrCWABAu5v6QZ4ihttps://open.spotify.com/track/7hQJA50XrCWABAu5v6QZ4ispotify:playlist:665eC1myDA8iSepZ0HOZdGhttps://open.spotify.com/playlist/665eC1myDA8iSepZ0HOZdG?si=xxxspotify:episode:5yJKH11UlF3sS3gcKKaUYxhttps://open.spotify.com/episode/5yJKH11UlF3sS3gcKKaUYxspotify:album:xxxspotify:artist:xxxThe script auto-converts URLs to URIs.
For more control, use AppleScript directly:
# Play
osascript -e 'tell application "Spotify" to play track "spotify:playlist:xxx"'
# Pause/Play toggle
osascript -e 'tell application "Spotify" to playpause'
# Next/Previous
osascript -e 'tell application "Spotify" to next track'
osascript -e 'tell application "Spotify" to previous track'
# Get current track
osascript -e 'tell application "Spotify"
set trackName to name of current track
set artistName to artist of current track
return trackName & " by " & artistName
end tell'
# Get player state
osascript -e 'tell application "Spotify" to player state'
# Set volume (0-100)
osascript -e 'tell application "Spotify" to set sound volume to 75'
# Get current position (in seconds)
osascript -e 'tell application "Spotify" to player position'
# Set position (in seconds)
osascript -e 'tell application "Spotify" to set player position to 30'
tell application "Spotify"
name of current track -- Track name
artist of current track -- Artist name
album of current track -- Album name
duration of current track -- Duration in ms
player position -- Position in seconds
player state -- playing/paused/stopped
sound volume -- 0-100
repeating -- true/false
repeating enabled -- true/false
shuffling -- true/false
shuffling enabled -- true/false
end tell
When the user says:
spotify play <uri>spotify pausespotify nextspotify statusspotify play https://open.spotify.com/episode/5yJKH11UlF3sS3gcKKaUYx
osascript -e 'tell application "Spotify"
return "Track: " & (name of current track) & "\nArtist: " & (artist of current track) & "\nAlbum: " & (album of current track) & "\nState: " & (player state as string)
end tell'
The skill is self-contained. To make the spotify command available system-wide:
chmod +x {baseDir}/spotify.sh
sudo ln -sf {baseDir}/spotify.sh /usr/local/bin/spotify
Or add the skill directory to PATH.
"Spotify got an error"
Play command does nothing
No audio
For playlist management and search, use the web interface or consider the spotify-player skill (requires OAuth setup).