$ 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/cli
22 servicesSpotify to Zvuk
Local-first127.0.0.1 only
No separate OAuthInherits your desktop's authenticated session

Command 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=50

SEARCH · free, 100/day

fym search tracks "kendrick humble" --service=spotifyfym search albums "blonde" --service=apple-musicfym search artists "phoebe bridgers" --service=tidal

WRITE · 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=tidal

JSON 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

ScriptableCLI: yes. MCP: no, runs inside the host.
Cron-ableCLI: yes. MCP: requires the host to be running.
Pipe-friendlyCLI: stdin/stdout JSON. MCP: structured tool calls.

Use the MCP server for chat. Use the CLI for automation.

Free vs Pro

Free

Read playlists, library, history. 100 searches per day across all services.

Pro

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.

Your AI hostLocal bridge (127.0.0.1)FYM desktop

Plug in your music.

One command for your AI host. Restart. Done.

Install in
npx -y @freeyourmusic/mcp install --host=claude-desktop

Writes to ~/Library/Application Support/Claude/claude_desktop_config.json
Restart Claude Desktop (cmd+Q on macOS). The freeyourmusic tools appear in the integrations sheet.