$ fym playlists list --service=spotifyNAME TRACKS UPDATED Running 130+ 30 now Monday Drive 47 2026-05-15 Deep Focus 62 2026-05-14
fym: your music, in the shell.
A local Node binary that talks to the FYM desktop app over loopback. List playlists, search, create playlists, like, follow — across 22 services. Free tier included.
npm i -g @freeyourmusic/cliCommand reference
READ · free
fym statusfym accountsfym accounts --service=spotifyfym playlists list --service=spotifyfym playlists list --service=spotify --account=me@work.comfym playlists get <id>fym tracks list --playlist=<id>fym library tracks --service=spotifyfym library albums --service=tidalfym library artists --service=apple-musicfym history recent --service=spotify --limit=50SEARCH · free, 100/day
fym search tracks "kendrick humble" --service=spotifyfym search albums "blonde" --service=apple-musicfym search artists "phoebe bridgers" --service=tidalWRITE · Pro
fym playlists create "Workout" --service=spotify --account=me@personal.comfym playlists rename <id> "Cardio" --service=spotifyfym playlists delete <id> --service=spotifyfym tracks add --service=spotify --playlist=<id> --track=<gid>fym tracks remove --service=spotify --playlist=<id> --track=<gid>fym tracks reorder --service=spotify --playlist=<id> --from=0 --to=5fym library like --service=spotify --track=<gid>fym follow artist <id> --service=tidalJSON mode for scripts and agents
Add --json to any command for parseable output. Pipe into jq, agents, cron, anywhere.
fym playlists list --service=spotify --json | jq '.data[].name'Multiple accounts per service
Connected two Spotify accounts? Run "fym accounts" to list them, then pass an id or label to --account to target one. With a single account, --account is optional. When two or more are connected and you omit it, the command lists your accounts and exits without acting — so it never touches the wrong one.
CLI vs MCP
| Scriptable | CLI: yes. MCP: no, runs inside the host. |
|---|---|
| Cron-able | CLI: yes. MCP: requires the host to be running. |
| Pipe-friendly | CLI: stdin/stdout JSON. MCP: structured tool calls. |
Use the MCP server for chat. Use the CLI for automation.
Free vs Pro
Read playlists, library, history. 100 searches per day across all services.
Create, rename, delete playlists. Add, remove, reorder tracks. Like, follow artists. Unlimited search.
Privacy
No telemetry. Bearer token rotates on every desktop launch. Your music data never leaves your machine through this path.
Plug in your music.
One command for your AI host. Restart. Done.
npx -y @freeyourmusic/mcp install --host=claude-desktopWrites to ~/Library/Application Support/Claude/claude_desktop_config.json
Restart Claude Desktop (cmd+Q on macOS). The freeyourmusic tools appear in the integrations sheet.