[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75603":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":13,"stars30d":14,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":13,"starSnapshotCount":13,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},75603,"ai-app-bridge","ldpGitHub\u002Fai-app-bridge","ldpGitHub","AI App Bridge is a runtime bridge for AI agents to close the loop on mobile app iteration: inspect the running app, operate UI and WebView surfaces, collect structured runtime state, verify results, and continue improving the app.",null,"JavaScript",112,1,0,88,0.9,"Apache License 2.0",false,"main",true,[],"2026-06-12 02:03:35","# AI App Bridge\n\n[English](README.en.md)\n\n## 从“AI 写代码”到“AI 完成交付”，让 AI 长出眼睛和手\n\n> **以前：** AI 写完代码，你还要自己跑、自己点、遇到问题自己抓日志、自己抓网络请求、自己判断。  \n> **现在：** AI 写完代码，可以自己构建安装 App、自动操作 UI 功能路径、读取真实 UI 状态、检查网络和日志，并完成验收。\n\nAI App Bridge 让 AI agent 可以直接接入正在运行的 Android \u002F Flutter 应用。它能操作安卓 \u002F flutter \u002F H5 三端页面 ， 获取安卓 \u002F flutter \u002F H5 三端网络请求和运行日志 、 View tree \u002F Widget tree \u002F DOM，让 AI 不只看截图，也能基于真实状态自主迭代开发移动端。\n\n它的核心目标是让 AI agent 按“观察 -> 操作 -> 读取结果 -> 验证 -> 继续迭代”的方式自主推进，而不是在缺少运行证据时猜测。\n\nAI App Bridge is a mobile runtime bridge for autonomous AI agents. It lets agents inspect running Android and Flutter apps, operate native UI and WebViews, read view\u002Fwidget\u002FDOM trees, collect logs and network records, then follow an observe -> act -> read results -> verify -> iterate loop with real evidence.\n\n## 解决的问题\n\n移动端自动化如果只依赖截图，AI 很容易在关键细节上猜错。要让 AI 自主迭代，运行时需要同时提供两类能力：看清当前应用状态，并执行下一步动作。\n\n- 当前页面处在什么状态？\n- 原生 View、WebView DOM、Flutter Widget 的真实结构是什么？\n- 哪些元素可以点击、输入或滚动？WebView 中能执行哪些脚本？\n- 如何精准地操作 UI 和输入内容？\n- 执行动作后产生了哪些网络请求、日志、状态变化和事件？\n- 修改代码或触发操作后，应用是否真的进入了预期状态？\n\n## 模块结构\n\n```text\nandroid\u002Fai-app-bridge-android          Android runtime SDK\nandroid\u002Fai-app-bridge-gradle-plugin   Debug 构建插桩插件\nflutter\u002Fai_app_bridge_flutter         Flutter 插件\ndesktop\u002Fai-app-bridge-cli             Node CLI 和 MCP stdio server\nexamples\u002Fandroid-native-sample        干净的 Android 示例应用\ndocs                                  设计、集成和测试文档\n```\n\n## 核心能力\n\n- 本地 bridge 状态查询：从 `127.0.0.1:18080` 开始自动选择可用端口\n- Android View tree、窗口树和截图\n- 原生\u002FH5 UI 操作，以及桌面端 ADB \u002F UIAutomator 兜底操作\n- 原生 Android WebView DOM 快照和 JavaScript 执行\n- Debug WebView DevTools\u002FCDP 网络请求和 console 捕获\n- Flutter Widget 快照、语义动作信息和运行时动作处理\n- Flutter H5 操作和 DOM 快照\n- 日志、网络请求、状态和事件缓冲区，支持 `sinceId` \u002F `sinceMs` 增量读取\n- Debug Gradle 插件支持 OkHttp HTTP 自动捕获\n- Node CLI \u002F MCP stdio server，方便 AI 工具接入运行时能力\n\n## Android 快速接入\n\n在目标 App 的 debug 构建里引入 Android runtime SDK：\n\n`settings.gradle.kts`：\n\n```kotlin\ndependencyResolutionManagement {\n    repositories {\n        google()\n        mavenCentral()\n        maven(\"https:\u002F\u002Fjitpack.io\")\n    }\n}\n```\n\n`app\u002Fbuild.gradle.kts`：\n\n```kotlin\ndependencies {\n    debugImplementation(\"com.github.ldpGitHub.ai-app-bridge:ai-app-bridge-android:0.1.9\")\n}\n```\n\nRuntime SDK 会在 debuggable Android 应用中通过 init provider 自动启动。\n\n可选的 OkHttp 自动捕获由 debug Gradle 插件提供：\n\n`settings.gradle.kts`：\n\n```kotlin\npluginManagement {\n    repositories {\n        google()\n        mavenCentral()\n        gradlePluginPortal()\n        maven(\"https:\u002F\u002Fjitpack.io\")\n    }\n    resolutionStrategy {\n        eachPlugin {\n            if (requested.id.id == \"io.github.lidongping.aiappbridge.android\") {\n                useModule(\"com.github.ldpGitHub.ai-app-bridge:ai-app-bridge-gradle-plugin:${requested.version}\")\n            }\n        }\n    }\n}\n```\n\n`app\u002Fbuild.gradle.kts`：\n\n```kotlin\nplugins {\n    id(\"io.github.lidongping.aiappbridge.android\") version \"0.1.9\"\n}\n\naiAppBridge {\n    setOkHttpCaptureEnabled(true)\n}\n```\n\n## Flutter 快速接入\n\nFlutter 项目只需要添加 pub 包。插件的 Android debug variant 会自动引入 `ai-app-bridge-android` runtime，用来启动设备内本地 bridge server；release variant 不会自动带入这个 debug runtime。\n\n如果 Android 工程还没有配置 JitPack，需要在仓库配置中加入 `https:\u002F\u002Fjitpack.io`。然后添加 Flutter 插件：\n\n```yaml\ndependencies:\n  ai_app_bridge_flutter: ^0.1.10\n```\n\n初始化一次：\n\n```dart\nimport 'package:ai_app_bridge_flutter\u002Fai_app_bridge_flutter.dart';\nimport 'package:flutter\u002Fwidgets.dart';\n\nvoid main() {\n  WidgetsFlutterBinding.ensureInitialized();\n  AiAppBridge.instance.initialize(appName: 'your_app_name');\n  runApp(const MyApp());\n}\n```\n\nFlutter WebView DOM 支持需要注册 H5 adapter，因为 WebView controller 在 Dart 层：\n\n```dart\nAiAppBridge.instance.registerH5Adapter(\n  AiAppBridgeH5Adapter(\n    id: 'main-webview',\n    source: 'webview_flutter',\n    evaluateJavascript: (script) {\n      return controller.runJavaScriptReturningResult(script);\n    },\n  ),\n);\n```\n\n## 连接 AI Agent\n\n```bash\nnpm install -g @lidongping\u002Fai-app-bridge\n```\n\n在你的 AI agent 的 MCP 配置里添加。\n\nmacOS \u002F Linux：\n\n```json\n{\n  \"mcpServers\": {\n    \"ai-app-bridge\": {\n      \"command\": \"ai-app-bridge-mcp\"\n    }\n  }\n}\n```\n\nWindows：\n\n```json\n{\n  \"mcpServers\": {\n    \"ai-app-bridge\": {\n      \"command\": \"cmd\",\n      \"args\": [\"\u002Fc\", \"ai-app-bridge-mcp\"]\n    }\n  }\n}\n```\n\n## 仅限 debug 构建\n\nAI App Bridge 会暴露运行时检查和操作能力，建议只在 debug 构建接入。除非已经完成针对自身环境的安全评审，否则不要把它打进 production \u002F release 包。\n\n## 开源协议\n\nAI App Bridge 使用 [Apache License 2.0](LICENSE) 开源。\n\n如果你分发修改后的版本，请保留许可证和版权声明，并明确说明你的版本基于或修改自 AI App Bridge。详见 [NOTICE](NOTICE)。\n","AI App Bridge 是一个运行时桥梁，使AI代理能够直接与正在运行的Android或Flutter应用交互，从而实现从代码编写到应用交付的全流程自动化。其核心功能包括操作UI界面和WebView、读取视图\u002F组件\u002FDOM结构、收集网络请求和日志，并通过观察-操作-读取结果-验证-迭代的方式自主推进开发流程。该项目采用JavaScript语言编写，支持原生Android、Flutter及H5页面的全面访问与控制，特别适用于需要提高移动端应用测试效率、降低手动干预成本以及加速产品迭代周期的场景中。",2,"2026-05-18 11:12:06","CREATED_QUERY"]