Observability
See every step the agent takes.
An agent on a real phone should never be a black box. Stream the screen live, pull a screenshot or the full UI tree on demand, and replay every step it took. All from the API.
live view WebRTC
capture screenshots + a11y tree
trace every step
notify webhooks
Capabilities
Four ways to watch it work.
| Capability | What it does | In the API |
|---|---|---|
| Live stream | Watch the screen as the agent works, over WebRTC at low latency. Share a read-only view with a stream token so anyone can follow along. | WebRTC · share link |
| Snapshot the state | Pull a PNG screenshot or the full accessibility tree of on-screen elements, on demand. Structured UI state, not just pixels. | screenshot · a11y tree |
| Trace every step | Every event a run emits, streamed as it happens: queued, each screenshot, every tool execution. A complete trajectory of the task. | SSE run events |
| History and alerts | List every task a device has run for the record, and fire a webhook the moment a task completes so your stack reacts on its own. | task history · webhooks |
The trajectory
Every tap, in order.
- Task queued
- Opened the app
- Tapped “Log in”
- Typed the OTP
- Swiped to checkout
- Confirmed the order
trace.ts
const stream = await client.tasks.attach(task.id)
for await (const event of stream) {
console.log(event.type) // QueuedEvent, ScreenshotEvent,
// ToolExecutionEvent, ...
} FAQ
Observability, common questions.
Can I watch a run live?+
Yes. Open a WebRTC stream to any device and watch the screen at low latency while the agent works. It is the real phone, in real time.
Can I share what the agent is doing?+
Yes. Mint a stream token and hand someone a share link. They get a read-only live view of the device, no account needed.
Do I only get screenshots, or structured state too?+
Both. Take a PNG screenshot on demand, or pull the full accessibility tree of every on-screen element. Structured state your code can read, not just pixels.
How do I see every step a task took?+
Attach to the task and stream its trajectory over SSE. Every event lands as it happens: queued, each screenshot, every tool execution. You can also list the full task history per device after the fact.
How do I get notified when a task finishes?+
Register a webhook. mobilerun posts to your endpoint the moment a task completes, so nothing has to poll.
See every step. Ship with confidence.
Live view, screenshots, the full UI tree, step traces and webhooks. Real phones, fully in view, all from the API.