{"adoption": {"forks": 3746, "observed_at": "2026-08-28T04:11:56.997864+00:00", "stars": 31660}, "canonical_url": "https://ross.abutalabs.com/products/qtscrcpy", "card": {"archived": false, "artifact_type": "application", "description": "Android real-time display control software", "domain": ["developer-tools", "cross-platform", "mobile-development"], "enriched": true, "function": ["gui", "video-processing", "developer-tools"], "health_score": 99, "homepage": "https://blog.csdn.net/rankun1/article/details/87970523", "language": "C++", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["barry-ran/QtScrcpy"], "name": "barry-ran/QtScrcpy", "platform": ["windows", "cpp"], "pushed_at": "2026-08-20T08:29:47+00:00", "repo": "barry-ran/QtScrcpy", "stars": 31660, "tags": ["screen-mirroring", "android-control", "scrcpy", "adb", "key-mapping", "usb", "game-controller", "macos", "linux", "android", "qt"], "topics": ["qt", "android"], "urls": [], "use_cases": ["mirror and control my android phone screen from my pc", "play android games with keyboard and mouse", "control multiple android devices from one computer", "screen record my android device without root", "debug android apps on a real device from desktop"], "what_it_is": "QtScrcpy is a cross-platform desktop application for displaying and controlling Android devices in real time over USB or network, built on scrcpy with a Qt GUI. It requires no root and supports custom keyboard/mouse-to-touch key mapping for gaming.", "when_to_avoid": ["you need iOS device mirroring", "you only need a command-line scrcpy without a GUI", "you need wireless mirroring without ADB or USB debugging enabled"], "when_to_choose": ["you need low-latency Android screen mirroring on Windows, macOS, or Linux without root", "you want keyboard/mouse control of Android games via custom key maps", "you want a GUI on top of scrcpy with multi-device support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/qtscrcpy", "repo": "barry-ran/QtScrcpy", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "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:11:56.997864+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.997864+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:52:15.602801+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4bbbacf88145cb55a50f65b15633f9efe8953547ea7faf6dcd391e6a8adf69e0", "fetched_at": "2026-08-28T04:11:56.997864+00:00", "kind": "readme", "missing": false, "url": "https://github.com/barry-ran/QtScrcpy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 85}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2628, "days_push": 13, "days_rel": 21, "gap_med": 41, "n_releases_24m": 10}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}