Skip to content
Rozmator
v0.3.0Real Android · Real iPhone · Emulators · Simulators

Put real phones on autopilot.

Rozmator is an advanced mobile automation tool. It drives real Android phones and iPhones, emulators and simulators from a visual canvas. Automate repetitive app workflows, pull data out of apps, and test every release. Then run the same flows unattended from the CLI.

step types
40+
step types
real devices, no jailbreak or root
iOS + Android
real devices, no jailbreak or root
in parallel
N devices
in parallel
daily-report.flow.jsonready

Launch App

com.shop.app

Tap

text = "Sign in"

Type Text

${user}

Wait For

"Welcome" appears

Read Element

balance → {{balance}}

  • ● Launch App
  • ● Tap
  • ● Long Press
  • ● Swipe
  • ● Scroll To
  • ● Drag & Drop
  • ● Type Text
  • ● Press Key
  • ● Wait For
  • ● Assert
  • ● If Element
  • ● Compare Screenshot
  • ● Measure Performance
  • ● Run Flow
  • ● Set Variable
  • ● Repeat
  • ● For Each
  • ● Shell
  • ● Wait For Log
  • ● App Permission
  • ● Clear App Data
  • ● Install App
  • ● Web: Click
  • ● Web: Type
  • ● Web: Read
  • ● Web: Run JavaScript
  • ● Read Element
  • ● Open Link
  • ● Device Setting
  • ● MongoDB: Insert

What you can automate

Anything a person can do on a phone. Without the person.

Testing is one use. Rozmator is a general mobile automation engine: if you can tap it, type it, read it or swipe it, you can put it in a flow.

  • 01

    Workflow automation

    Hand repetitive in-app work to Rozmator: account setup, onboarding, form filling, posting and daily routines. Loops, conditions and sub-flows handle the variations.

    • Launch App
    • Repeat
    • If Element
    • Run Flow
  • 02

    Data extraction

    Read text from native screens and WebViews into variables, iterate over lists with For Each, and save results with MongoDB: Insert or JSON reports.

    • Read Element
    • Web: Read
    • For Each
    • MongoDB: Insert
  • 03

    QA & release testing

    Assertions, pixel-diff screenshots, performance limits, retries with flaky detection, and JUnit or HTML reports for CI.

    • Assert
    • Compare Screenshot
    • Measure Performance
  • 04

    Device fleet operations

    Install, update and remove apps, change device settings, open deep links and run the same flow on every connected phone at once.

    • Install App
    • Device Setting
    • Open Link
    • Shell
  • 05

    Web & hybrid apps

    Drive Chrome tabs and debuggable WebViews over the Chrome DevTools Protocol in the same flow as native taps.

    • Web: Click
    • Web: Type
    • Web: Run JavaScript
  • 06

    App security & privacy

    Inspect what an Android app requests and is granted, watch AppOps evidence live, and export the findings as JSON.

    • Permissions
    • AppOps
    • Live Monitor

Flow builder

Draw the workflow. Rozmator drives the device.

Build flows by dragging steps, recording your taps, or picking elements in the inspector. Each flow is a plain JSON file you can version, share and reuse as a sub-flow.

Logic, not macros

Loops, conditions, variables and sub-flows

Branch on what is on screen, loop over data, and reuse shared flows. Pause on breakpoints to inspect variables, give unreliable steps their own retries, and route failures down an error branch.

Run Flow

shared/login.flow.json

Set Variable

user = alice

● Breakpoint

paused at step 4

Android helper

Up to 100× faster reads

A 17 KB on-device helper keeps UiAutomation open and supports typing in any language.

helper0.02–0.5 s
adb dump2–5 s

Visual regression

Pixel diffs with baselines

Baselines are stored per screen size, with a tolerance setting and status-bar masking. Diff images appear in the report.

baseline
actual
diff

Performance

Fail the build on regressions

Measure cold start, memory (PSS), CPU and frame jank. Set limits so a slow build fails the test.

Selectors

One selector syntax for both platforms

Text, resource ID, class, or Appium-style XPath. On iOS, the resource ID is the accessibility identifier.

text = "Login"
id   = com.shop:id/submit
xpath= //XCUIElementTypeButton

Platforms

Real devices first. Both platforms.

One selector syntax, one recorder and one inspector for Android and iOS hardware, emulators and simulators. A flow can tap a native button, switch to a WebView and read a value on the same canvas.

Real Android phones

Any phone or tablet with USB debugging, over cable or Wi-Fi. No root needed. A small on-device helper makes reads fast and typing work in any language.

  • USB & Wi-Fi debugging
  • No root
  • Any-language typing

Real iPhones & iPads

Paired devices over USB or Wi-Fi through a WebDriverAgent build signed with your own Apple team. No jailbreak needed. Rozmator detects your team and builds it once.

  • USB & Wi-Fi
  • No jailbreak
  • Signed with your team

Emulators & Simulators

Android emulators and the iOS Simulator run the same flows as hardware, so you can build on your desk and run on a shelf of phones.

  • Android emulators
  • iOS Simulator
  • Same flows as hardware

WebView & web

Wait, click, type, read and run JavaScript in Chrome tabs and debuggable WebViews over the Chrome DevTools Protocol.

  • Hybrid apps
  • Chrome tabs
  • Run JS in page

Suites · CLI · CI

Run unattended on every phone at once

Group flows into suites with retries and stop-on-failure, then run them on many real devices in parallel. The headless rozmator CLI runs the same files from a script, a scheduler or CI.

  • Parallel devices

    Android and iOS hardware side by side, in one device × flow matrix.

  • Variables & data

    Pass --var values in and read results out of each run.

  • Reports

    JUnit XML, HTML with screenshots, and JSON.

  • MongoDB results

    Store each run as a document with --mongo.

zsh · mac-mini-farm

daily-ops.suite.json · 4 real devices

doneretriedfailed
Deviceloginsyncexportreportcleanup
Pixel 8
Galaxy S24
iPhone 15
iPad Air

Live Monitor · 2 s cadence

monitoring
  1. 14:02:11 · baseline

    com.example.chat · 18 permissions

  2. 14:02:31 · appops

    CAMERA access observed

  3. 14:02:33 · process

    foreground · pid 8812

  4. 14:02:45 · perf

    CPU 31% · PSS 214 MB

  5. 14:03:02 · permission

    ACCESS_FINE_LOCATION granted

App security & privacy

See what an Android app asks for and what it does

Pick an installed app to see its permissions, sensitive-permission flags, AppOps evidence and metadata. Live Monitor records a timestamped timeline of changes. Export any snapshot as JSON.

  • Read-only and scoped to the current Android user, on emulators and physical devices
  • Data stays local. No APK upload or external icon service
  • Gaps and delays are flagged, never invented

Under the hood

One Rust core for the app and the CLI

Desktop app

Tauri · React

CLI

Node · JSON lines

automator-core

Rust driver

dispatch(cmd, args)

android.rs
android_helper.rs
ios.rs
web.rs
imaging.rs
files.rs

Automate your first phone in minutes

Plug in an Android phone or iPhone, open Rozmator, and drag in a Launch App step.