Browse and play your Jellyfin or Navidrome music library directly from the terminal.
Cast music or videos from your media server to a Chromecast or smart TV on your network.
Control music playback using your keyboard media keys on Linux without opening a full app.
Script quick commands to play a specific album or queue a song to a named speaker.
| tsirysndr/fin | 0xdea/ttyinject-rs | bigsaltyfishes/wallpaper-engine-for-macos | |
|---|---|---|---|
| Stars | 12 | 12 | 12 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | moderate | hard |
| Complexity | 3/5 | 4/5 | 4/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a running Jellyfin or Subsonic-compatible media server to connect to, and the mpv program installed for local video playback.
fin is a terminal-based music and video client for Jellyfin and Subsonic media servers, which include Navidrome, Airsonic, Gonic, and Astiga. Instead of a graphical interface, it runs as a text-based program inside your terminal with a neon-electric color scheme. It connects to your media server, searches your library, manages playlists, and plays audio or video on your local machine or on remote devices. For local audio, fin handles everything itself. It streams the audio over the network, decodes it, resamples it, and plays it back without relying on any external software. For local video, it uses a separate program called mpv. You can also send your media to a Chromecast device on your network or to any UPnP-compatible device, which includes Sonos speakers, Kodi, Roon, and Samsung or LG televisions. When playing to a remote device, fin maintains a local queue and automatically advances to the next track when one finishes. A notable feature is that fin can also receive media. While running, it advertises itself as a UPnP device on your local network. Other programs and devices can push audio or video to it, and fin will decode and play that content. On Linux and BSD systems, it integrates with desktop media controls, so you can use your keyboard media keys or desktop widgets to control playback. The interface includes instant search that updates results as you type, and navigation that lets you drill into albums, series, and playlists. Playback features include shuffle, repeat, volume normalization, crossfade between tracks, and a ten-band equalizer. The audio queue and your exact position within a track are saved when you close the program, so you can resume where you left off after a restart. fin is written in Rust and can be installed through several methods, including npm, Homebrew, Debian packages, Fedora packages, Arch, and Nix. It also provides command-line shortcuts for scripting, such as typing a command to play a specific album or to queue a song to a named Chromecast device. The full README is longer than what was shown.
A terminal-based music and video player that connects to home media servers like Jellyfin and Navidrome, letting you browse and play your media library entirely through text and keyboard commands.
Mainly Rust. The stack also includes Rust, mpv, UPnP.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.