원클릭으로
simulators-emulators
How to list, pick, and boot Android emulators and iOS simulators for local app runs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
How to list, pick, and boot Android emulators and iOS simulators for local app runs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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.