// remote support, inside your app

Guide users on their screen, right inside your app.

Live in-app screen streaming to your agent console, pointer guidance, and permissioned semantic actions. The device validates every command; raw touch injection doesn't exist here.

✓ Consent before every pixel✓ On-device redaction✓ Tenant-isolated audit trail
BUILT FOR TEAMS INField serviceKiosksOperationsCustomer care
// how it works

Three steps from “I'm stuck” to solved

01 · CONSENT
Share your screen with support?
Start sharing

User taps “Get live help”

A consent sheet explains exactly what the agent will see. Capture starts only after the user agrees, never before.

02 · GUIDE

Agent sees and points

Live video with a laser pointer. Sensitive areas are masked on-device, so redacted pixels never reach the stream.

03 · ASSIST
→ action.invoke · workorders.refresh← action.ack · succeeded · 84ms

Act, with permission

A second consent unlocks control. Agents invoke only the semantic actions you registered; the device validates and acknowledges each one.

// security model

The device is authoritative. Always.

Remote support tools usually work by injecting touches. ScreenSteer refuses that entire class of risk. There is no code path for it.

CONSENT × 2
Viewing and control are separate grants
The user approves viewing, then approves assistance, and can pause or stop either at any moment. Stop always works.
PRE-PUBLICATION REDACTION
Masked pixels never leave the device
Redaction happens before the frame is published, not blurred in transit or hidden in the console. Never captured.
REGISTERED ACTIONS ONLY
No raw touch injection, by architecture
Agents invoke semantic actions your app registered. Every command is validated for consent, controller identity, expiry, and layout revision, then acknowledged.
FULL AUDIT TRAIL
Every event on an append-only timeline
Consents, control grants, actions, and acknowledgements are recorded per session with round-trip latency, tenant-isolated at the database layer.
// platform

Everything a support session needs

Live session queue
Incoming help requests appear in your console within seconds, with app, environment, and user context.
Pointer & annotation
A 30Hz laser pointer for “click here” moments: guidance that never executes anything.
One controller at a time
A database-enforced controller lease guarantees exactly one agent can assist per session.
Layout-aware targeting
The device publishes its interactive layout; stale clicks after a rotation are rejected, not misfired.
Measured latency
Glass-to-glass and per-action round-trip times recorded on every session's timeline.
Graceful degradation
Misconfigured environment? Clear remediation messages instead of crashes, in the app and the API.
// see it live

Try the two-window demo

Open the device simulator in one window and the agent console in another. Grant consent, point, request control, invoke an action, and watch the acknowledgement come back with measured latency.

WINDOW A · SIMULATOR
“Support is viewing” banner
+ consent sheet
WINDOW B · CONSOLE
Live view, pointer,
actions + timeline
// pricing

Flat plans. Unlimited sessions and apps.

Full pricing →
Business
$49 /mo
1 licensed agent · 1 concurrent connection · unlimited sessions
Premium
$119 /mo
10 licensed agents · 1 concurrent connection · add connections anytime
Corporate
$229 /mo
30 licensed agents · 3 concurrent connections · team roles
Enterprise
Custom
Custom capacity · security review · integration planning
// for developers

Register actions. Ship the SDK. Done.

A typed wire protocol with a device-side validator, reliable and lossy data channels, and layout deltas. Choose Web, Windows, Android, Flutter, iOS, or React Native, with maturity and requirements stated in each guide.

AppDelegate.swift
ScreenSteer.configure(key: "pk_live_…")

ScreenSteer.register("workorders.refresh") {
  // your code: the only thing an agent can run
  await store.refreshWorkOrders()
}

ScreenSteer.redact(accountPanel)