jfsh

command module
v0.0.0-...-e5f8617 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2025 License: Unlicense Imports: 20 Imported by: 0

README

jfsh

A terminal-based client for Jellyfin that lets you browse your media library and play videos via mpv. Inspired by jftui.

Demo

Features

  • Uses your mpv config!
  • Resumes playback!
  • Tracks playback progress and updates jellyfin!
  • Automatic segment (intro, etc.) skipping!
  • No mouse required!

Installation

Prerequisites
Download a release

Download the latest pre-built binary for your platform from the releases page.

Install via go
go install github.com/hacel/jfsh@latest

Usage

  1. Start jfsh

    jfsh
    
  2. Login

    On first launch, you'll be prompted to enter:

    • Host: e.g., http://localhost:8096
    • Username
    • Password
  3. Play Media

    • Select an item and press Enter or Space to play it.
    • mpv will launch and begin streaming.
  4. Quit

    • Press q at any time to exit jfsh.

Configuration

By default, the configuration file is stored in $XDG_CONFIG_HOME/jfsh/jfsh.yaml. If $XDG_CONFIG_HOME is not set it defaults to:

  • Linux: ~/.config/jfsh/jfsh.yaml
  • macOS: ~/Library/Application Support/jfsh/jfsh.yaml
  • Windows: %APPDATA%/jfsh/jfsh.yaml
host: http://localhost:8096
username: me
password: hunter2
device: mycomputer # Device name to report to jellyfin (default: hostname)
skip_segments: # Segments to automatically skip (default: [])
  - Recap
  - Preview
  - Intro
  - Outro
Segment skipping

By default, no segments are automatically skipped. To enable skipping segments you must add skip_segments to the configuration file. Possible values for skip_segments are the segment types in Jellyfin which are: Unknown, Commercial, Preview, Recap, Outro and Intro.

Plans

  • Configuration through TUI
  • Complete library browsing
  • Sorting
  • Better search: Filter by media type, watched status, and metadata

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
config
Package config is a bubbletea model for setting up the configuration file and initializing the jellyfin client
Package config is a bubbletea model for setting up the configuration file and initializing the jellyfin client
jellyfin
Package jellyfin is a wrapper around the `github.com/sj14/jellyfin-go/api` to make it easier to use
Package jellyfin is a wrapper around the `github.com/sj14/jellyfin-go/api` to make it easier to use
mpv
Package mpv provides functions for playing jellyfin items in mpv
Package mpv provides functions for playing jellyfin items in mpv

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL