ワンクリックで
simulators-emulators
// How to list, pick, and boot Android emulators and iOS simulators for local app runs.
// How to list, pick, and boot Android emulators and iOS simulators for local app runs.
Audit repo dependencies by default and only apply library upgrades when explicitly requested.
Use Gradle commands to build and run the app by platform.
How to run, write, and debug local UI tests for Android, iOS, and browser builds.
Guidance on where to place different types of code in this Kotlin Multiplatform project.
Guidelines for where to place different types of code in a Kotlin Multiplatform project.
How to create plans and follow roadmaps
| name | simulators-emulators |
| description | How to list, pick, and boot Android emulators and iOS simulators for local app runs. |
IMPORTANT: Preferred iOS Simulator Name:
iPhone 16 w Watch(local),iPhone 16CI Preferred Android Emulator Name:Pixel_9(local),pixel_6CI
Use this skill to discover local Android emulators and iOS simulators, pick a target interactively, and boot it before running the app.
It also supports clearing app data for a specific Android package or resetting an iOS Simulator app by uninstalling its bundle from a selected simulator.
.agents/skills/simulators-emulators/scripts/simulatorTools.mjs.agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs.agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjsemulator -list-avdsadb devices -lxcrun simctl list --jsonnode .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs --listnode .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjsnode .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs --bootnode .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs --avd Pixel_8_API_34 --bootnode .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs --boot --clear-app-data tech.arnav.twofac.appnode .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs --avd Pixel_8_API_34 --clear-app-data tech.arnav.twofac.appUse shell output to set ANDROID_SERIAL:
eval "$(node .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs --boot --shell)"
ANDROID_SERIAL="$ANDROID_SERIAL" ./gradlew :androidApp:installDebug
adb -s "$ANDROID_SERIAL" shell am start -n tech.arnav.twofac.app/.MainActivity
adb -s "$ANDROID_SERIAL" shell dumpsys activity activities | rg 'Resumed: ActivityRecord|mCurrentFocus|mFocusedApp'
When multiple emulators/devices are connected, always pass ANDROID_SERIAL (or adb -s <serial>) to avoid ambiguous target errors.
The Android script uses adb shell pm clear <package> against the selected emulator. This keeps the app installed but removes its local state:
node .agents/skills/simulators-emulators/scripts/android-emulator-picker.mjs \
--avd Pixel_8_API_34 \
--clear-app-data tech.arnav.twofac.app
Use --boot as well if you want the script to explicitly boot the emulator first; the script will also boot automatically when --clear-app-data targets a stopped emulator.
node .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjs --listnode .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjsnode .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjs --bootnode .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjs --udid <UDID> --bootnode .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjs --clear-app-data tech.arnav.twofac.appnode .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjs --udid <UDID> --clear-app-data tech.arnav.twofac.appUse shell output to set IOS_SIMULATOR_UDID:
eval "$(node .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjs --boot --shell)"
xcodebuild \
-workspace iosApp/iosApp.xcworkspace \
-scheme iosApp \
-destination "platform=iOS Simulator,id=$IOS_SIMULATOR_UDID"
UDID is preferred over simulator name because names are often duplicated across runtimes.
For iOS Simulator, the script clears app data by uninstalling the selected app bundle with xcrun simctl uninstall <UDID> <bundleId>. This removes the app sandbox, so reinstall the app afterward before launching it again:
node .agents/skills/simulators-emulators/scripts/ios-simulator-picker.mjs \
--udid "$IOS_SIMULATOR_UDID" \
--clear-app-data tech.arnav.twofac.app
sys.boot_completed before returning.adb shell pm clear <package> on the selected emulator.xcrun simctl bootstatus <UDID> -b to wait for full readiness.xcrun simctl uninstall <UDID> <bundleId> to reset the app sandbox.avdmanager list avd and running serials from adb devices -l.xcrun simctl list --json and filters to available iOS runtimes/devices.