explaingit

jeffvli/feishin

8,355TypeScriptAudience · generalComplexity · 3/5LicenseSetup · moderate

TLDR

A desktop music player for Windows, Mac, and Linux that connects to self-hosted music servers like Navidrome or Jellyfin so you can browse and play your library through a proper app instead of a browser tab.

Mindmap

mindmap
  root((Feishin))
    What it does
      Desktop music player
      Server connection
      Playback control
    Servers supported
      Navidrome
      Jellyfin
      Airsonic
    Features
      Crossfade
      Media keys
      Themes
    Install
      Windows
      Mac
      Linux
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Browse and play your Navidrome or Airsonic music collection from a native desktop app with crossfade and media key support.

USE CASE 2

Manage playlists on your self-hosted Jellyfin server with drag-and-drop queue reordering.

USE CASE 3

Control music playback from anywhere on your desktop using keyboard media keys without switching windows.

USE CASE 4

Access a large music library, thousands of albums, without the app slowing down, since it is built to handle big collections.

Tech stack

TypeScript

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a running self-hosted music server (Navidrome, Jellyfin, or Airsonic) before the app is useful.

Free to use and modify, but any software you distribute that includes it must also be released under the same open-source GPL v3 license.

In plain English

This is Sonixd, a desktop music player application that connects to self-hosted music servers. If you run your own music server at home using software like Navidrome, Airsonic, Gonic, or Jellyfin, Sonixd is a desktop app you install on Windows, Mac, or Linux that lets you browse and play your music library with a proper interface rather than a web browser tab. The app acts as a client: your music files live on your server, and Sonixd connects to it over your local network or the internet. You sign in with your server address and credentials, and then your full music collection becomes available through the app. It has been tested to work with all the major self-hosted music server options that follow the Subsonic API standard, plus Jellyfin. For playback, it supports crossfading between tracks and simulates gapless playback using that crossfade mechanism. You can drag and drop songs to rearrange queues, create and edit playlists, and use your keyboard media keys to control playback without switching windows. The interface supports multiple themes. The developers specifically called out handling large playlists and libraries as a design goal, so it is built to stay responsive with sizable collections. Installation is done by downloading a release package for your operating system from the GitHub releases page. Windows users can also install it through the winget package manager with a single command, and Arch Linux users can find it in the AUR. Once installed, you point it at your server URL and log in. The project is open source under the GNU General Public License v3.

Copy-paste prompts

Prompt 1
I have Navidrome running on my home server at 192.168.1.100. Walk me step by step through connecting Feishin to it and setting up crossfade playback.
Prompt 2
Generate a migration checklist from using the Navidrome web interface to Feishin desktop app, covering every setting I need to reconfigure.
Prompt 3
Show me how to install Feishin on Arch Linux using the AUR with yay, including any dependency steps.
Prompt 4
I'm on Windows and want to install Feishin via winget, give me the exact command and explain what it installs.
Open on GitHub → Explain another repo

← jeffvli on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.