{"adoption": {"forks": 1593, "observed_at": "2026-08-28T04:10:20.251542+00:00", "stars": 8309}, "canonical_url": "https://ross.abutalabs.com/products/uiautomator2", "card": {"archived": false, "artifact_type": "library", "description": "Android Uiautomator2 Python Wrapper", "domain": ["mobile-development", "testing"], "enriched": true, "function": ["testing", "e2e-testing", "workflow-automation"], "health_score": 97, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["openatx/uiautomator2"], "name": "openatx/uiautomator2", "platform": ["python", "cli"], "pushed_at": "2026-08-07T02:36:26+00:00", "repo": "openatx/uiautomator2", "stars": 8309, "tags": ["android-automation", "uiautomator", "appium-alternative", "ui-testing", "adb", "automation", "android"], "topics": ["python", "uiautomator", "test"], "urls": [], "use_cases": ["automate android ui tests from python", "click elements on an android phone programmatically", "scrape text from android app screens", "run e2e tests on real android devices", "control android device over adb with python", "automate android app interactions without appium"], "what_it_is": "A Python library that wraps Android's UiAutomator framework, exposing device automation capabilities over HTTP so scripts can control Android phones from Python. It supports app launching, element lookup via XPath, clicking, and reading UI text on devices running Android 4.4+.", "when_to_avoid": ["you need to automate iOS or cross-platform mobile apps", "you require the full WebDriver protocol or Appium ecosystem tooling", "your target device runs Android older than 4.4"], "when_to_choose": ["you want simple Python scripting of Android UI automation on real devices", "you find Appium too heavyweight for your test or automation needs", "you need XPath-based element lookup and device info on Android 4.4+"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/uiautomator2", "repo": "openatx/uiautomator2", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "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:10:20.251542+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.251542+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.889028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d7ee8d9cced837fdb0cb429025af7b4487c6a9a8f1a1e50fd1b110830d32e76f", "fetched_at": "2026-08-28T04:10:20.251542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openatx/uiautomator2"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 90}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3272, "days_push": 27, "days_rel": 68, "gap_med": 14, "n_releases_24m": 20}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}