Sajid Ali
09/02/2026, 8:19 AM// settings.gradle.kts
plugins { id("dev.sajidali.compose-tvos") version "1.3.0" }
Then add tvosArm64() / tvosSimulatorArm64() and keep your stock org.jetbrains.compose.*, androidx.tv:tv-material, Koin and Coil coordinates. The plugin attaches tvOS variants at resolution time and points them at tvOS builds on Maven Central (dev.sajidali.*). It's official-first: any module JetBrains already ships tvOS klibs for is used as-is, so the handoff is automatic when upstream coverage arrives.
What's included:
• Compose 1.12.0 (runtime/foundation/ui/material/material3 1.5.0-alpha22/material3-adaptive)
• lifecycle 2.11.0, navigation, navigation3, savedstate, window-core
• androidx.tv:tv-material 1.1.0-alpha01 ported to CMP
• Koin 4.2.2 (koin-compose, koin-compose-viewmodel) and Coil 3 (3.5.0 for Kotlin 2.3, 3.6.1 for Kotlin 2.4)
• Kotlin 2.3.20+. Builds a production TV app of mine with zero app-source changes.
Proof it works:
The GIF below is the Apple TV 4K simulator driven with the Siri Remote: card focus traversal, a details page, Menu → back. That's Google's JetStream TV sample, ported end to end and built from Maven Central + the Plugin Portal with nothing published locally.
Plugin + docs: github.com/sajidalidev/compose-tvos (docs: sajidalidev.github.io/compose-tvos)
JetStream on tvOS: github.com/sajidalidev/jetstream-tvos (branch cmp-tvos)
Fork: github.com/sajidalidev/compose-multiplatform-core (tvos-main)
Would love the feedback.Lukáš Kúšik
09/02/2026, 9:25 AMSargun Vohra
09/02/2026, 2:01 PMSajid Ali
09/02/2026, 2:08 PM