# mobile-dev-agent > Run the local Mobile Dev Agent CLI (Maestro + simulators/emulators) to build, boot, install, and test iOS/Android apps on a Mac. Use when asked to automate or validate mobile app flows like login, profile, checkout, search, or screenshots on iOS/Android simulators/emulators. - Author: Justin Williams - Repository: jblwilliams/mobile-dev-agent - Version: 20260129193927 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/jblwilliams/mobile-dev-agent - Web: https://mule.run/skillshub/@@jblwilliams/mobile-dev-agent~mobile-dev-agent:20260129193927 --- --- name: mobile-dev-agent description: Run the local Mobile Dev Agent CLI (Maestro + simulators/emulators) to build, boot, install, and test iOS/Android apps on a Mac. Use when asked to automate or validate mobile app flows like login, profile, checkout, search, or screenshots on iOS/Android simulators/emulators. --- # Mobile Dev Agent ## Overview Use the local `mobile-dev-agent` CLI from this repo to drive Maestro flows against iOS simulators and Android emulators. Prefer machine-readable output (`--json`) for agent workflows and keep commands scoped to the local filesystem. ## Quick Start (local) - Build once before running commands: - `npm install` - `npm run build` - Run from repo root: - `node dist/src/bin/mobile-dev-agent.js ...` ## Workflow 1. Gather inputs (ask if missing): - Platform: `ios` or `android` - Device name (Simulator/Emulator) - App info: `.app`/`.apk` path OR bundle id OR Xcode project + scheme - Flow(s): path to Maestro YAML or the concrete steps to encode - Output: report format and path if needed 2. Validate environment: `doctor` 3. Discover devices: `devices list --platform ` 4. Boot device (if required): `device boot --name ""` 5. Build/install app (as needed): - iOS build: `build-ios --project --scheme ` - Install: `app install --app --name "" --boot` 6. Run flows: - File-based: `test --flow --name "" --boot` - Ad-hoc: `flow run ...` with YAML on stdin 7. Capture artifacts (optional): `device screenshot --name "" --output ` ## Prompting Guidance - Be specific about device, app, and flow. Ask for missing details before running. - When converting a natural-language request to a flow, confirm: - The exact screen labels or accessibility text to tap/assert - The expected outcome after each step - Any required credentials or test data - Use `--json` for structured output when available. Example clarifying question: “Which platform and device should I use, and do you have an app path or bundle id? If you want a Maestro flow generated, what exact UI text should be tapped or asserted?” ## References - Use `references/cli-cheatsheet.md` when you need exact command flags or a quick command template. - See repo `README.md` for broader context and examples.