A folder-aware FLAC tagger for GNOME. Identifies whole albums at once using MusicBrainz, with built-in synced-lyrics embedding from LRCLIB.
Think Picard + LRCGET + Kid3 in one tool — but designed around the observation that the folder is the unit of information. When a track is on fifty different releases, Forgesmith uses the other files in the same folder as context to figure out which release is actually yours, instead of guessing per file.
- Folder-aware identification. Scores entire releases against entire folders, not single tracks against single recordings. The right release wins because the rest of the folder agrees.
- Synced lyrics. A dedicated mode embeds LRC-format lyrics from
LRCLIB (with NetEase as a CJK fallback) into each FLAC's
LYRICSVorbis comment. - Review before writing. A diff screen shows exactly what each file's tags will become and what files will be renamed, before anything touches disk.
- Field checklist. Choose which Vorbis fields Forgesmith is allowed to write. Unchecked fields are left completely untouched — neither written nor cleared.
- Local cache. Identified releases and searches are cached in SQLite, so re-scanning a library you've seen before is instant and avoids re-querying MusicBrainz.
- Optional fingerprint fallback. For files with no usable tags,
Forgesmith can fingerprint the audio via AcoustID (needs a free API
key and the
chromaprintpackage).
yay -S forgesmithOr with any other AUR helper, or by hand:
git clone https://aur.archlinux.org/forgesmith.git
cd forgesmith
makepkg -siRequires meson, ninja, blueprint-compiler, gtk4, libadwaita,
python-gobject, python-mutagen, python-aiohttp. Optional:
chromaprint for the AcoustID fingerprint fallback.
meson setup build --prefix=/usr
meson compile -C build
sudo meson install -C buildLaunch forgesmith and pick one of the two tools from the home screen:
- Tag Albums — identifies the FLACs in the folder you pick and proposes new tags (and optionally renames). Review the diff, then confirm.
- Embed Lyrics — walks every FLAC in the folder you pick, fetches synced lyrics, and embeds them. Doesn't touch any other tags.
The intended workflow is tag-first, lyrics-second, in two separate runs. Tagging fixes the title/artist/album fields that the lyrics lookup then needs to be accurate.
GPL-3.0-or-later. See LICENSE.