安装应用并连接手机
将 StupidMirror 放入「应用程序」并打开,连接、解锁手机并信任这台 Mac;Android 需要授权 ADB。
StupidMirror 内置 Codex 插件。Agent 能看到真实 iPhone 或 Android 的实时画面,通过 MCP 操作它;你可以用标注直接指出想说的位置。

使用已安装的应用时,不需要克隆仓库、安装 Python / Node.js 或复制令牌。
将 StupidMirror 放入「应用程序」并打开,连接、解锁手机并信任这台 Mac;Android 需要授权 ADB。
USB 和 Wi-Fi 的 iPhone 画面都需要先通过 USB「设置这台 iPhone」准备签名的屏幕组件,视频不需要摄像头权限。iOS 27 及以上版本的系统触控需要 Xcode、信任配对和开发者模式。
在「设置 → MCP 自动化」点击「连接 Codex」。应用会开启本机 MCP,并通过 Codex 桌面应用的 CLI 安装内置插件。
新建 Codex 聊天,选中 StupidMirror,发送:「在 Codex 里显示我的手机,先不要点击。」面板会通过 show_screen 打开。
选择设备,暂停或继续、刷新、回到主屏幕、复制截图。画面直接显示在聊天里,不会另开镜像窗口。
开启「操作」后,单指按下、长按与拖动会使用原生镜像的同一触控后端。长按需按住鼠标左键,右键不再映射为长按;兼容控制仍然保留。
系统手势服务可用时,原生镜像的滚动、缩放和旋转会逐事件发送,并保留手势相位与滚动惯性。浏览器面板只能从 DOM 滚轮事件发送降级滚动增量;iOS 上程序化指定中心点的缩放与旋转仍通过 WDA 保留目标位置。
选择「手机」让声音留在 iPhone 上,或选择「Mac」在电脑播放。Mac 声音需要摄像头和麦克风权限来访问 USB 音频源,视频本身不需要这两项权限。
冻结当前画面,最多画八个编号框,用 ⌘+回车把标注截图和说明一起发送。画框不会误触手机。
Agent 按「观察 → 操作 → 观察」的循环工作,用本地 OCR、元素 ID 和定点点击完成任务,并在真机上确认结果。
硬件 H.264 画面通过加密的本地 WebRTC 传输,没有云端中转,也不使用 STUN/TURN。Agent 请求的截图和你主动发送的标注会交给 AI 客户端,受该客户端的数据设置约束。不要把 MCP 连接凭据文件发到聊天里。
重新连接插件,并在新的 Codex 聊天中选中它。更新应用后,需要再点一次「连接 Codex」(更新或重新安装插件)。
旧版本不兼容实验性的客户端能力。升级到 StupidMirror 0.3.1 或更新版本后重新连接插件;重启 Codex 解决不了这个问题。
解锁手机,检查数据线和信任提示或 ADB 授权,然后刷新。USB 和 Wi-Fi 的 iPhone 画面都需要通过设置向导准备签名的屏幕组件;视频不需要摄像头权限。
等待控制连接完成。系统触控需检查 Xcode、信任配对和开发者模式;兼容控制需检查签名的运行组件,然后重新开启「操作」。查看和控制是分别就绪的。
宿主需要支持图片消息。如果面板提示输入框不可用,打开对应聊天,让 Codex 再调用一次 show_screen,在新面板中继续。草稿会保留。