{"adoption": {"forks": 112, "observed_at": "2026-08-28T04:03:58.060609+00:00", "stars": 1201}, "canonical_url": "https://ross.abutalabs.com/products/mangi-11-eta", "card": {"archived": false, "artifact_type": "application", "description": "Android 系统级 AI Agent——越过沙盒，让模型访问底层API、屏幕、终端与你的数据", "domain": ["android-tools", "large-language-models", "privacy"], "enriched": true, "function": ["agent-framework", "chatbot", "llm-inference", "workflow-automation", "security"], "health_score": 100, "homepage": null, "language": "Kotlin", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["Mangi-11/Eta"], "name": "Mangi-11/Eta", "platform": [], "pushed_at": "2026-08-25T11:07:11+00:00", "repo": "Mangi-11/Eta", "stars": 1201, "tags": ["lsposed-module", "root", "byok", "gui-agent", "system-level-agent", "coloros", "hyperos", "gemini", "circle-to-search", "kotlin", "ai-agents", "automation", "android"], "topics": ["circle-to-search", "coloros", "gemini", "lsposed-module", "oneplus", "hyperos", "xiaomi", "android-ai-assistant", "agent"], "urls": [], "use_cases": ["let an LLM control my rooted Android phone at the system level", "use my own API key with the phone's built-in assistant (Breeno or Xiao Ai)", "automate tasks in apps that have no API via a GUI agent that taps the screen", "give a chatbot access to my notifications, calendar, SMS, and photos as context", "run shell commands and scripts on my phone through an AI agent", "replace vendor AI assistant with a BYOK model", "have an agent read the screen and operate third-party Android apps"], "what_it_is": "Eta is a third-party system-level AI agent for Android that uses Root and LSPosed to bypass app sandboxing, giving connected LLMs (BYOK: ChatGPT, DeepSeek, Kimi, etc.) access to system APIs, shell, screen control, and personal device data. It hooks into vendor assistant entry points like ColorOS's Breeno and HyperOS's Xiao Ai and combines GUI automation with direct system tool calls.", "when_to_avoid": ["your device is not rooted or you cannot run LSPosed modules", "you are unwilling to grant an AI agent access to private system and app data", "you need a non-root, sandboxed assistant for mainstream users"], "when_to_choose": ["you have a rooted Android device with LSPosed and want a model to act beyond the app sandbox", "you want to bring your own LLM API key to a system-level phone assistant", "you need to automate long-tail apps that expose no API or CLI"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mangi-11-eta", "repo": "Mangi-11/Eta", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "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:03:58.060609+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.060609+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.415347+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1ab2bebe85760081ae60437661323d2e5823a2c0dca2e3abe002cf68f01e68ee", "fetched_at": "2026-08-28T04:03:58.060609+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Mangi-11/Eta"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 11, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["young", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 160, "days_push": 8, "days_rel": 9, "gap_med": 3, "n_releases_24m": 24}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}