jellystack

Jellystack

Google Play CI Security License: GPL-3.0

Jellystack is a privacy-focused Jellyfin and Seerr client with a native Android experience. Browse and play your own media, manage requests, download for offline use, and keep playback state in sync—without a Jellystack cloud, ads, analytics, or tracking.

Highlights

Android is the stable, published platform. The shared Kotlin Multiplatform code and iOS host remain experimental; iOS is not currently distributed as a supported release.

Privacy

Jellystack connects directly to servers configured by the user. Server credentials and tokens are stored in the platform-protected credential store. The app has no analytics SDK, automatic log upload, advertising, or developer-operated media proxy.

See Privacy, Permissions, and the German privacy policy.

Build

Requirements:

All Gradle commands run from the repository root:

./gradlew :app-android:assembleDebug
./gradlew :app-tv:assembleDebug

Useful verification:

./gradlew spotlessCheck detekt
./gradlew :app-android:check
./gradlew :shared-network:jvmTest :shared-core:testDebugUnitTest

See Building for local setup and Architecture for module boundaries.

The TV beta uses a separate GMS-free application module while sharing Jellyfin, Seerr, settings, and playback logic with mobile. See Android TV and Fire TV for emulator setup, remote controls, builds, testing, and store submission.

Contributing

Issues, discussions, and pull requests are welcome. Every change—including maintainer changes—lands through a pull request with required CI checks.

Read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before contributing.

License and independence

Jellystack is licensed under GPL-3.0. See Third-Party Notices for dependencies.

Jellystack is an independent community project and is not affiliated with or endorsed by Jellyfin, the Jellyfin project, Seerr, or their maintainers.