Omnio's multiplatform mobile client for Android and iOS.
Stremio addon ecosystem • Cross-platform
Omnio Mobile is a Kotlin Multiplatform mobile client for Android and iOS. It delivers a shared Compose UI while keeping the playback-focused experience, collection tools, watch progress flows, downloads, and Stremio addon ecosystem integration from the fork baseline.
The mobile app is built from a single shared codebase in composeApp, with native platform entry points for Android and iOS.
Download the latest Android build from GitHub Releases.
git clone https://github.com/TheMrClaus/OmnioMobile.git
cd OmnioMobile
./scripts/run-mobile.sh android
# or
./scripts/run-mobile.sh ioscomposeApp/contains the shared Kotlin Multiplatform and Compose Multiplatform app code.composeApp/src/commonMain/contains shared UI, features, repositories, and platform-agnostic logic.composeApp/src/androidMain/contains Android-specific integrations.composeApp/src/iosMain/contains iOS-specific integrations.iosApp/contains the native Xcode project and iOS entry point.
Useful commands:
./gradlew :composeApp:assembleDebug
./gradlew :composeApp:compileKotlinIosSimulatorArm64
./scripts/build-distribution.shVersioning is driven from iosApp/Configuration/Version.xcconfig, which is used as the shared source of truth for both iOS and Android builds.
OmnioMobile beta releases are produced by the Beta Release GitHub Actions workflow in .github/workflows/beta-release.yml.
The workflow supports three modes:
dry_rungenerates preview release notes without editing tracked files, building APKs, or publishing anything.draftbuilds the signedfullReleaseAPK, bumpsiosApp/Configuration/Version.xcconfigin auto mode, and creates a draft GitHub release.publishbuilds the signedfullReleaseAPK, bumpsiosApp/Configuration/Version.xcconfigin auto mode, and creates a normal GitHub release.
If you override release_tag, keep the main channel marker in the tag so the in-app updater can still discover the release.
Required repository secrets:
LOCAL_PROPERTIES_BASE64OMNIO_PHONE_RELEASE_KEYSTORE_BASE64OMNIO_PHONE_RELEASE_KEY_ALIASOMNIO_PHONE_RELEASE_KEY_PASSWORDOMNIO_PHONE_RELEASE_STORE_PASSWORD
LOCAL_PROPERTIES_BASE64 is decoded into the CI local.properties file. The phone signing secrets are then appended into that same file as NUVIO_RELEASE_STORE_FILE, NUVIO_RELEASE_KEY_ALIAS, NUVIO_RELEASE_KEY_PASSWORD, and NUVIO_RELEASE_STORE_PASSWORD so the existing Gradle signing configuration can build the signed Android release APK without additional Gradle changes.
The beta workflow currently publishes normal GitHub releases, not GitHub prereleases, so the in-app updater can discover them on the main channel.
Omnio Mobile functions solely as a client-side interface for browsing metadata and playing media provided by user-installed extensions and/or user-provided sources. It is intended for content the user owns or is otherwise authorized to access.
Omnio Mobile is not affiliated with any third-party extensions, catalogs, sources, or content providers. It does not host, store, or distribute any media content.
- Kotlin Multiplatform
- Compose Multiplatform
- Kotlin
- AndroidX Media3
- AVFoundation and native iOS integrations