Mangi-11 / Eta
git clone https://github.com/Mangi-11/Eta.git
v3.3.1 · 9d ago
System-level Android AI Agent with direct OS access. | Android 系统级 AI Agent——越过沙盒,让模型访问底层API、屏幕、终端与你的数据
+52
stars, 24h · #741
+~278
stars, 7 days · #792
+~1.2k
stars, 30 days · #704
2.2k
★ total · +15% this week
232
forks · 65 open issues
Star history (as recorded here)
LanguageKotlin
License—
Created2026-03-26 (7mo ago)
Last pushtoday
Watchers8
OwnerUser
GitHub topics
Links
- GitHub: github.com/Mangi-11/Eta
- Releases · Issues · Hacker News mentions
README excerpt
# Eta **简体中文** | English **面向 Android 的第三方系统级 AI 助手** Eta 是为手机和移动设备设计的 AI Agent,结合了 Codex 这类 Coding Agent 自主规划与执行任务的能力,以及豆包手机助手所展示的 GUI Agent 跨应用操作方式。它可以处理文件、执行命令、编写代码,也可以通过系统与厂商应用适配,直接调用系统 API,检索通知、日程、照片等本机信息。 **系统级能力**: - **系统操作**:直接调用 Android API,完成设置闹钟、控制媒体、调整音量等操作。 - **厂商数据**:在对应系统与授权条件下,直接检索小布记忆、便签、录音摘要等数据。 - **系统入口**:通过 Xposed 接管电源键、小布和超级小爱,从熟悉的助手入口发起 Eta 任务。 Eta 内置 Agent Runtime,通过 Agent Loop 编排模型调用、工具执行和结果反馈,并支持 Skills 与 MCP 扩展。使用 AI 功能需要自备模型服务的 **API Key(BYOK)**,模型与服务商由你选择。 支持 **Android 13 及以上版本**,App 本体不限手机品牌,基础功能无需 Root。Root 和 LSPosed 可进一步扩展系统访问与助手入口,具体能力取决于授权和 ROM 适配。 下载 APK · 快速开始 · 为什么做 Eta ## 界面预览 | GUI Agent | 小布助手 BYOK | | :-------: | :-----------: | | | | 更多界面:聊天、设备工具与设置 | 聊天首页 | 小布入口执行命令 | 系统 API 调用 | | :-----------------------------------------: | :------------------------------------------------------------: | :-------------------------------------------------------: | | | | | | 设置 | 工具能力 | Skills | | :------------------------------------: | :-------------------------------------: | :------------------------------------: | | | | | ## 核心能力 ### 执行工具 - **系统 API 与设备工具**:通过 Android API 与系统 Intent 设置闹钟、控制媒体、调整音量、读取设备状态;也可查询应用版本、安装信息与权限,在 Root 授权下筛选系统日志。设置、应用状态和音量操作会读回结果,未确认时明确报告。 - **GUI Agent**:结合无障碍 UI 树、控件定位与按需截图,执行点击、滚动和输入;截图按原始尺寸与像素传递,不在上传前缩放或转 JPEG。执行时屏幕边缘流光提示正在接管,状态栏下方的状态胶囊显示当前步骤,点击展开补充、暂停与停止;Android 16 QPR2 及以上的设备还会把运行状态显示到状态栏胶囊与锁屏(Live Updates,部分系统映射到流体云等)。 - **内置浏览器**:通过 WebView 加载 JavaScript 页面、读取正文、操作 DOM 与截图;用户可打开同一浏览器会话接管。 - **终端**:Android user/root Shell、Alpine / Debian Linux 与脚本执行,支持会话、异步命令和守护任务;返回实际 Shell、执行身份与可解析命令的信息。 - **文件工具**:读取、写入、精确编辑、元数据查询、目录分页、路径匹配与文本搜索。文本读取按 UTF-8 字节边界续读,编辑检查旧内容,搜索结果说明实际范围与未完成部分。 同一项任务可以组合多种工具:例如先读取网页资料,再用脚本整理文件;或从通知中找到订单线索,再打开应用确认状态。 ### 上下文与扩展 - **个人上下文**:按需检索通知、应用使用情况与位置;相册、日历、短信、录音、健康摘要、聊天图片等专用检索需要 Root,部分来源还要求对应 ROM 与应用支持。 - **长期记忆**:使用本机 `MEMORY.md` 保存跨对话背景,核心内容按预算加入上下文,其余按需读取;支持编辑、清空和关闭。 - **Skills**:按需加载任务方法、参考资料与脚本资源,支持公开 GitHub 仓库安装和本地 ZIP 导入;安装不会执行脚本或开启额外权限。 - **MCP**:通过 Streamable HTTP 连接远程工具,支持 Bearer Token;工具逐项启用,与本机工具共同参与任务。 ### Agent Runtime Agent Runtime 运行在 Eta App 内,来自聊天页面和系统助手的请求共用同一个 Agent Loop。模型通过 Tool Calling 选择工具,执行结果回到上下文,再决定下一步。工具 Schema 用于向模型说明参数,调用交给对应执行器处理,并在执行前检查权限;Hook 进程只负责入口与结果回传。 Runtime 同时管理流式事件、steering、取消和增量 transcript。追加指令在当前 turn 完成后进入下一轮,会话与结果在本机归档;中断后尝试恢复已有记录,不自动重放操作。详细设计见 Agent Runtime。 ### 可选角色 侧边栏的“角色”可管理、导入和导出兼容酒馆的 PNG / JSON 角色卡,并从角色开始对话。角色会话仍能调用 Eta 的手机工具,支持用户人设、内嵌世界书和独立剧情记忆;普通对话及系统助手入口保持默认 Eta。角色正文可原位编辑,重新生成只改写回复,不重复执行设备动作。兼容范围和记忆说明见角色功能。 ## 为移动设备重新设计的终端 Eta 的终端可以由 Agent 调用,也可以由你直接操作。多个会话各自保留工作目录与环境;PTY 控制台是默认形态,可以直接运行 Claude Code、Codex、Kimi Code 等 TUI:输入直达终端,键条提供 Esc、Ctrl/Alt、方向键、回车与粘贴,网格随软键盘自动调整;简洁模式按命令展示输入输出。模型通过 `terminal` 执行命令,`terminal_job` 管理回复结束后仍会继续执行的后台命令,完成时发送通知并保留日志,`terminal_daemon` 管理可跨任务运行的后台服务;两种后台任务都可查看输出、主动停止。 Agent 的文件与命令共用本次运行的默认身份和工作区:已确认 Root 授权时默认直接使用 Root,否则使用 App 身份;两者使用同一个私有工作区,身份变化不移动文件。工作区页面支持读取、导出 Root 生成的文件;需要普通身份时显式传 identity=user。普通 Shell 身份不等同于 ADB Shell。Linux 文件路径在所选环境内部解析,例如 `/workspace`,不使用 Android 宿主的 r