Skip to main content
bmux converts and compresses images, and tags local audio files for Spotify’s Local Files feature, without uploading them anywhere. The browser app does the work in your own tab; the CLI does the same jobs from a script, with no server involved for either — audio tagging’s only exception is the optional, opt-in MusicBrainz lookup in batch.
The CLI uses sharp, so unlike the browser it can write every supported format and can keep EXIF metadata when you ask it to.

Quickstart

1

Install

See Installation for pnpm, yarn, and building from source.
2

Convert something

3

Check what you got

Images

convert

Turn specific files into another format, with control over quality and size.

optimize

Run a whole directory through a preset without picking settings yourself.

inspect

Report what a file actually is, read from its contents rather than its name.

Audio

Tag local mp3/flac/m4a files so Spotify’s Local Files feature shows their title, artist, album, and cover art correctly — the same feature lives in the browser app as the Spotify Tracks tab.

tag

Write specific fields — title, artist, album, track, year, cover art — on one file.

batch

Apply the same artist/album/year/cover to every file in a directory at once.

cover

Extract or replace embedded cover art on its own.

Things that hold true everywhere

  • Originals are never overwritten. Colliding output names get a numeric suffix unless you choose otherwise with --collision.
  • Metadata is stripped by default. EXIF/XMP is removed unless you pass --preserve-metadata. Photos are still auto-rotated upright first.
  • A failed file doesn’t stop the rest. The batch finishes, the failures are listed, and the exit code is non-zero.
  • Nothing is uploaded. There is no server and no account. --dry-run will show you exactly what would be written before anything is.

Colour output

Colour is used for status only — green for a saving, amber for a file that grew, red for a failure. It turns itself off when output isn’t a terminal, and it honours NO_COLOR: