# Overview

DeviceKit is the on-device runtime layer that MobileCLI and Mobile Next Cloud build on. It runs on iOS devices and simulators (`devicekit-ios`) and Android devices and emulators (`devicekit-android`), exposing a JSON-RPC 2.0 API over WebSocket or HTTP.

Most users don't interact with DeviceKit directly — MobileCLI, Mobilewright, and Mobile MCP all connect to it transparently. DeviceKit is useful if you're building a custom integration at the driver level or contributing to the Mobile Next stack.

## What DeviceKit provides[​](#what-devicekit-provides "Direct link to What DeviceKit provides")

* Tap, swipe, long-press, type text, press hardware buttons (HOME, LOCK, VOLUME)
* App lifecycle: launch, terminate, foreground detection by bundle ID
* Live screen streaming: MJPEG and H264 at configurable FPS and bitrate
* UI inspection: full accessibility tree dumps for element targeting
* Screenshots: PNG or JPEG with configurable quality
* System control: orientation, open URLs, screen size and scale
* Flexible transport: JSON-RPC 2.0 over WebSocket or HTTP, from any language

## iOS[​](#ios "Direct link to iOS")

* Minimum iOS 16.0, Swift 5.9, Xcode 15.0+
* GitHub: <https://github.com/mobile-next/devicekit-ios>

## Android[​](#android "Direct link to Android")

* GitHub: <https://github.com/mobile-next/devicekit-android>

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

DeviceKit is licensed under FSL-1.1-Apache-2.0.
