@freeyourmusic/cli
v9.27.0
Published
Command-line interface for Free Your Music. Talks to a running Free Your Music desktop app over loopback HTTP — no separate auth required.
Readme
@freeyourmusic/cli
Local command-line interface for Free Your Music. Talks to a running Free Your Music desktop app over loopback HTTP — no separate auth required.
Requires Free Your Music desktop to be running. The CLI is a thin client; the desktop process owns music-service authentication, license checks, and importer execution.
Quickstart
npm i -g @freeyourmusic/cli
# Make sure the Free Your Music desktop app is open and signed in.
fym statusExpected output (free tier, no signed-in license):
✓ Desktop running (vXX.X.X, pid 12345)
License: free (no account)
✓ Connected: (none)
Search quota: 0 / 100Commands
| Command | Description |
|---|---|
| fym status | Show desktop + license status + search quota |
| fym --json <cmd> | Machine-readable JSON output |
| fym --help | Show usage |
More commands (fym playlists list, fym search tracks, fym tracks add, …) ship in subsequent releases. See docs/superpowers/specs/2026-05-16-fym-cli-agents-design.md for the full surface.
Exit codes
| Code | Meaning | |---|---| | 0 | Success | | 1 | User error (bad args, missing param) | | 2 | Auth (service not connected) | | 3 | Desktop not running | | 4 | License gate (Pro required) | | 5 | Search quota exceeded |
How it works
The Free Your Music desktop app runs a loopback HTTP server on a random port. On startup it writes ~/.fym/cli-config.json ({ port, token, version, pid }, mode 0600). The CLI reads that file, then makes JSON-RPC calls over HTTP. All importer work, license enforcement, and quota tracking run inside the desktop process — the CLI is just a thin transport.
Privacy
No telemetry is added by the CLI. All traffic is 127.0.0.1 only. Bearer token is rotated on every desktop launch and never leaves the machine.
