Github Store is a cross‑platform “play store” for GitHub releases. It discovers repositories that ship real installable binaries and lets you install the latest release in one click.
All screenshots can be found in screenshots/ folder.
Github Store is a Kotlin Multiplatform app (Android + Desktop) that turns GitHub releases into a clean, app‑store style experience:
- Only shows repositories that actually provide installable assets (APK, EXE, DMG, etc.).
- Detects your platform and surfaces the correct installer.
- Always installs from the latest published release and highlights its changelog.
- Presents a polished details screen with stats, README, and developer info.
The repository is currently private while the core is being stabilized, but it will be public and fully open source under the Apache 2.0 license very soon.
Go to the Releases to download the latest Installer.
-
Smart discovery
- Home sections for “Popular”, “Recently Updated”, and “New” projects.
- Only repos with valid installable assets are shown.
- Platform‑aware topic scoring so Android/desktop users see relevant apps first.
-
Latest‑release installs
- Fetches
/releases/latestfor each repo. - Shows only assets from the latest release.
- Single “Install latest” action, plus an expandable list of all installers for that release.
- Fetches
-
Rich details screen
- App name, version, “Install latest” button.
- Stars, forks, open issues.
- Rendered README content (“About this app”).
- Latest release notes (body) with markdown formatting.
- List of installers with platform labels and file sizes.
-
Cross‑platform UX
- Android: opens APK downloads and hands off to the package installer.
- Desktop (Windows/macOS/Linux): downloads to a configurable location and opens the file.
-
GitHub login & rate‑limit friendly
- Sign‑in with GitHub to use the user’s own 5,000 req/hour quota.
Github Store does not use any private indexing or manual curation rules.
Your project can appear automatically if it follows these conditions:
-
Public repository on GitHub
- Visibility must be
public.
- Visibility must be
-
At least one published release
- Created via GitHub Releases (not only tags).
- The latest release must not be a draft or prerelease.
-
Installable assets in the latest release
- The latest release must contain at least one asset file with a supported extension:
- Android:
.apk - Windows:
.exe,.msi - macOS:
.dmg,.pkg - Linux:
.deb,.rpm
- Android:
- Github Store ignores GitHub’s auto‑generated source artifacts (
Source code (zip)/Source code (tar.gz)).
- The latest release must contain at least one asset file with a supported extension:
-
Discoverable by search / topics
- Repositories are fetched via the public GitHub Search API.
- Topic, language, and description help the ranking:
- Android apps: topics like
android,mobile,apk. - Desktop apps: topics like
desktop,windows,linux,macos,compose-desktop,electron.
- Android apps: topics like
- Having at least a few stars makes it more likely to appear under Popular/Updated/New sections.
If your repo meets these conditions, Github Store can find it through search and show it automatically—no manual submission required.
-
Search
- Uses GitHub’s
/search/repositoriesendpoint with platform‑aware queries. - Applies simple scoring based on topics, language, and description.
- Filters out archived repos and those with too few signals.
- Uses GitHub’s
-
Release + asset check
- For candidate repos, calls
/repos/{owner}/{repo}/releases/latest. - Checks the
assetsarray for platform‑specific file extensions. - If no suitable asset is found, the repo is excluded from results.
- For candidate repos, calls
-
Details screen
- Repository info: name, owner, description, stars, forks, issues.
- Latest release: tag, published date, body (changelog), assets.
- README: loaded from the default branch and rendered as “About this app”.
-
Install flow
- When the user taps “Install latest”:
- Picks the best matching asset for the current platform.
- Streams the download.
- Delegates to the OS installer (APK installer on Android, default handler on desktop).
- When the user taps “Install latest”:
-
Minimum Android SDK: 24
-
Language & Platform
- Kotlin Multiplatform (Android + JVM Desktop)
- Compose Multiplatform UI (Material 3, icons, resources)
-
Async & state
- Kotlin Coroutines + Flow
- AndroidX Lifecycle (ViewModel + Runtime Compose)
-
Networking & Data
- Ktor 3 (HttpClient with OkHttp on Android, Java on Desktop)
- Kotlinx Serialization JSON.
- Kotlinx Coroutines + Flow for async + streaming search results.
- Kotlinx Datetime for time handling
-
Dependency injection
- Koin 4 (core, Android, Compose Multiplatform ViewModel)
-
Navigation
- JetBrains Navigation Compose for shared navigation graph
-
Auth & Security
- GitHub OAuth (Device Code flow)
- AndroidX Security Crypto for token storage
-
Media & markdown
- Coil 3 (Ktor3 image loader)
- multiplatform-markdown-renderer-m3 (+ Coil3 integration) for README/release notes
-
Logging & tooling
- Kermit logging
- Compose Hot Reload (desktop)
- ProGuard/R8 + resource shrinking for release builds
-
No more hunting through GitHub releases
See only repos that actually ship binaries for your platform. -
Always the latest release
Installs are guaranteed to come from the latest published release; the changelog you see is exactly what you’re installing. -
Uniform experience across platforms
Same UI and logic for Android and desktop, with platform‑native install behavior. -
Open source & extensible
Written in KMP with a clear separation between networking, domain logic, and UI—easy to fork, extend, or adapt.
Github Store uses a GitHub OAuth app for authentication and API rate‑limit isolation.
- Create a GitHub OAuth app at GitHub → Settings → Developer settings → OAuth Apps.
- Set the callback URL to
githubstore://callback(Not quite important). - Copy the Client ID from the OAuth app.
- In your project’s
local.properties, add:
Github Store only helps you discover and download release assets that are already published on GitHub by third‑party developers.
The contents, safety, and behavior of those downloads are entirely the responsibility of their respective authors and distributors, not this project.
By using GithubStore, you understand and agree that you install and run any downloaded software at your own risk.
This project does not review, validate, or guarantee that any installer is safe, free of malware, or fit for any particular purpose.
Github Store will be released under the Apache License, Version 2.0.
Copyright 2025 rainxchzed
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this project except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

