{"adoption": {"forks": 363, "observed_at": "2026-08-28T04:05:45.495374+00:00", "stars": 1862}, "canonical_url": "https://ross.abutalabs.com/products/python-adb", "card": {"archived": true, "artifact_type": "library", "description": "Python ADB + Fastboot implementation", "domain": ["developer-tools", "testing"], "enriched": true, "function": ["cli", "developer-tools", "workflow-automation", "testing"], "health_score": 10, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["google/python-adb"], "name": "google/python-adb", "platform": ["python", "windows", "cli"], "pushed_at": "2024-04-06T19:01:19+00:00", "repo": "google/python-adb", "stars": 1862, "tags": ["adb", "fastboot", "android", "usb", "libusb1", "device-automation", "command-line", "automation", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["communicate with android devices from python", "automate adb shell commands in tests", "run fastboot commands programmatically", "flash android devices in automated pipelines", "push and pull files to android devices via python", "list connected android devices without adb daemon"], "what_it_is": "A pure-Python implementation of the Android ADB and Fastboot protocols using libusb1 for USB communication. It can be used as a Python library or as standalone command-line tools (pyadb, pyfastboot) for communicating with Android devices programmatically.", "when_to_avoid": ["you need multiple simultaneous commands to the same device", "you need maximum performance for high-throughput device communication", "you want an actively maintained project - consider adb_shell instead", "you just need the standard adb/fastboot CLI experience"], "when_to_choose": ["you need to control Android devices from Python code", "you want a daemon-less ADB client for automated testing", "you need portable standalone ADB/Fastboot tools runnable via Python", "you must ensure commands never target the wrong device"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-adb", "repo": "google/python-adb", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "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:05:45.495374+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.495374+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.979295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69742e0e848c1a032808ab9b5611e47d3186350be58c482f17a034a00de0724e", "fetched_at": "2026-08-28T04:05:45.495374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/python-adb"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4446, "days_push": 879, "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}}