AgentFoundry ships a built-in mobile test-automation suite: build, record, run, and let an agent write and fix device UI tests for iOS and Android — without leaving the IDE. No device farm. No per-parallel bill. This page is exactly what you get, how it works, and what you need on your laptop.
The running app, its tests, and the coding agent that fixes both — one surface.
The iOS Simulator / Android emulator streams inside AgentFoundry, next to your flows. Build & launch any branch or tag.
Every flow in a tree with ✓/✗ badges, last-run time, Run All, and a failing-only filter.
Describe a test; the agent reads the live screen, writes the flow, runs it, shows you green.
Tap the live mirror; actions become steps, snapped to accessibility labels so flows survive layout changes.
Failing step + screenshot-at-failure vs last-known-good + the a11y tree. One click: Ask agent to fix.
The agent repairs drifted selectors as a diff, and generates tests for the screens a pull request changed.
After a suite run, failures cluster into real-regression / flaky / drift, each with a likely cause.
Export a GitHub Actions workflow that runs the same flows on every PR — no translation.
MIT engine (YUKTI); flows are portable JSON in your repo. AI runs on AgentFoundry or your own key (BYOK).
We drive the real first-party simulators you already have. We do not use mobile-mcp, Maestro, Appium, or a third-party device runtime.
Apple's Xcode Simulator, controlled by xcrun simctl (boot / install / launch / screenshot) and driven by idb (Facebook's iOS Debug Bridge) for taps, typing, swipes, and the accessibility tree (idb ui describe-all).
The Android Emulator (an AVD) from the Android SDK, driven by adb + uiautomator, built with Gradle (./gradlew). The direct counterpart to Xcode on the Apple side.
On top sits YUKTI — an open-source (MIT) engine: a dependency-light CLI + a stdlib-Python Studio server that AgentFoundry embeds. It shells out to simctl/idb/adb; it never reimplements device control. Your tests are deterministic, label-based JSON flows that live in your repo. The AI (author / heal / triage) runs on AgentFoundry's SMART-Code or your own API key.
The in-app Doctor checks all of this and prints the exact fix command for anything missing. Here's the full list up front.
| Your laptop | Test iOS apps | Test Android apps |
|---|---|---|
| macOS (Apple Silicon or Intel) | ✅ Xcode Simulator | ✅ Android emulator |
| Windows | ❌ Not possible — Apple requires a Mac for iOS builds/simulators | ◐ Android SDK + emulator via WSL (validation ongoing) |
| Linux | ❌ Not possible (Apple restriction) | ◐ Android emulator (validation ongoing) |
The desktop app, v0.1.75+ (Mac / Windows / Linux). Auto-updates.
node@22 — React Native / Metro pin to 22; newer Node breaks builds.
git, and gh for “generate tests from a PR”.
System python3 is fine — the Studio server is stdlib-only (no pip installs).
Sign in to AgentFoundry (SMART-Code credits) or bring your own key (Claude / OpenAI / Gemini) — BYOK is free.
A dedicated test login for your app (never a personal / real account, especially against prod).
idb-companion (Homebrew) + fb-idb (pip)adb), emulator, build-toolsPixel_7_API_34)ANDROID_HOME setsimctl + idb); Android runs on the Android emulator (via adb/Gradle). Our open-source engine YUKTI orchestrates them and exposes them to the agent. We deliberately don't do blind “agent-drives-the-device over MCP” — the agent authors a reviewable, deterministic flow, then the engine executes it. The device mirror you see is a simctl/emulator screenshot streamed into the IDE.simctl won't handle (ad-hoc signing so Firebase/keychain works, arm64-sim slices, reliable char-by-char typing).simctl; Android Studio gives you the Android Emulator (AVDs) + the SDK tools: adb (platform-tools), the emulator, build-tools, and Gradle. YUKTI drives the emulator through adb, exactly as it drives the iOS Simulator through simctl/idb..yukti/flows/. The engine is MIT open source. Nothing about your tests is locked into our platform — switch tools any day.Free editor · free local test runs · pay only for the AI (or BYOK, free).