GitHub:github.com/Zzechen/cli… ⭐ 欢迎 Star
AI 写 UI 代码已经越来越普遍,但有一个根本问题一直没有解决:AI 写完代码之后,它看不见运行出来的界面长什么样。没有视觉反馈,就没有闭环——你得手动编译、截图、把问题描述给 AI,来来回回可能要多轮。
Client-Tools 就是为了把这个「盲区」补上——一套让 AI 能实时「看见」并操作移动端界面的开源工具套件。
它是什么
Client-Tools 由三层组成:
AI(Claude / Cursor / Codex 等)
↕ MCP 协议
MCP Server(TypeScript/Node.js)
↕ HTTP REST
App 内嵌 SDK(Android / iOS)
App 内嵌 SDK 是整个系统的感知层。在 App 内部启动一个轻量 HTTP Server,将 View 树、截图、界面操作等能力以 REST 接口暴露出来。Android 端基于 Kotlin + NanoHTTPD 实现,iOS 端基于 Swift + Network Framework,所有跨端数据结构通过 Protocol Buffers 统一定义,保证两端行为一致。
MCP Server 是翻译层。基于 TypeScript 实现,将 SDK 暴露的 HTTP 接口封装为 27 个标准 MCP 工具,让 AI 可以像调用普通函数一样查询界面状态、发出操作指令。
AI(Claude / Cursor / Codex 等) 是决策层。通过 MCP 工具获取界面信息、发出修改指令,配合预定义的 Skill 工作流完成视觉校正、设计验收等复杂任务。
能做什么
🖼️ 界面检查:获取当前页面所有 View 节点的坐标、尺寸、可见性、文案等属性,支持按 id 精确查询,也支持全量快照。AI 拿到这份数据,就能准确知道每个元素在屏幕上的实际位置。
✏️ 运行时修改:直接在内存中修改 View 的位置、尺寸和文案,无需重新编译。AI 可以先「试调」布局,确认视觉效果达标后,再输出对应的源码改动建议,开发者直接复核应用即可。
🎨 设计稿对比(核心能力):将 HTML 格式的设计稿推送到 App 内的 WebView 覆层,叠加在原生界面上方。系统自动计算锚点偏移完成对齐,然后逐节点比对坐标差异,差异小于 1dp 视为通过,否则 AI 自动调整并循环校验,直到所有节点收敛。
🌐 网络 Mock:拦截 App 的网络请求,返回预设的模拟数据,方便在特定数据场景下验证界面表现,无需依赖后端环境。
🔄 WebView 重定向:将 App 内 WebView 加载的远程 URL 自动替换为本地地址,方便联调本地 H5 页面,告别手动改代码再打包的繁琐流程。
🔌 自定义扩展:App 可以注册自定义 HTTP 路由,将业务私有能力(如切换主题、模拟登录态)暴露给 AI 调用,灵活适配各种业务场景。
怎么用
第一步:集成 SDK
Android 在 build.gradle 中添加依赖,然后在 Application.onCreate() 中调用 ClientToolsSDK.init(context = this) 完成初始化。debug 包接入完整功能,release 包自动切换为零开销的 noop 桩,不影响线上包体积和性能。iOS 通过 CocoaPods 接入,方式相同。
唯一的约束:所有 View 必须设置 android:id(包括中间容器层),这样 AI 才能精确定位和操作每个元素。
第二步:启动 MCP Server
克隆仓库,在 mcp/ 目录下安装依赖并构建,然后在 Claude Code / Cursor / Codex 等 AI 编程工具的配置文件(.mcp.json)中注册服务路径。Android 设备还需通过 adb forward 将设备端口转发到本地,iOS 模拟器直接访问即可。
第三步:安装视觉校正 Skill
将项目中的 Skill 文件复制到 AI 编程工具的 skills 目录(如 Claude Code 的 ~/.claude/skills/)。之后在对应工具中唤起 Skill,即可启动完整的视觉校正工作流:自动推送设计稿、逐节点对比、输出修复建议的 Checklist,全程 AI 驱动,开发者只需最终确认并应用改动。
小结
Client-Tools 目前支持 Android(API 26+)和 iOS 14+,HarmonyOS 适配正在规划中。整套工具链文档完善,覆盖 SDK 接入指南、MCP 工具参考、HTTP API 规范等 36 篇文档。
如果你在做 AI 辅助 Android / iOS 开发,它能把「写代码 → 看效果 → 调整」的循环从分钟级压缩到秒级,让 AI 真正参与到 UI 开发的完整闭环里。
如果你也在做 AI + 移动端开发,欢迎试试 client-tools,有问题提 Issue。 如果觉得有用,帮忙点个 ⭐,你的支持是我继续维护的动力 🚀
GitHub:github.com/Zzechen/cli…