From 5a5ebcb7186d6535125868e555fc41c787e82ac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Fri, 13 Feb 2026 21:10:56 +0100 Subject: [PATCH 01/13] Add iOS device runner support and document platform matrix --- README.md | 26 ++- skills/agent-device/SKILL.md | 17 +- skills/agent-device/references/permissions.md | 14 ++ .../references/session-management.md | 1 + .../agent-device/references/snapshot-refs.md | 1 + .../references/video-recording.md | 2 + src/core/__tests__/capabilities.test.ts | 18 +- src/core/capabilities.ts | 39 ++-- src/core/dispatch.ts | 8 +- src/daemon.ts | 2 +- src/daemon/app-state.ts | 22 +++ src/daemon/handlers/__tests__/session.test.ts | 13 +- .../__tests__/snapshot-handler.test.ts | 92 ++++++++++ src/daemon/handlers/session.ts | 2 +- src/daemon/handlers/snapshot.ts | 22 ++- .../ios/__tests__/runner-client.test.ts | 63 +++++++ src/platforms/ios/devices.ts | 35 +++- src/platforms/ios/runner-client.ts | 171 +++++++++++++++--- test/integration/ios.test.ts | 36 ++++ website/docs/docs/commands.md | 20 ++ website/docs/docs/installation.md | 13 +- website/docs/docs/introduction.md | 14 +- website/docs/docs/quick-start.md | 6 +- website/docs/docs/sessions.md | 1 + website/docs/docs/snapshots.md | 6 +- website/docs/index.md | 4 +- 26 files changed, 552 insertions(+), 96 deletions(-) create mode 100644 src/daemon/handlers/__tests__/snapshot-handler.test.ts create mode 100644 src/platforms/ios/__tests__/runner-client.test.ts diff --git a/README.md b/README.md index 4e34732e1..2d9e79935 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ CLI to control iOS and Android devices for AI agents influenced by Vercel’s [a The project is in early development and considered experimental. Pull requests are welcome! ## Features -- Platforms: iOS (simulator + limited device support) and Android (emulator + device). -- Core commands: `open`, `back`, `home`, `app-switcher`, `press`, `long-press`, `swipe`, `focus`, `type`, `fill`, `scroll`, `scrollintoview`, `pinch`, `wait`, `alert`, `screenshot`, `close`, `reinstall`. +- Platforms: iOS (simulator + physical device core automation) and Android (emulator + device). +- Core commands: `open`, `back`, `home`, `app-switcher`, `press`, `long-press`, `focus`, `type`, `fill`, `scroll`, `scrollintoview`, `wait`, `alert`, `screenshot`, `close`, `reinstall`. - Inspection commands: `snapshot` (accessibility tree). - Device tooling: `adb` (Android), `simctl`/`devicectl` (iOS via Xcode). - Minimal dependencies; TypeScript executed directly on Node 22+ (no build step). @@ -99,9 +99,10 @@ agent-device swipe 540 1500 540 500 120 --count 8 --pause-ms 30 --pattern ping-p | `ax` | Fast | Medium | Accessibility permission for the terminal app, not recommended | Notes: -- Default backend is `xctest` on iOS. +- Default backend is `xctest` on iOS simulators and iOS devices. - Scope snapshots with `-s "