LensLink

Remote start

A phone clamped behind a monitor shouldn't have to come down for someone to tap Start. While the app is open and idle, OBS can start the camera itself.

Why the app has to be open#

iOS runs the camera and LensLink's listener only while the app is on screen. Everything below exists because of that: the app announces standby when it's open and idle, and OBS takes it from there.

It's also why the Siri and Shortcuts paths open the app first, and why the phone holds off auto-lock while standby is armed — locking would suspend the listener. The Setup screen dims after a minute, in amber rather than green: armed, not live.

Remote start is on by default. Turn it off with Remote start from OBS in the app's Options.

The four ways to start#

Automatically, when the source connects#

Start the phone's camera automatically when it's ready is on by default: open the app and video appears, with no further input. It won't ping-pong with you either — OBS auto-starts only when the app has just become reachable, not after you pressed Stop.

From OBS#

Start camera on the phone and Stop camera on the phone in the source properties, whenever the app is connected.

From the browser panel#

The panel at http://localhost:9980 shows Start camera while the app is idle and a red Stop camera while it's live, each with an Auto-start toggle beside it.

From Siri, Shortcuts or a URL#

Siri phrases and sideloading don't mix. Re-signing rewrites the bundle ID, which orphans the compiled phrase data — Siri refuses even though the same action works from Shortcuts. Use TestFlight, or lenslink://start. Also check the app has launched at least once and that "Use with Siri" is on in Settings → Siri & Search → LensLink.

Scene switching starts and stops it too#

With Disconnect when this source isn't shown anywhere, hiding the source stops the phone's camera and showing it starts it again. Combined with auto-start, the phone only encodes while it's on screen somewhere.

Scripting it#

The panel's endpoint is a plain HTTP POST:

curl -X POST http://localhost:9980/api/control \
     -d '{"cmd":"start_stream"}'

curl -X POST http://localhost:9980/api/control \
     -d '{"cmd":"stop_stream"}'

With more than one phone, add the source id from /api/sources as ?src=. Full API: browser panel.

What to expect on the phone#

App open, OBS not connectedGrey dot, "Not connected".
App open, OBS connected, camera idleAmber dot, "OBS connected — ready". Standby: remote start armed.
Standby, untouched for a minuteThe screen dims with an amber wake icon. Any tap wakes it; the listener never stops.
StartedLive screen, green dot, "Live".

Standby dimming happens only when Idle view is Dim screen, and never while you're touching the screen or have a sheet open.