AgentKit includes OS-level device management so AI agents can autonomously boot simulators, install apps, grant permissions, and launch — without any manual setup.
💡 Note: Device commands are optional. If the app is already running and connected to the relay, the agent skips device setup and goes straight to UI commands.
npx react-native-agentkit device list [--platform=ios|android]
npx react-native-agentkit device boot [--name="iPhone 16"]
npx react-native-agentkit device shutdown <udid>
npx react-native-agentkit device install <path> [--device=<udid>] [--expo]
npx react-native-agentkit device uninstall <bundle-id> [--device=<udid>]
npx react-native-agentkit device launch <bundle-id> [--device=<udid>] [--expo]
npx react-native-agentkit device terminate <bundle-id> [--device=<udid>]
npx react-native-agentkit device erase <udid>
npx react-native-agentkit device create-emulator <name> [--image=<system-image>]
npx react-native-agentkit device grant-permissions --bundleId=<id> --permissions=camera,photos,...
npx react-native-agentkit device reset-permissions --bundleId=<id>
npx react-native-agentkit device clear-data <package-id> [--device=<serial>]
npx react-native-agentkit device statusAll commands output JSON for pipe-mode compatibility.
Grant OS-level permissions before app launch to prevent native permission dialogs during automation:
# iOS (via xcrun simctl privacy)
npx react-native-agentkit device grant-permissions \
--bundleId=com.myapp \
--permissions=camera,photos,location,notifications
# Android (via adb shell pm grant)
npx react-native-agentkit device grant-permissions \
--packageId=com.myapp \
--permissions=CAMERA,ACCESS_FINE_LOCATIONOn Android, device install grants all manifest-declared permissions by default.
calendar, contacts, location, location-always, camera, microphone, photos, reminders, siri, notifications, speech-recognition, motion, media-library, or all
Use short names (e.g., CAMERA, ACCESS_FINE_LOCATION) or full names (e.g., android.permission.CAMERA). Short names are auto-expanded.
For physical device deployment, AgentKit uses ios-deploy (auto-installed via Homebrew if missing):
npx react-native-agentkit device list --platform=ios # Shows simulators + physical devices
npx react-native-agentkit device install ./MyApp.app --device=<udid>
npx react-native-agentkit device launch com.myapp --device=<udid>For Expo-managed projects, use the --expo flag:
npx react-native-agentkit device install --expo --platform=ios
npx react-native-agentkit device launch --expo --platform=android