Mobile-first audio tag editor with preview player for self-hosted music libraries.
- Browse your library, tap a track, edit tags
- MusicBrainz lookup — one-tap suggestions from the community database, no account needed
- Preview player with queue, swipe navigation, album art
- Recycle bin browser — rescue tracks deleted by Lidarr/Beets before they're gone
- Works as a PWA (Add to Home Screen on iOS/Android)
- Supports MP3, FLAC, M4A, OGG, WAV, AIFF
Pick the option that matches where your music lives.
| Platform | Best for | Get it |
|---|---|---|
| Windows | Music on a local/external drive | edit-music.exe from Releases |
| macOS | Music in your home folder | edit-music.dmg from Releases |
| Linux | Music on a local/external drive | .deb (Debian/Ubuntu) or .tar.gz (any distro) from Releases |
| Unraid / Docker | Music on a NAS / server share | ghcr.io/hihilabs/edit.music:latest (below) |
- Download
edit-music.exefrom the latest release. - Double-click it. A console window stays open and your browser opens to
http://localhost:3001. (The exe is unsigned, so Windows SmartScreen may warn — choose More info → Run anyway.) - On first run, point it at your local music folder, e.g.
C:\Users\you\Music. The recycle-bin path auto-fills next to it — accept it or change it.
Settings are saved in an edit-music-data folder next to the exe, so you only do setup once. The app reads and writes tags directly on your local files — no Docker, no network share required.
- Download
edit-music.dmg, open it, dragedit-musicout. - First launch: right-click → Open (unsigned app).
- Point it at e.g.
/Users/you/Musicon first run.
Two options — pick whichever fits your setup:
Debian/Ubuntu (.deb)
- Download
edit-music-linux-x64.debfrom the latest release. - Install it:
sudo apt install ./edit-music-linux-x64.deb(orsudo dpkg -i edit-music-linux-x64.deb). - Launch edit.music from your application menu, or run
edit-musicfrom a terminal. Your browser opens tohttp://localhost:3001.
Any distro (.tar.gz)
- Download
edit-music-linux-x64.tar.gzfrom the latest release and extract it:tar -xzf edit-music-linux-x64.tar.gz. - Make it executable and run it:
chmod +x edit-music && ./edit-music. Your browser opens tohttp://localhost:3001.
On first run (either option), point it at your local music folder, e.g. /home/you/Music. The recycle-bin path auto-fills next to it — accept it or change it. Settings are saved in an edit-music-data folder next to the binary, so you only do setup once. The app reads and writes tags directly on your local files — no Docker, no network share required.
services:
edit-music:
image: ghcr.io/hihilabs/edit.music:latest
restart: unless-stopped
ports:
- "3333:3001"
volumes:
- /path/to/music:/storage/music
- /path/to/recycle:/storage/recycle_bin # optionalOn Unraid, see docker-compose.unraid.yml for a ready-made config with /mnt/user/music mounts and optional Traefik labels. When MUSIC_ROOT and RECYCLE_ROOT are set as env vars the setup wizard is skipped.
During setup (or anytime in settings) you can opt in to "Help grow the Genre Wiki" — periodically sharing anonymized genre statistics (genre names and how often they appear together — never file paths, file names, or other personal data) to wiki.communityplaylist.com. This helps the community Genre Wiki grow from real-world libraries instead of relying on a single source. It's off by default and can be toggled at any time.
git clone https://github.com/hihilabs/edit.music
cd edit.music
./dev.sh # starts server :3001 + Vite :5173Set MUSIC_ROOT and RECYCLE_ROOT in server/.env to point at your library:
MUSIC_ROOT=/mnt/user/music
RECYCLE_ROOT=/mnt/user/music/.recycle
- Server — Node.js + TypeScript + Express,
music-metadata(read),node-taglib-sharp(write), MusicBrainz REST API - Client — React 18 + Vite PWA, zero UI framework dependencies
Metadata suggestions are powered by MusicBrainz, the open community music database. Results are proxied through the local server to respect the 1 req/sec rate limit. No account or API key required.
MIT