A universal command-line tool for managing iOS and Android devices, simulators, emulators and apps from Mobile Next.
- Device Management: List and manage connected iOS/Android devices and simulators
- Screenshot Capture: Take screenshots from any connected device with format options (PNG/JPEG)
- Device Control: Reboot devices, tap screen coordinates, press hardware buttons
- Cross-Platform Support: Works with iOS physical devices, iOS simulators, Android devices, and Android emulators
- Multiple Output Formats: Save screenshots as PNG or JPEG with quality control
- App management: Launch app, terminate apps. Install and uninstall coming next βοΈ
- go-ios (for iOS device management)
- Android SDK with
adb
in PATH (for Android device support) - Xcode Command Line Tools (for iOS simulator support on macOS)
git clone https://github.com/mobile-next/mobilecli.git
cd mobilecli
make build
# Install go-ios for iOS device management
brew install go-ios
# or
npm install -g go-ios
# Install Android SDK and ensure adb is in PATH
# Download from: https://developer.android.com/studio/command-line/adb
# or
brew install --cask android-platform-tools
# List all connected devices and simulators to your local or remote server
mobilecli devices
Example output:
[
{
"id": "12345678-1234567890ABCDEF",
"name": "iPhone 15",
"platform": "ios",
"type": "real"
},
{
"id": "emulator-5554",
"name": "Pixel_7_API_34",
"platform": "android",
"type": "emulator"
}
]
# Take a PNG screenshot (default)
mobilecli screenshot --device <device-id>
# Take a JPEG screenshot with custom quality
mobilecli screenshot --device <device-id> --format jpeg --quality 80
# Save to specific path
mobilecli screenshot --device <device-id> --output screenshot.png
# Output to stdout
mobilecli screenshot --device <device-id> --output -
# Reboot a device
mobilecli reboot --device <device-id>
# Tap at coordinates (x,y)
mobilecli tap --device <device-id> 100,200
# Press hardware buttons
mobilecli press-button --device <device-id> HOME
mobilecli press-button --device <device-id> VOLUME_UP
mobilecli press-button --device <device-id> POWER
HOME
- Home buttonBACK
- Back button (Android only)POWER
- Power buttonVOLUME_UP
- Volume upVOLUME_DOWN
- Volume down
- Currently requires that you install and run WebDriverAgent manually
- Currently requires that you install and run WebDriverAgent manually
make build
make test
make lint
mobilecli/
βββ main.go # CLI entry point and commands
βββ devices/ # Device management interfaces
β βββ common.go # ControllableDevice interface
β βββ android.go # Android device implementation
β βββ ios.go # iOS real device implementation
β βββ simulator.go # iOS simulator implementation
β βββ wda.go # WebDriverAgent client
βββ utils/ # Utility functions
βββ image.go # Image conversion utilities
βββ file.go # File operations
βββ zipfile.go # Archive operations
- Webserver with json-rpc interface
- Automatically install WebDriverAgent
- Automatically create tunnel for iOS17+
- App installation/management commands (install, removed, update)
- Video streaming capabilities with WebRTC
- Remote device management server
- CI/CD pipeline improvements
- Package distribution (Homebrew, etc.)
For issues and feature requests, please use the GitHub Issues page.