# Overview

MobileCLI is a single Go binary that serves as a universal tool for managing iOS and Android devices. It replaces `simctl`, `adb`, and `go-ios` with a single unified interface.

| Platform            | Supported |
| ------------------- | --------- |
| iOS Real Device     | ✅        |
| iOS Simulator       | ✅        |
| Android Real Device | ✅        |
| Android Emulator    | ✅        |

## Key features[​](#key-features "Direct link to Key features")

* **Unified CLI** — one tool for both Android and iOS
* **Device management** — list, boot, shutdown, reboot devices
* **App management** — install, launch, terminate, uninstall apps
* **Screen capture** — screenshots (PNG/JPEG) and MJPEG streaming
* **Input automation** — tap, swipe, long press, type text, press buttons
* **UI inspection** — dump the accessibility tree of visible elements
* **Server mode** — expose all functionality via JSON-RPC over HTTP or WebSocket

## Interfaces[​](#interfaces "Direct link to Interfaces")

MobileCLI supports three ways to interact:

| Interface                   | Use case                             |
| --------------------------- | ------------------------------------ |
| **CLI**                     | Terminal usage, shell scripts, CI/CD |
| **JSON-RPC over WebSocket** | Real-time integrations, streaming    |
| **JSON-RPC over HTTP POST** | Request/response workflows           |

## License[​](#license "Direct link to License")

MobileCLI is licensed under the [Apache License 2.0](https://github.com/mobile-next/mobilecli/blob/main/LICENSE).
