skills/spotify/SKILL.md
Control Spotify playback: play, pause, skip, search tracks/albums/playlists, manage devices and queue via spogo CLI.
npx skillsauth add emanueleielo/ciana-parrot spotifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use the spotify bridge to control Spotify playback via spogo on the host.
spogo commands through host_execute. Never run sleep, echo, or any non-spogo command through the spotify bridge — they will be blocked by the gateway allowlist.spogo play — run spogo status --json and check that is_playing is true and the correct track is loaded. Never tell the user "it's playing" without verifying.--device flag when targeting a specific device, especially if spogo play fails with "missing device id".All commands run via host_execute(bridge="spotify", command="...").
IMPORTANT: spogo play requires a Spotify URI, not a name. Follow this exact sequence:
spogo search track "song name" --json (or artist/album/playlist)uri field from the first resultspogo play <uri>spogo status --json — check is_playing: true and correct track nameis_playing: false, see "Known Issues" belowspogo status # What's playing (text)
spogo status --json # What's playing (JSON, use for verification)
spogo play <uri> # Play a specific URI
spogo play <uri> --device "MacBook Air" # Play on a specific device
spogo pause # Pause
spogo next # Next track
spogo prev # Previous track
Always use --json to get URIs for playback.
spogo search track "bohemian rhapsody" --json
spogo search album "dark side of the moon" --json
spogo search artist "radiohead" --json
spogo search playlist "chill vibes" --json
spogo device list --json # List devices (use JSON to check is_active)
spogo device set "Living Room" # Switch device
spogo auth status # Check if authenticated
spogo auth import --browser chrome # Import cookies from Chrome
spogo auth import --browser safari # Import cookies from Safari
After Spotify restarts, all devices show is_active: false. In this state:
spogo play <uri> returns "Playback started" but does nothing (false success)Detection: After spogo play <uri>, run spogo status --json. If is_playing is still false or the track didn't change, the device is not active.
Workaround: Tell the user: "Spotify needs to be activated first — press play once in the Spotify app, then I can take over."
spogo play (resume) often fails with 403 Forbidden. This is a spogo/Spotify API bug.
Workaround: Never use spogo play without arguments. Instead:
spogo status --jsonspogo play <item.uri>Happens when no device is active and spogo can't auto-select one.
Workaround:
spogo device list --json to find available devices--device flag: spogo play <uri> --device "Emanuele's MacBook Air"is_active: false, tell the user to open Spotify and press play onceSpotify API has rate limits. If you get a 429 error, wait a moment before retrying. Do NOT try to run sleep via host_execute — just tell the user you'll retry in a moment and try the command again on the next message.
If a Spotify command fails, follow this sequence:
spogo auth status to check authenticationsp_dc cookie is missing/expired, run spogo auth import --browser chromeopen.spotify.com in Chrome, then retryspogo device list --json — if all is_active: false, tell user to activate Spotify manually onceAlways try via host_execute first. Only suggest manual steps if host_execute itself fails.
brew install steipete/tap/spogospogo auth import --browser chrome (or let Ciana do it)tools
Send and read WhatsApp messages via the wacli CLI. Search chats, view history, send text and files to contacts or groups.
development
Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or detailed meteorological analysis. No API key needed.
tools
Extract frames, thumbnails, or clips from video files using ffmpeg. Use when analyzing video content or creating previews.
tools
Diagnose and resolve errors with Ciana's host bridges, CLI tools, Claude Code mode, macOS permissions, and gateway connectivity.