No description
Find a file
Simhadri Saratchandra 0779658b31 feat(ui): Netflix-style poster carousels with inline thumbnails
Replace flat row lists with poster-grid layouts rendered via
ratatui-image. Home becomes a vertical stack of horizontal carousels
(one per section). Library and Search render as grids of posters. Each
cell shows the Jellyfin Primary image plus a name/year label and a
yellow border when selected.

- Add ImageManager (src/images.rs) wrapping ratatui-image's Picker with
  an in-memory cache and an async fetch task per item; results return
  on an mpsc channel handled in run_app's select loop.
- Add JellyfinClient::get_primary_image_url helper.
- Refactor App: HomeDisplayItem -> Vec<HomeSection> with 2D nav
  (home_row, home_col); Library/Search gain grid navigation via
  grid_columns updated by the UI each frame. New move_left/move_right.
- Update key handling: h/l now move horizontally, Esc/Backspace goes
  back in Library, Enter always selects.
- Init Picker after enable_raw_mode and before EnterAlternateScreen so
  terminal-capability querying works.
2026-05-25 18:57:52 +05:30
crates/jellyfin-client feat(ui): Netflix-style poster carousels with inline thumbnails 2026-05-25 18:57:52 +05:30
src feat(ui): Netflix-style poster carousels with inline thumbnails 2026-05-25 18:57:52 +05:30
.gitignore feat: implement Jellyfin TUI client 2026-01-05 01:09:36 +05:30
AGENTS.md feat: pass external subtitle URLs to mpv and add AGENTS.md 2026-05-25 18:20:25 +05:30
Cargo.lock feat(ui): Netflix-style poster carousels with inline thumbnails 2026-05-25 18:57:52 +05:30
Cargo.toml feat(ui): Netflix-style poster carousels with inline thumbnails 2026-05-25 18:57:52 +05:30
README.md docs: add README 2026-01-05 01:14:05 +05:30

Jellytui

A terminal UI client for Jellyfin written in Rust.

Features

  • Browse libraries and navigate folders
  • Search across all media
  • Play with MPV (with playback sync)
  • Resume from last position
  • Download media files

Requirements

  • Rust 1.85+ (2024 edition)
  • MPV (for playback)
  • A Jellyfin server

Installation

cargo install --path .

Or build from source:

cargo build --release
./target/release/jellytui

Usage

jellytui

On first run, enter your Jellyfin server URL and credentials. Config is saved to ~/.config/jellytui/config.toml.

Keybindings

Key Action
j / Move down
k / Move up
Enter / l Open / Play
Esc / h Go back
/ or s Search
d Toggle downloads panel
D Download selected item
r Refresh
q Quit

Downloads

Files are saved to ~/Downloads/jellytui/.

Playback Sync

Playback position is synced to Jellyfin:

  • Resume from where you left off
  • Progress reported every 5 seconds
  • Auto-marks as played at 90%

License

MIT