A free and open source Android client for Kick ๐
Native Material 3 design. Live streams, chat, and VODs. Built for phones and tablets.
English โข Tรผrkรงe
Download โข Features โข Screenshots โข Roadmap โข Contribute
Kicker was created to address the stuttering, lag, excessive device heating, and instability experienced with the official Kick Android app. The goal is a smoother, more dependable viewing experience with a native interface and controls that feel at home on Android. Performance and battery use still depend on your device, stream quality, and network.
Important
Independent, unofficial project. Kicker is not affiliated with, endorsed by, or sponsored by Kick. Kick names, logos, and content belong to their respective owners. The name Kicker distinguishes this community client from the official app.
- Watch live and recorded streams: browse channels and categories, search for creators, and watch VODs.
- Use it without an account: watch streams, search, play VODs, and read chat as a guest.
- Connect your Kick account: access your follows, follow or unfollow channels, and send chat messages.
- Make playback yours: automatic or manual quality selection, low-latency mode, picture-in-picture, a mini player, and a sleep timer.
- Keep your place: local favorites, watch history, and saved VOD playback progress.
- Enjoy native Material 3: adaptive layouts for phones and tablets, light/dark/AMOLED themes, and dynamic colors on Android 12+.
- Customize chat: adjust text size, message spacing, timestamps, and chat panel width.
- View your Kicks balance: balance display without an in-app checkout or real-money transactions.
- Choose your language: English and Turkish, with support for following the system language.
Account features depend on Kick's service availability and may need updates when its web APIs change.
- Deliver smooth playback and responsive navigation while reducing unnecessary resource use.
- Offer a consistent, accessible Material experience on small and large screens.
- Keep account connection optional and session storage local to your device.
- Keep development open, reviewable, and welcoming to community contributions.
See the roadmap and planned work. Goals describe the project's direction; they are not guarantees of delivery dates or benchmark results.
![]() Make it yours |
![]() Watch & chat |
![]() Discover |
![]() Discover on a larger screen |
![]() Player & chat, side by side |
Requires Android 11 (API 30) or newer. Package ID: com.lechixy.kicker.
| Source | Installation |
|---|---|
| GitHub Releases | Download an APK from a published release and install it manually. |
| Obtainium | Install release APKs from GitHub and track updates with Obtainium. |
| F-Droid | Search for Kicker or its package ID in the F-Droid client. Listing availability is not yet confirmed; use GitHub if it is absent. |
| IzzyOnDroid | Search the repository for Kicker or its package ID. Listing availability is not yet confirmed; use GitHub if it is absent. |
- Install Obtainium on your Android device.
- Tap the Add to Obtainium badge above and confirm the import. The configuration tracks stable GitHub releases, excludes debug APKs, and enables automatic APK filtering by device architecture.
- Install Kicker through Obtainium and use it to check for future updates.
To add it manually, paste https://github.com/lechixy/Kicker into Obtainium's Add App screen. Set the APK filename filter (regular expression) to _release\.apk$, enable automatic APK filtering by architecture, and leave prereleases disabled. Enable prereleases only if you want test versions.
Obtainium downloads the same APKs as GitHub Releases. No separate store listing is required; see the Obtainium deep-link documentation.
- Open Releases and read the release notes.
- Choose a release APK for your device:
arm64-v8afor most current phones,armeabi-v7afor 32-bit ARM devices, orx86/x86_64for compatible Intel devices and emulators. Choose universal if you are unsure. - If a
sha256sums.txtfile is provided, compare the APK's SHA-256 hash with its entry. - Open the APK, allow installation from that source if Android asks, and follow the installer.
For updates, install a newer APK signed with the same certificate. Different distribution channels may use different signing keys, so switching sources can require uninstalling first. Uninstalling removes local app data and the saved session.
Use Android Studio with support for the project's Android Gradle Plugin, JDK 21, and the Android SDK required by the app build configuration. Open the project, let Gradle sync, and run the app configuration, or build a debug APK:
git clone https://github.com/lechixy/Kicker.git
cd Kicker
./gradlew assembleDebugOn Windows, use gradlew.bat assembleDebug. APKs are written to app/build/outputs/apk/debug/. No separate backend or Kick developer application registration is required.
Kicker does not process purchases, subscriptions, subscription gifts, Kicks purchases, or other real-money transactions. It only displays your Kicks balance. For all purchases and subscription management, use the official Kick website or official mobile app.
- Signing in is optional and happens on Kick's own login page inside the app.
- Kicker does not send your sign-in credentials or session to a developer-operated backend. Authentication communicates directly with Kick; using Kick still involves its own services and privacy practices.
- The retained session is encrypted locally with AES-GCM using a key held in Android Keystore. The encrypted session is stored in the app's private, no-backup directory, outside Android backup/device transfer and settings exports.
- Kicker uses that session to authenticate your account actions and maintain the connected Kick experience, including follows, chat, and playback-related requests.
- Signing out clears the app's saved session and account state. Uninstalling removes its local session data and app-scoped Keystore key. To revoke sessions on Kick's side, use Kick's account security settings.
Review the implementation in SecureSessionStore.kt, AuthRepository.kt, and KickWebLoginActivity.kt.
Bug reports, translations, accessibility improvements, documentation, and code contributions are welcome.
- Check existing issues and the roadmap before starting larger changes.
- For a bug, include the app version and installation source, Android version, device model, steps to reproduce, and expected/actual behavior. Remove cookies, tokens, personal information, and private chat content from logs or screenshots.
- Fork the repository, make a focused change, and open a pull request explaining the change and how you verified it.
- For code changes, run relevant tests (
./gradlew testDebugUnitTest) and check affected UI on a phone and tablet when applicable. Instrumented tests require a connected device or emulator (./gradlew connectedDebugAndroidTest).
Keep both README translations in sync when changing shared documentation.
| Language | App interface | README |
|---|---|---|
| English | Supported; default resources in values | English |
| Tรผrkรงe | Supported; translations in values-tr | Tรผrkรงe |
To add a language, translate the relevant strings*.xml files into app/src/main/res/values-<language>/, preserve resource names and format arguments, and add the locale to locales_config.xml and the language options in SettingsCatalog.kt. README translations are welcome too; add a language link once its file exists.
No. It is an independent community project. Use Kick's official channels for billing, account recovery, and platform support.
No. Watching live streams and VODs, searching, and reading chat work as a guest. Sign in to access your Kick follows and send chat messages.
No. Kicker only shows your Kicks balance and does not handle real-money transactions. Use Kick's website or official app for purchases and subscriptions.
On your device, encrypted with an Android Keystore key. It is not uploaded to a Kicker backend or included in backups or settings exports. See Notices & privacy for details.
Kicker depends on Kick's web APIs and WebSocket services. Service changes, expired sessions, outages, or network conditions can affect features. Try the newest release, sign in again if prompted, and report reproducible problems with sensitive information removed.
Reducing stutter and unnecessary resource use is a development goal, not a guarantee for every device. Stream resolution, decoding hardware, network conditions, and display brightness all affect heat and power consumption.
Only builds with matching package IDs and compatible signatures can update one another. If signatures differ, Android requires uninstalling the existing build first, which removes its local data.
Kicker is built on the work of these open source projects:
| Project | Used for |
|---|---|
| Kotlin & kotlinx.serialization | Application code and JSON serialization |
| Jetpack Compose & Material 3 | Native UI, themes, and adaptive layouts |
| AndroidX | Activity, AppCompat, Lifecycle, Navigation, DataStore, splash screen, and profile installation |
| Media3 / ExoPlayer | HLS playback and media sessions |
| Dagger Hilt & KSP | Dependency injection and code generation |
| Retrofit & OkHttp | HTTP APIs and WebSocket connections |
| Coil | Image loading and GIF support |
| Markwon | Markdown rendering |
| Android Identity Credential | Identity utilities declared by the app |
| JUnit, Espresso, UI Automator & Macrobenchmark | Tests and performance tooling |
For exact coordinates and versions, see gradle/libs.versions.toml, app/build.gradle.kts, and baselineProfile/build.gradle.kts. Dependencies retain their respective licenses.
Kicker is free and open source software released under the MIT License. The software is provided without warranty; see the license for its full terms. Third-party trademarks, platform content, and dependencies remain subject to their owners' rights and applicable licenses.




