From 1e5be0f77f0edf91c8b54dba9a88f9736b65a642 Mon Sep 17 00:00:00 2001 From: Kirill Korikov <11762090+yourconscience@users.noreply.github.com> Date: Mon, 15 Jun 2026 20:28:45 +0200 Subject: [PATCH 1/2] add spotify skill wrapping spotify_player CLI --- AGENTS.md | 1 + plugins/dotagents/skills/spotify/SKILL.md | 100 ++++++++++++++++++++++ skills/spotify/SKILL.md | 100 ++++++++++++++++++++++ 3 files changed, 201 insertions(+) create mode 100644 plugins/dotagents/skills/spotify/SKILL.md create mode 100644 skills/spotify/SKILL.md diff --git a/AGENTS.md b/AGENTS.md index 3d37e1d..8a73ad9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -52,6 +52,7 @@ - Create new git worktrees only under the local repository directory at `.worktrees/$worktree_name`; do not use `/tmp`, `/private/tmp`, sibling workspace dirs, or tool-specific worktree dirs unless explicitly requested. - Commit messages: short single line; no `Co-Authored-By` or `Co-authored-by` trailers. Agents must not add bot co-author trailers to commits. Install `hooks/commit-msg` as a git hook to strip them automatically. - Use the configured git identity. Do not override author or committer fields. +- PR descriptions: do not include "Generated with Claude Code" or similar bot attribution footers. - Push only when asked. - PR work defaults to `/pr-triage`: inspect comments/checks, fix valid feedback, and stop before merge unless merge is explicitly approved. - Do not post GitHub issue/PR comments directly by default. Draft, copy, and open the URL for user review, except direct replies to bot comments are allowed. diff --git a/plugins/dotagents/skills/spotify/SKILL.md b/plugins/dotagents/skills/spotify/SKILL.md new file mode 100644 index 0000000..8cd8dea --- /dev/null +++ b/plugins/dotagents/skills/spotify/SKILL.md @@ -0,0 +1,100 @@ +--- +name: spotify +description: Use this skill to control Spotify playback, search music, manage playlists, and queue tracks via the spotify_player CLI. +license: MIT +metadata: + author: dotagents + version: 1.0.0 + category: media + tags: "spotify,music,playback,playlists" +--- + +# Spotify + +Control Spotify playback via `spotify_player` CLI. + +## Use This Skill For + +- Playing, pausing, skipping tracks +- Searching for songs, albums, artists, playlists +- Managing the playback queue +- Listing and selecting playback devices +- Creating and modifying playlists +- Checking what is currently playing + +## Prerequisites + +- Spotify Premium account (required by Spotify API for playback control) +- `spotify_player` installed: `brew install spotify_player` or `cargo install spotify_player --locked` +- One-time auth: register a Spotify Developer app at developer.spotify.com, set `client_id` in `~/.config/spotify-player/app.toml`, then run `spotify_player authenticate` + +## Core Rules + +- Use `--json` or pipe through `jq` when output will be consumed by another tool or agent. +- Do not start the TUI unless the user explicitly asks for it. Use CLI subcommands for all agent operations. +- The CLI communicates via a local socket (default port 8080). If no instance is running, commands start a temporary client automatically. +- Treat auth tokens as managed state. Use `spotify_player authenticate` instead of editing config files manually. + +## Commands + +### Playback + +```bash +spotify_player playback play-pause +spotify_player playback next +spotify_player playback previous +spotify_player playback play --name "track or album name" +spotify_player playback start --uri spotify:track:TRACKID +spotify_player playback shuffle +spotify_player playback repeat +spotify_player playback volume --offset 10 +spotify_player playback volume --volume 50 +``` + +### Now Playing + +```bash +spotify_player get key playback +``` + +### Search + +```bash +spotify_player search --query "bohemian rhapsody" --type track +spotify_player search --query "miles davis" --type artist +spotify_player search --query "chill vibes" --type playlist +``` + +### Queue + +```bash +spotify_player queue --uri spotify:track:TRACKID +``` + +### Devices + +```bash +spotify_player get key devices +spotify_player playback transfer --device "device name" +``` + +### Playlists + +```bash +spotify_player get key playlists +spotify_player playlist create --name "My Playlist" +spotify_player playlist delete --id PLAYLISTID +``` + +### Library + +```bash +spotify_player get key tracks +spotify_player get key albums +``` + +## Troubleshooting + +- **Auth failure on macOS Sequoia**: known issue with redirect URI. Try setting redirect URI to `http://127.0.0.1:8989/login` in your Spotify Developer app settings. +- **No playback devices**: open Spotify on any device first. `spotify_player` can control any Spotify Connect device remotely. +- **Socket connection refused**: a spotify_player instance may not be running. Commands will auto-start one, but it needs a few seconds to initialize. diff --git a/skills/spotify/SKILL.md b/skills/spotify/SKILL.md new file mode 100644 index 0000000..8cd8dea --- /dev/null +++ b/skills/spotify/SKILL.md @@ -0,0 +1,100 @@ +--- +name: spotify +description: Use this skill to control Spotify playback, search music, manage playlists, and queue tracks via the spotify_player CLI. +license: MIT +metadata: + author: dotagents + version: 1.0.0 + category: media + tags: "spotify,music,playback,playlists" +--- + +# Spotify + +Control Spotify playback via `spotify_player` CLI. + +## Use This Skill For + +- Playing, pausing, skipping tracks +- Searching for songs, albums, artists, playlists +- Managing the playback queue +- Listing and selecting playback devices +- Creating and modifying playlists +- Checking what is currently playing + +## Prerequisites + +- Spotify Premium account (required by Spotify API for playback control) +- `spotify_player` installed: `brew install spotify_player` or `cargo install spotify_player --locked` +- One-time auth: register a Spotify Developer app at developer.spotify.com, set `client_id` in `~/.config/spotify-player/app.toml`, then run `spotify_player authenticate` + +## Core Rules + +- Use `--json` or pipe through `jq` when output will be consumed by another tool or agent. +- Do not start the TUI unless the user explicitly asks for it. Use CLI subcommands for all agent operations. +- The CLI communicates via a local socket (default port 8080). If no instance is running, commands start a temporary client automatically. +- Treat auth tokens as managed state. Use `spotify_player authenticate` instead of editing config files manually. + +## Commands + +### Playback + +```bash +spotify_player playback play-pause +spotify_player playback next +spotify_player playback previous +spotify_player playback play --name "track or album name" +spotify_player playback start --uri spotify:track:TRACKID +spotify_player playback shuffle +spotify_player playback repeat +spotify_player playback volume --offset 10 +spotify_player playback volume --volume 50 +``` + +### Now Playing + +```bash +spotify_player get key playback +``` + +### Search + +```bash +spotify_player search --query "bohemian rhapsody" --type track +spotify_player search --query "miles davis" --type artist +spotify_player search --query "chill vibes" --type playlist +``` + +### Queue + +```bash +spotify_player queue --uri spotify:track:TRACKID +``` + +### Devices + +```bash +spotify_player get key devices +spotify_player playback transfer --device "device name" +``` + +### Playlists + +```bash +spotify_player get key playlists +spotify_player playlist create --name "My Playlist" +spotify_player playlist delete --id PLAYLISTID +``` + +### Library + +```bash +spotify_player get key tracks +spotify_player get key albums +``` + +## Troubleshooting + +- **Auth failure on macOS Sequoia**: known issue with redirect URI. Try setting redirect URI to `http://127.0.0.1:8989/login` in your Spotify Developer app settings. +- **No playback devices**: open Spotify on any device first. `spotify_player` can control any Spotify Connect device remotely. +- **Socket connection refused**: a spotify_player instance may not be running. Commands will auto-start one, but it needs a few seconds to initialize. From 365f69b47e5c53852e62e168224651215364b5de Mon Sep 17 00:00:00 2001 From: Kirill Korikov <11762090+yourconscience@users.noreply.github.com> Date: Mon, 15 Jun 2026 20:33:46 +0200 Subject: [PATCH 2/2] fix spotify_player CLI syntax from source code verification --- plugins/dotagents/skills/spotify/SKILL.md | 51 ++++++++++++++--------- skills/spotify/SKILL.md | 51 ++++++++++++++--------- 2 files changed, 64 insertions(+), 38 deletions(-) diff --git a/plugins/dotagents/skills/spotify/SKILL.md b/plugins/dotagents/skills/spotify/SKILL.md index 8cd8dea..a0fca36 100644 --- a/plugins/dotagents/skills/spotify/SKILL.md +++ b/plugins/dotagents/skills/spotify/SKILL.md @@ -17,7 +17,7 @@ Control Spotify playback via `spotify_player` CLI. - Playing, pausing, skipping tracks - Searching for songs, albums, artists, playlists -- Managing the playback queue +- Viewing the playback queue - Listing and selecting playback devices - Creating and modifying playlists - Checking what is currently playing @@ -41,56 +41,69 @@ Control Spotify playback via `spotify_player` CLI. ```bash spotify_player playback play-pause +spotify_player playback play +spotify_player playback pause spotify_player playback next spotify_player playback previous -spotify_player playback play --name "track or album name" -spotify_player playback start --uri spotify:track:TRACKID spotify_player playback shuffle spotify_player playback repeat -spotify_player playback volume --offset 10 -spotify_player playback volume --volume 50 +spotify_player playback seek 30000 # seek forward 30s (offset in ms) +spotify_player playback volume 50 # set volume to 50% +spotify_player playback volume 10 --offset # increase by 10% +spotify_player playback volume -10 --offset # decrease by 10% ``` -### Now Playing +### Play by Name or ID ```bash -spotify_player get key playback +spotify_player playback start track --name "bohemian rhapsody" +spotify_player playback start track --id TRACKID +spotify_player playback start context album --name "kind of blue" +spotify_player playback start context playlist --name "chill vibes" +spotify_player playback start context playlist --id PLAYLISTID --shuffle ``` -### Search +### Now Playing ```bash -spotify_player search --query "bohemian rhapsody" --type track -spotify_player search --query "miles davis" --type artist -spotify_player search --query "chill vibes" --type playlist +spotify_player get key playback +spotify_player get key queue ``` -### Queue +### Search ```bash -spotify_player queue --uri spotify:track:TRACKID +spotify_player search "bohemian rhapsody" +spotify_player search "miles davis" ``` ### Devices ```bash spotify_player get key devices -spotify_player playback transfer --device "device name" +spotify_player connect --name "Living Room Speaker" +spotify_player connect --id DEVICEID ``` ### Playlists ```bash -spotify_player get key playlists -spotify_player playlist create --name "My Playlist" -spotify_player playlist delete --id PLAYLISTID +spotify_player get key user-playlists +spotify_player playlist list +spotify_player playlist new "My Playlist" +spotify_player playlist new "Collab List" --public --collab +spotify_player playlist delete PLAYLISTID +spotify_player playlist edit add PLAYLISTID --track-id TRACKID +spotify_player playlist edit delete PLAYLISTID --track-id TRACKID ``` ### Library ```bash -spotify_player get key tracks -spotify_player get key albums +spotify_player get key user-liked-tracks +spotify_player get key user-saved-albums +spotify_player get key user-followed-artists +spotify_player get key user-top-tracks ``` ## Troubleshooting diff --git a/skills/spotify/SKILL.md b/skills/spotify/SKILL.md index 8cd8dea..a0fca36 100644 --- a/skills/spotify/SKILL.md +++ b/skills/spotify/SKILL.md @@ -17,7 +17,7 @@ Control Spotify playback via `spotify_player` CLI. - Playing, pausing, skipping tracks - Searching for songs, albums, artists, playlists -- Managing the playback queue +- Viewing the playback queue - Listing and selecting playback devices - Creating and modifying playlists - Checking what is currently playing @@ -41,56 +41,69 @@ Control Spotify playback via `spotify_player` CLI. ```bash spotify_player playback play-pause +spotify_player playback play +spotify_player playback pause spotify_player playback next spotify_player playback previous -spotify_player playback play --name "track or album name" -spotify_player playback start --uri spotify:track:TRACKID spotify_player playback shuffle spotify_player playback repeat -spotify_player playback volume --offset 10 -spotify_player playback volume --volume 50 +spotify_player playback seek 30000 # seek forward 30s (offset in ms) +spotify_player playback volume 50 # set volume to 50% +spotify_player playback volume 10 --offset # increase by 10% +spotify_player playback volume -10 --offset # decrease by 10% ``` -### Now Playing +### Play by Name or ID ```bash -spotify_player get key playback +spotify_player playback start track --name "bohemian rhapsody" +spotify_player playback start track --id TRACKID +spotify_player playback start context album --name "kind of blue" +spotify_player playback start context playlist --name "chill vibes" +spotify_player playback start context playlist --id PLAYLISTID --shuffle ``` -### Search +### Now Playing ```bash -spotify_player search --query "bohemian rhapsody" --type track -spotify_player search --query "miles davis" --type artist -spotify_player search --query "chill vibes" --type playlist +spotify_player get key playback +spotify_player get key queue ``` -### Queue +### Search ```bash -spotify_player queue --uri spotify:track:TRACKID +spotify_player search "bohemian rhapsody" +spotify_player search "miles davis" ``` ### Devices ```bash spotify_player get key devices -spotify_player playback transfer --device "device name" +spotify_player connect --name "Living Room Speaker" +spotify_player connect --id DEVICEID ``` ### Playlists ```bash -spotify_player get key playlists -spotify_player playlist create --name "My Playlist" -spotify_player playlist delete --id PLAYLISTID +spotify_player get key user-playlists +spotify_player playlist list +spotify_player playlist new "My Playlist" +spotify_player playlist new "Collab List" --public --collab +spotify_player playlist delete PLAYLISTID +spotify_player playlist edit add PLAYLISTID --track-id TRACKID +spotify_player playlist edit delete PLAYLISTID --track-id TRACKID ``` ### Library ```bash -spotify_player get key tracks -spotify_player get key albums +spotify_player get key user-liked-tracks +spotify_player get key user-saved-albums +spotify_player get key user-followed-artists +spotify_player get key user-top-tracks ``` ## Troubleshooting