No description
- Rust 100%
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. |
||
|---|---|---|
| crates/jellyfin-client | ||
| src | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
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