The local-first music workstation

Your music, your files, your library.

FMusic turns discovery, downloading, local imports, library management, editing, playback, casting, and AI-assisted control into one desktop flow. It is for people who want the control of local files without giving up the convenience of modern music tooling.

DesktopWindows, macOS, Linux
PortableSQLite library with relative file paths
ConnectedSonos, QR sync, browser playback, MCP

AI integrated through MCP

Two agents. One music library.

FMusic exposes a local MCP server so Claude can control playback and Codex can research, search, and queue downloads through the same local tools.

Claude Code FMusic MCP connected

what is playing?

called fmusic_player_state

Nothing is playing right now. The player is stopped and the queue is empty.

play something random

called fmusic_search_library

called fmusic_play_track

Playing Strobe by deadmau5. A classic.

>

>_ OpenAI Codex agent + FMusic MCP

download the top 2 techno songs for 2026

I’ll verify a current techno chart first, then use FMusic to find and queue matching tracks.

searched web: 2026 techno top tracks chart

called fmusic.download_search_youtube

called fmusic.download_enqueue_url

Queued two matching tracks as 320kbps MP3 downloads and checked the downloader state.

>

01 - Capture

Capture music.

Queue tracks from YouTube, import playlists, follow live progress, resume cancelled jobs, and avoid duplicate downloads before they clutter the library.

FMusic downloads screen

02 - Organize

Organize it.

Sort, search, filter by genre, import local files or folders, clean up missing tracks, move the library folder safely, sync MP3 tags, and use MusicBrainz lookup when the original source is messy.

FMusic library screen FMusic mobile sync QR screen

03 - Curate

Curate playlists.

Create playlists, reorder tracks, keep Favorites protected, and build smart playlists from saved filter chips so the library reshapes itself around how you listen.

FMusic playlists screen FMusic smart playlist builder

04 - Shape

Shape audio.

The audio workbench makes quick edits feel native: trim silence, add fades, adjust volume, export a copy, or manage named, color-coded cue points you can jump to later from the editor, player, or remote controller.

FMusic audio editor screen

05 - Play everywhere nearby

Play anywhere.

Listen through the integrated player, cast to Sonos with seek support, download tracks to a phone via QR, control the desktop app from a browser on the same Wi-Fi, stream a track directly to that browser, or let an AI assistant inspect and control playback through MCP.

FMusic Sonos screen FMusic remote controller mobile screen

Problem specs

Built around real listening workflows.

Spec 01

I want music offline.

Bundled yt-dlp and FFmpeg prepare audio without requiring Python on the user's machine, while local file and folder imports bring existing collections into the app.

Spec 02

I want a clean library.

SQLite, relative paths, missing-file cleanup, metadata editing, genre filters, cover art, playlists, smart playlists, and favorites keep files understandable and portable.

Spec 03

I want to fix the audio.

Trimming, fades, volume changes, preview, exports, and bookmarks solve the common post-download cleanup tasks.

Spec 04

I want it beyond the laptop.

Sonos casting, QR mobile sync, browser playback on a phone, MCP control, tray controls, and a mini player extend playback around the room and into AI workflows.

Technical specs

Desktop app internals, documented.

LayerTechnology
ShellElectron with context isolation
FrontendReact, Vite, TypeScript
StateZustand
Local audioHowler.js and a custom media protocol with Range requests
Databasebetter-sqlite3 with versioned migrations
Metadatamusic-metadata and node-id3
Downloadsyt-dlp and FFmpeg
PortabilityLocal file/folder imports, relative library paths, move support, and missing-file cleanup
SonosUPnP / AVTransport via @svrooij/sonos
Remote controlToken-protected local web UI with host control or direct browser playback
AI controlLocal MCP server for assistant-driven playback, library search, playlists, and downloads
Distributionelectron-builder for Windows, macOS, and Linux

Install FMusic

Download the build for your operating system.

The app is distributed from GitHub Releases. Open the latest release, download the installer or package for your platform, and launch FMusic like any other desktop app.

macOS

Download the DMG.

Open the .dmg, drag FMusic into Applications, then launch it from Applications or Spotlight.

Windows

Download the installer.

Run the Windows .exe installer from the release assets and follow the setup flow.

Linux

Download AppImage or deb.

Use the .AppImage for a portable build, or install the .deb package on Debian/Ubuntu-based systems.

Developer path

Run it, test it, package it.

npm install
npm run dev
Useful commands:
npm run typecheck
npm run test
npm run build
npm run screenshots:readme
npm run dist:mac
npm run dist:linux
npm run dist:win

npm install runs the postinstall workflow that prepares yt-dlp and FFmpeg under resources/bin/. For CI or typecheck-only environments, skip binary downloads:

FMUSIC_SKIP_BINARIES=1 npm install
Main processWindows, tray, updater, downloads, local import, local servers, MCP, Sonos streaming, SQLite repositories, migrations, and IPC.
PreloadA typed context bridge exposes safe app capabilities to the renderer.
RendererReact views for downloads, library, playlists, editor, settings, mini player, and remote-control state.
SharedIPC channel definitions, domain types, and i18n bundles live in a shared package boundary.