{"id":53598,"plugin_id":"plugins_6abcb949170081919055247eaf18cfc0","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:54:35.164Z","digest":"a9d33c883db033e20915ac4c8a7ade2725d793f35beb5a7548186d421ae021f8","against":null,"payload":{"description":"Mirror and lightly control an Android target or iOS Simulator in the visible Codex browser through the authenticated Autonom Mobile Canvas.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":219},{"relative_path":"scripts/android-emulator-browser.mjs","size_in_bytes":32795},{"relative_path":"scripts/browser-lib.mjs","size_in_bytes":6428}],"name":"android-emulator-browser","skill_md_contents":"---\nname: android-emulator-browser\ndescription: Mirror and lightly control an Android target or iOS Simulator in the visible Codex browser through the authenticated Autonom Mobile Canvas.\n---\n\n# Mobile Canvas browser\n\nStream one explicit target into a localhost browser for visual proof and light\ncontrol. Install and launch the app first. Canvas actions use the same Autonom\naction pipeline and journal as CLI input; the browser is not a second runner.\n\n## Launch\n\n```bash\nautonom canvas serve --platform android --serial <adb-serial> --transport auto\n\nautonom canvas serve --platform ios --target <simulator-udid> --transport screencap\n```\n\nOpen the printed fragment-token URL in the agent browser panel. The page\nexchanges it for an HttpOnly cookie and removes the fragment. Leave the process\nrunning and confirm frames advance before calling the setup successful.\n\n## Transport modes\n\n| Mode | Behavior |\n| --- | --- |\n| `auto` | Prefer `screenrecord` + ffmpeg H.264→MJPEG; fall back if unavailable |\n| `screenrecord` | Require accelerated path; fail loudly when prerequisites missing |\n| `screencap` | Multipart JPEG screenshots; no ffmpeg |\n\nAndroid also exposes authenticated Annex-B H.264 at `/stream.h264`. iOS uses\npublic `simctl` screenshots with idb input and always chooses the screenshot\nfallback; pixel-to-point mapping is handled by the Canvas status channel.\n\nThe UI shows active transport and frame health. Use Reconnect after rotation or\nwhen device-side recording stops.\n\n## Input surface\n\nTap, drag, wheel-as-swipe, Back/Home/Enter/Delete/D-pad/wake, and conservative\nASCII typing. Every action records `human`, `agent`, `replay`, or `system`\norigin. The control endpoint supports pause, resume, takeover, and release.\nStructural selection still belongs to Autonom `ui` commands.\n\n## Security\n\nBinds to `127.0.0.1` with a random token by default. Do not expose publicly.\nAnyone with a forwarded port and the bootstrap token can drive the device.\n`--no-auth` is for isolated local debugging only.\n\n## Performance boundary\n\nGood for iteration; not a measurement tool. Use scrcpy for high-fidelity manual\nreview and Macrobenchmark / Perfetto / Flutter profile mode for claims.\n\n## Evidence to record\n\nSide-panel screenshot, platform and target id, transport, package/activity,\nvariant, control owner, and the exact flow replayed.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}