/v1/leases/{lease}/scrollPOSTat (default: screen center), then sends wheel ticks there.
Scrolls lists that a drag cannot scroll (a drag on a UITableView row is a tap).ghosthand tunnel url --new-token. The unix socket needs no token1Min: > 0Max: 1"it-IT"Min length: 2wait-text-timeout: the input was
sent and is never repeated."About"Min length: 1waitText, counted from the end of the input. Needs waitText.5000Min: 1Max: 60000waitText), wait until the screen is still, then return its image
in screenshot of the result, in the scale space.waitText), wait until the screen is still, then return its OCR
text in screen of the result. OCR runs on the native frame, boxes are in the scale
space. With screenshot, both come from the same frame.falseapplication/jsonrequireddown shows content further down the page (like swiping a finger up); right shows content further rightghosthand scroll --help for the distance of one tick.5Min: 1Max: 1000scale space (screen points by default)207Min: 0scale space (screen points by default)448Min: 0tapped 207,448screenshot was askedscale spacescale spacescreentext was askedscale spacescale spacescale spacescale space0Max: 1title and detail are for people.curl -X POST "https://ghosthand.dev/macs/studio/v1/leases/42/scroll" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "direction": "up", "ticks": 5, "at": { "x": 207, "y": 448 } }'
{ "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 } ] } }