/v1/devicesGETno-device
problem that says what USB lockdown sees (not on USB, not trusted, locked).
On the unix socket of a signed-in Mac, the list also has the iPhones of the account's
other online Macs (mac says where); a Mac that cannot answer adds a warning.ghosthand tunnel url --new-token. The unix socket needs no tokenbluetooth (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.92MF9DG2LRstopped: not started since the daemon started; the next command starts it (about
15 s). building: Xcode builds it (1-3 min the first time). starting: launched,
waiting for its HTTP server. running: input works. failed: see error.device to POST /v1/leases.studio. Absent while this Mac is
signed out or not connected to ghosthand.dev.iPhone8,1model, e.g. iPhone 6s. Absent for product types ghosthand does not know yet15.8.3PhoneNumber), e.g. +39 333 123 4567. Absent without a SIM, or when the carrier did not write the number to it.PasswordProtected). Absent when unknown, e.g. two iPhones with the same name."A4:83:E7:12:34:56"Pattern: ^[0-9A-F]{2}(:[0-9A-F]{2}){5}$connected: input works. disconnected: paired, the Mac is reconnecting; Bluetooth is off
on the iPhone or it is out of range if this lasts. notPaired: pair from iPhone Settings > Bluetooth
(the next input command waits for it).absolute (iOS 17+) goes straight to the spot. relative (iOS 15, which ignores absolute positions) pushes the pointer into the top-left corner, then moves it in measured stepstap or screenshot. Absent before the firsttitle and detail are for people.curl -X GET "https://ghosthand.dev/macs/studio/v1/devices" \ -H "Authorization: Bearer <token>"
{ "devices": [ { "id": "7EF219AD-69B4-423E-B8C4-4F4A6140822F", "name": "Tommy's iPhone", "model": "iPhone11,8", "modelName": "iPhone XR", "iosVersion": "17.6.1", "locked": false, "assistiveTouch": true, "bluetooth": { "address": "A4:83:E7:12:34:56", "state": "connected", "pointer": "absolute" }, "lease": { "label": "ses_123", "reason": "reply to Anna in Messages", "acquiredAt": "2026-10-07T09:00:00.000Z", "lastUsedAt": "2026-10-07T09:04:12.000Z", "lastCommand": "tap", "expiresAt": "2026-10-07T09:14:12.000Z" } } ] }