A Jellyfin client for the modern desktop
Find a file
2026-06-15 19:38:32 -04:00
.devcontainer Initial commit 2026-06-14 23:11:23 -04:00
data Update to match new upstream git repo 2026-06-15 02:16:02 -04:00
Sources Defer image loading during page transition animations 2026-06-15 19:38:32 -04:00
.gitignore Clean up tracked files and update gitignore 2026-06-14 23:21:14 -04:00
.swift-format Set up swift-format 2026-06-14 23:21:14 -04:00
dev.bscubed.Luminate.json Add InjectionValues property container 2026-06-14 23:21:14 -04:00
LICENSE.md Initial commit 2026-06-14 23:11:23 -04:00
Package.swift Defer image loading during page transition animations 2026-06-15 19:38:32 -04:00
README.md Update to match new upstream git repo 2026-06-15 02:16:02 -04:00

Luminate

Luminate is a modern and robust Jellyfin client for the Linux desktop.

It aims to provide an elegant and immersive browsing experience for any Jellyfin server with features rivaling that of the default Jellyfin Media Player, all while feeling right at home in your Linux desktop environment.

Building

Linux (Native)

swift build
swift run

Requires libadwaita-devel (Fedora) or libadwaita (Ubuntu/Debian) and the Swift 6 toolchain.

Flatpak

flatpak-builder --force-clean build-dir dev.bscubed.Luminate.json
flatpak-builder --run build-dir dev.bscubed.Luminate.json Luminate

macOS (Development)

brew install libadwaita
swift build
swift run

macOS builds are supported for development but the target platform is Linux/Flatpak.

Release Build

swift build -c release

Contributing

Contributions to Luminate are welcome! Refer to the project roadmap below to get an idea of what's currently being worked on before jumping in if you'd like, or you can check out the current issues for something to tackle.

Project Roadmap

Implemented Features

  • Server login with Jellyfin authentication
  • Persistent session storage (auto-login across restarts)
  • Home screen with Continue Watching, Next Up, and Recently Added rows
  • Library grid browsing with folder navigation
  • Movie detail view (backdrop, poster, metadata, cast, similar items)
  • TV show detail view with season picker and episode list
  • Search with debounced text input and result display
  • Playback recording (start/progress/stop reporting to server)
  • Favorites (toggle favorite on movie detail)
  • Mark played/unplayed
  • Image caching (memory + disk)
  • WebSocket client for server events
  • Dependency injection system
  • Stack-based navigation
  • Initial localization support (en/de)

In Progress

  • Video player widget (planned mpv + GtkGLArea integration)
  • Connecting detail views to navigation stack
  • Migrating library views to @Injected dependency injection

Planned

  • Real video playback with seeking and progress tracking
  • Unified search integration
  • Continue Watching resume from home screen
  • Keyboard shortcut improvements
  • Error handling UI for failed network requests
  • Unit and UI testing
  • CI/CD pipeline
  • Flatpak publishing on Flathub
  • Multi-user support
  • Offline/download support
  • Quick login

License

GPL-3.0