Incoming
In the sidebar: each playlist flacli is working on, with the job state and the counts that matter — downloading, done, candidates awaiting review.
The back is flacli, a command line any agent can drive: it fetches named songs, albums or whole playlists from Soulseek and files them as Artist/Album/NN - Title, with the bio, the wiki and the pictures beside the music. The front is Flaclify: it reads those files before asking any online provider, shows what the shell is doing, and drives it through the same commands an agent uses. Nothing is ever written into the player's database.
A bio under each artist, a wiki under each album — and most libraries have neither. Flaclify looks next to the files first. A text file is optional front matter between --- rules (attribution and url are used) followed by plain prose.
The file is handed to the provider chain as the starting document, so a refresh keeps its text and only fills in tags and images. It is read again whenever it is newer than the cached copy — an edit on disk shows on the next visit. The switch and the music directory live under Preferences → Integrations → Library files.
| File | Shown as |
|---|---|
<Artist>/artist.md | the artist's bio (or .wiki/<Artist>.md when the artist has no folder) |
<Artist>/<Album>/wiki.md | the album's wiki |
<Artist>/artist.jpg · .png · .webp | the artist's picture |
Music/
└── Alice in Chains/
├── artist.md ← the bio
├── artist.jpg ← the picture
└── Dirt/
├── wiki.md ← the wiki
└── 01 - Them Bones.flac
In the sidebar: each playlist flacli is working on, with the job state and the counts that matter — downloading, done, candidates awaiting review.
In a synced playlist, the tracks flacli has not fetched yet: greyed, in their original positions, with the reason — not found, needs a decision, queued, skipped.
Under an artist's discography, the studio albums and EPs MusicBrainz credits to the artist that the library lacks. Each carries a Get this.
All gated the same way: flacli on the PATH, its music_dir the folder MPD serves, the Nicotine+ bridge answering. Preferences → Integrations → flacli shows the verdict. Polled only while a job runs or downloads are in flight.
The player drives flacli through the CLI — get, sync, queue, review, approve, skip, cancel — and the rules the shell keeps for agents hold for the player too.
The shell itself: flacli.vercel.app · every fetch first checks that the Nicotine+ bridge answers · no Soulseek code lives in this repository