A Jetpack Compose based client for Jellyfin and Emby — designed for phone, TV, and beyond.
- MPV-based player with HDR10/HDR10+/Dolby Vision support and HDR format badges
- Audio passthrough (TrueHD, DTS-HD, Atmos) when supported by device/output
- Spatial audio passthrough on compatible devices
- Media3 ExoPlayer fallback when MPV cannot render
- Jellyfin FFmpeg extension integration for broad codec coverage
- In-player quality selection, audio transcoding controls, and configurable player cache
- Gesture controls (seek, volume, brightness), lock mode, and start-maximized preference
- Skip Intro button when IntroDB/TheIntroDB markers are available
- Subtitle styling controls with improved track handling
- Google Cast with inline remote playback controls
- In-app Trailers with autoplay in feature carousel (capped to 720p on phones)
- Trailers & Extras section on detail screens
- For You personalized recommendations with watched feed
- Awards category powered by Wikidata
- Immersive search with suggestions, live results, and categorized output
- Favorites tab with compact header and view-all navigation
- Discovery, search, recommendations, and detail pages
- Request badges, request limits, and title requests
- Trailer support for Seerr detail items
- Offline downloads with queue, pause/resume/cancel, and persistent state recovery
- Transcoded download support with quality picker
- Audio track selection in download quality picker
- Season and series download with storage estimation
- Offline-aware navigation — falls back to downloaded content when network is unavailable
- Redesigned TV UI with D-pad navigation and remote control support
- Cinematic full-bleed detail screen overlay
- Immersive backdrop for suggestions
- Keyboard overlay search with carousel results
- Feature hero card with card expand and backdrop crossfade
- Jellyfin and Emby support with automatic endpoint resolution
- Merge-version support with local version selection (no server-side changes required)
- Discord Rich Presence via official Social SDK with connection management
- Admin Panel with live server info, sessions, and activity log
| Platform | Status |
|---|---|
| Android Phone | Stable |
| Android TV | Stable |
| iOS | In Development |
| Layer | Technology |
|---|---|
| Language | Kotlin 2.3, Coroutines, Flow |
| UI | Jetpack Compose + Material 3 |
| DI | Hilt + KSP |
| Networking | Ktor Client + OkHttp 5 |
| Images | Coil 3 |
| Player | MPV (primary), Media3 ExoPlayer (fallback) |
| Multiplatform | Kotlin Multiplatform (Android + iOS) |
phone/ — Phone app module (Compose UI, navigation, player, settings)
tv/ — TV app module (leanback/DPAD, sidebar rail, TV-specific flows)
data/ — APIs, repositories, models; multiplatform networking
core/ — Shared player, preferences, and utilities
shared/ — Shared UI components and image infrastructure
- Android Studio (latest stable)
- JDK 17
- Android SDK API 36
# Phone
./gradlew :phone:assembleDebug
# TV
./gradlew :tv:assembleDebugAPK naming: jellycine-{debug|release}-<version>.apk
Help translate JellyCine into your language on Weblate.
Issues and pull requests are welcome. For large feature work, open an issue first to align on scope.
For community discussions and support, see Discussions.
See PRIVACY for the current privacy policy.
This project is licensed under the GNU General Public License v3.0.






