Skip to content

Quick Start

This page is the shortest path from a working install to music.

Terminal window
spotuify

What you get: the player-first terminal UI. Press /, type a query, press Enter, then press Enter on a result to play it. Home also has playable saved music and podcasts as soon as the cache is warm; if nothing is playing or the current item has ended, Space starts the selected item on Home, Search, Library, or Playlists.

Terminal window
spotuify play "imagine dragons"

What you get: a mutation receipt. Use --format json when a script or agent needs to read it.

Terminal window
spotuify play "imagine dragons" --format json
Terminal window
spotuify search "luther vandross" --type track --format ids \
| fzf \
| xargs spotuify play-uri

What you get: one Spotify URI selected from search and sent back into playback.

Terminal window
spotuify queue add --search "never too much"
spotuify queue --format json
Terminal window
spotuify playlist add-current "Coding"
Terminal window
spotuify playlist add "Coding" spotify:track:4uLU6hMCjMI75M1A2tKUQC --dry-run

Commit after the preview looks right:

Terminal window
spotuify playlist add "Coding" spotify:track:4uLU6hMCjMI75M1A2tKUQC --yes

Prompt:

Make me an upbeat but focused playlist. Use spotuify playlist plan,
resolve-tracks, then show playlist create --dry-run before changing Spotify.

Commands the agent should run:

Terminal window
spotuify playlist plan "upbeat but focused" --format json > plan.json
spotuify resolve-tracks --from plan.json --format jsonl > candidates.jsonl
spotuify playlist create "Upbeat Focus" --from candidates.jsonl --dry-run

Preview the import before writing analytics rows:

Terminal window
export SPOTUIFY_LASTFM_API_KEY="lastfm-api-key"
spotuify analytics import lastfm --user your-lastfm-user --from 2024-01-01 --format json

Commit after the fetched, resolved, and unresolved counts look right:

Terminal window
spotuify analytics import lastfm --user your-lastfm-user --from 2024-01-01 --apply --format json