{"adoption": {"forks": 440, "observed_at": "2026-08-28T04:08:57.547750+00:00", "stars": 4723}, "canonical_url": "https://ross.abutalabs.com/products/xiaomi-cloud-tokens-extractor", "card": {"archived": false, "artifact_type": "cli-tool", "description": "This tool retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices.", "domain": ["iot", "developer-tools"], "enriched": true, "function": ["cli", "security", "developer-tools"], "health_score": 66, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["PiotrMachowski/Xiaomi-cloud-tokens-extractor"], "name": "PiotrMachowski/Xiaomi-cloud-tokens-extractor", "platform": ["python", "cli", "windows", "cross-platform"], "pushed_at": "2025-11-08T01:57:43+00:00", "repo": "PiotrMachowski/Xiaomi-cloud-tokens-extractor", "stars": 4723, "tags": ["xiaomi", "xiaomi-cloud", "miio", "roborock", "vacuum", "ble-encryption-keys", "home-assistant", "device-tokens", "automation", "linux", "docker"], "topics": ["xiaomi", "xiaomi-vacuum", "roborock"], "urls": [], "use_cases": ["get xiaomi vacuum token for home assistant", "retrieve device tokens from xiaomi cloud", "find roborock vacuum token", "extract BLE encryption keys for xiaomi devices", "set up xiaomi devices with local integrations", "list all devices on my xiaomi account with IP addresses"], "what_it_is": "A Python CLI tool that logs into a Xiaomi Cloud account (via credentials or QR code) and retrieves device tokens and BLE encryption keys for all connected devices. It supports Windows, Linux, Docker, and Home Assistant usage.", "when_to_avoid": ["you only use the official Mi Home app and don't need local API access", "you can't complete Xiaomi 2FA verification", "your network blocks Xiaomi cloud endpoints (ad blockers, Cloudflare DNS, country restrictions)"], "when_to_choose": ["you need device tokens to configure local Xiaomi/Mi Home integrations like Home Assistant", "you want a ready-made executable or Docker script with no setup", "you need BLE keys for Xiaomi sensors"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xiaomi-cloud-tokens-extractor", "repo": "PiotrMachowski/Xiaomi-cloud-tokens-extractor", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "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:08:57.547750+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.547750+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:19:05.015213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91421fca12f497f242a3263afa67a8390548b6480fb0933f24827fb499eae5ee", "fetched_at": "2026-08-28T04:08:57.547750+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 51, "longevity": 100, "rhythm": 51}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2141, "days_push": 299, "days_rel": 330, "gap_med": 10, "n_releases_24m": 8}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}