{"adoption": {"forks": 70, "observed_at": "2026-08-28T04:03:39.062331+00:00", "stars": 1117}, "canonical_url": "https://ross.abutalabs.com/products/mrepo", "card": {"archived": true, "artifact_type": "application", "description": "A modules manager for Magisk, KernelSU and APatch", "domain": ["android-tools", "developer-tools", "self-hosted"], "enriched": true, "function": ["gui", "developer-tools"], "health_score": 10, "homepage": null, "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["MRepoApp/MRepo"], "name": "MRepoApp/MRepo", "platform": [], "pushed_at": "2024-07-02T13:58:58+00:00", "repo": "MRepoApp/MRepo", "stars": 1117, "tags": ["magisk", "kernelsu", "apatch", "root-modules", "jetpack-compose", "module-manager", "kotlin", "android", "mobile"], "topics": ["android", "magisk", "kernelsu", "jetpack-compose", "kotlin"], "urls": [], "use_cases": ["manage Magisk modules on a rooted Android device", "install and update KernelSU modules", "browse and sync a custom Magisk modules repository", "manage APatch modules", "mirror the Magisk-Modules-Alt-Repo for easier access", "self-host a modules repository for rooted devices"], "what_it_is": "MRepo is an Android application for managing Magisk, KernelSU, and APatch modules and custom module repositories. It is built with Kotlin and Jetpack Compose and supports Android 8.0 through 14.", "when_to_avoid": ["your device is not rooted or does not run Magisk, KernelSU, or APatch", "you need a module manager for non-Android platforms", "you only need to build module repositories server-side (use mrepo-rs instead)"], "when_to_choose": ["you have a rooted Android device with Magisk, KernelSU, or APatch and want a modern module manager", "you want to manage your own module repositories instead of relying on a single official repo", "you prefer an open-source, Jetpack Compose-based Android app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mrepo", "repo": "MRepoApp/MRepo", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.062331+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:41:51.611828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b54c315167879bbfaacce77c047f13a1ffd94f24d9cb76626458e72cce6a2063", "fetched_at": "2026-08-28T04:03:39.062331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MRepoApp/MRepo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1419, "days_push": 792, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}