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..a0fca36 --- /dev/null +++ b/plugins/dotagents/skills/spotify/SKILL.md @@ -0,0 +1,113 @@ +--- +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 +- Viewing 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 play +spotify_player playback pause +spotify_player playback next +spotify_player playback previous +spotify_player playback shuffle +spotify_player playback repeat +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% +``` + +### Play by Name or ID + +```bash +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 +``` + +### Now Playing + +```bash +spotify_player get key playback +spotify_player get key queue +``` + +### Search + +```bash +spotify_player search "bohemian rhapsody" +spotify_player search "miles davis" +``` + +### Devices + +```bash +spotify_player get key devices +spotify_player connect --name "Living Room Speaker" +spotify_player connect --id DEVICEID +``` + +### Playlists + +```bash +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 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 + +- **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..a0fca36 --- /dev/null +++ b/skills/spotify/SKILL.md @@ -0,0 +1,113 @@ +--- +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 +- Viewing 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 play +spotify_player playback pause +spotify_player playback next +spotify_player playback previous +spotify_player playback shuffle +spotify_player playback repeat +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% +``` + +### Play by Name or ID + +```bash +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 +``` + +### Now Playing + +```bash +spotify_player get key playback +spotify_player get key queue +``` + +### Search + +```bash +spotify_player search "bohemian rhapsody" +spotify_player search "miles davis" +``` + +### Devices + +```bash +spotify_player get key devices +spotify_player connect --name "Living Room Speaker" +spotify_player connect --id DEVICEID +``` + +### Playlists + +```bash +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 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 + +- **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.