/v1/leases/{lease}/controlPUTxctest builds WebDriverAgent for this iPhone when needed (1-3 min the first time),
starts it and waits until it answers; calling it again restarts the runner. Needs
Xcode signed in to an Apple account, Developer Mode, the developer trusted on the
iPhone and UI Automation on; errors say which step is missing. bluetooth stops the
runner. Stream with Accept: text/event-stream to see the build steps.ghosthand tunnel url --new-token. The unix socket needs no tokenapplication/jsonrequiredbluetooth (default): the Mac is a Bluetooth mouse and
keyboard; screenshots come from USB screen capture. xctest: WebDriverAgent, an XCUITest
runner, taps, types and takes screenshots (they show dialogs that USB capture hides).
Needs Xcode, Developer Mode and UI Automation. No passcode unlock, mute or keyboard shortcuts.^[A-Z0-9]{10}$falsetapped 207,448screenshot was askedscale spacescale spacescreentext was askedscale spacescale spacescale spacescale space0Max: 1title and detail are for people.curl -X PUT "https://ghosthand.dev/macs/studio/v1/leases/42/control" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "control": "bluetooth", "team": "string", "rebuild": false }'
{ "message": "tapped 98,443", "logs": [ "found \"General\" at 98,443" ], "screen": { "width": 414, "height": 896, "lines": [ { "text": "General", "x": 158, "y": 56, "width": 98, "height": 22, "confidence": 1 }, { "text": "About", "x": 66, "y": 145, "width": 50, "height": 20, "confidence": 1 } ] } }