{"adoption": {"forks": 393, "observed_at": "2026-08-28T04:07:03.193796+00:00", "stars": 2595}, "canonical_url": "https://ross.abutalabs.com/products/open-xiaoai", "card": {"archived": true, "artifact_type": "application", "description": "🔊 让小爱音箱「听见你的声音」，解锁无限可能。 ", "domain": ["iot", "artificial-intelligence", "hardware", "self-hosted"], "enriched": true, "function": ["speech-recognition", "tts", "agent-framework", "llm-inference", "audio-processing"], "health_score": 10, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["idootop/open-xiaoai"], "name": "idootop/open-xiaoai", "platform": ["embedded", "rust", "self-hosted"], "pushed_at": "2026-04-04T07:58:12+00:00", "repo": "idootop/open-xiaoai", "stars": 2595, "tags": ["xiaomi", "xiaoai", "smart-speaker", "firmware-patch", "custom-wake-word", "voice-assistant", "hardware-hack", "ai-agents", "linux"], "topics": [], "urls": [], "use_cases": ["connect my xiaoai speaker to chatgpt or an llm", "use a custom wake word on my xiaomi smart speaker", "replace xiaoai's built-in assistant with a custom AI agent", "hook my smart speaker up to gemini live api", "pair two xiaoai speakers for stereo audio", "take over the microphone and speaker of a xiaoai speaker"], "what_it_is": "Open-XiaoAI is a Rust-based client/server project that takes over the audio input and output of Xiaomi XiaoAI smart speakers (LX06 and OH2P), letting users connect them to custom AI backends like LLM agents, XiaoZhi AI, Gemini Live, or MiGPT. It requires flashing patched firmware and running a client patch on the speaker itself.", "when_to_avoid": ["you have a different XiaoAI speaker model - the patch only supports two models", "you don't want to flash custom firmware or SSH into your device", "you need maintained software - the project is no longer updated or supported", "you want a no-flash solution - consider mi-gpt or xiaogpt instead"], "when_to_choose": ["you own a XiaoAI Speaker Pro (LX06) or Xiaomi Smart Speaker Pro (OH2P) and are comfortable flashing firmware", "you want full control over the speaker's voice pipeline with custom AI backends", "you want to build custom voice agent features on Xiaomi hardware"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/open-xiaoai", "repo": "idootop/open-xiaoai", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "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:07:03.193796+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:03.193796+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:22:15.166417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "64cfb5a0dbeb91fe1b62696a22a313c300b4ee93f17dc4cf7c03ec4d22c8b517", "fetched_at": "2026-08-28T04:07:03.193796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/idootop/open-xiaoai"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 75, "longevity": 36, "rhythm": 63}, "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": 513, "days_push": 151, "days_rel": 244, "gap_med": 20, "n_releases_24m": 8}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}