iOS Device Cloud · AI-driven QA

Run real iOS devices
from one browser.

STouch is an on-premise mobile device cloud and automated QA platform for iOS. Orchestrate real iPhones from anywhere, script them in Lua, and let AI vision read the screen for you.

Real devices, not simulators Self-hosted · your network, your data Open HTTP + Lua API
Platform

A full-stack toolkit for mobile device clouds

A native on-device daemon, a WebSocket relay, and a browser console — the three layers behind every STouch deployment.

Device cloud

An on-device agent dials out to your VPS over WebSocket. Access every device from any network — mobile data, remote office, cross-region — without exposing phones to the public internet.

Fleet console

A live grid of every connected device. Mirror input across the fleet, bulk-run tests, or pin a single device to debug a flaky step at full frame rate.

Web IDE

A Monaco-based editor for Lua 5.4 with autocomplete, live view, macro recording and template-image management. Write a test, hit Run, see it drive the device.

Vision primitives

Native findColor and findImage run on-device for low-latency pixel search and template matching — the stable fallback when UI trees are not available.

Open API

A full Lua API plus a REST surface: touch, input, screenshot, findImage, run. Driveable from CI, bots, or any language that speaks HTTP.

One-tap install

The engine, HTTP server, vision library, agent and Web IDE ship as a single installable package. Add the repo, tap install, and the device joins the fleet in under a minute.

AI Vision in the loop

Let a vision model read the screen

STouch streams a live frame from any device into a vision model and feeds the parsed state back to your Lua script. Fragile selectors are replaced by self-healing understanding of what is actually on screen.

-- STouch Lua + vision model
local frame = screenshot()
local plan = ai.ask(frame, "Find the Continue button, return its box")

if plan.found then
  tap(plan.cx, plan.cy)
  waitFor("Welcome", 4.0)
else
  log.warn("onboarding changed, flagging a visual regression")
end
  • 1
    Self-healing UI detection
    Describe the target in natural language; the model locates it in the frame even when the layout, strings, or language change.
  • 2
    Visual regression
    Compare two frames of the same flow across builds and surface rendering glitches, missing assets, and off-brand states.
  • 3
    Natural-language scripting
    Describe a flow in English or Vietnamese; the IDE drafts a Lua script, you review and commit — a design-partner for QA.
  • 4
    Model-agnostic
    Plug any multimodal LLM into the vision slot. First-class support for Anthropic Claude on the Messages API.
Use cases

Built for teams that ship on iOS

QA Automation

Real-device regression

Run smoke suites across a matrix of real iPhones every build. Catch issues simulators and XCTest cannot: carrier banners, keyboard quirks, deep-link redirects, OS prompts.

Developer tools

Live preview labs

Expose a shared device pool to the whole engineering team through the browser. Reviewers reproduce bugs on the exact device model without owning one.

Growth & marketing

Repeatable UX flows

Automate repetitive, policy-compliant workflows at scale with full audit logs — content review, in-app verification, cross-locale screenshotting.

Research

Multimodal AI datasets

Capture synchronized screens, events, and timings across many devices — a clean source of real-world mobile data for training and evaluation.

How it works

From install to first test in minutes

1

Install the agent

Add the STouch package repository on each device and install in one tap. The agent runs in the background and joins the fleet automatically.

2

Connect your relay

Point the agent at your own VPS. Devices dial out over WSS — no inbound port, no public IP required on the phone.

3

Open the console

Visit the Fleet page. Every connected device appears as a live tile with battery, model, and latency.

4

Automate

Write a Lua script in the Web IDE, hit Run, and watch it drive the device. Call the HTTP API from CI to run it on every merge.

Under the hood

Engineered for latency

A native daemon on the device, a thin relay in the middle, and a browser console on the other end — nothing between you and the pixels.

Device agent
Native · ARM64e
Scripting
Lua 5.4
Relay
WebSocket · WSS
Editor
Monaco · Web
Vision
Native + MLLM
Transport
HTTP · REST
Company

Built in Hanoi, for mobile teams everywhere

STouch is developed and operated by Pham Cuong Media, a registered technology business based in Hanoi, Vietnam. Our focus is advanced remote infrastructure and developer tools for iOS automation and testing.

We work with a growing community of mobile engineers, QA teams, and growth operators who need to drive real devices reliably — at the pace of modern release cycles.

Try STouch on your own devices

Spin up the fleet console, point your first device at your relay, and start scripting in minutes.