/v1/setup/permissionsPOSTghosthand setup once, then poll setup status
until ready while the user follows the app. Already allowed or denied permissions do not show another prompt;
denied permissions need the setup app's Open Settings button.ghosthand tunnel url --new-token. The unix socket needs no tokenapplication/jsonrequired"camera" | "bluetooth" | "photos"title and detail are for people.curl -X POST "https://ghosthand.dev/macs/studio/v1/setup/permissions" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '"camera"'
{ "code": "device-leased", "title": "iPhone leased by another client", "status": 409, "detail": "Tommy's iPhone is in use by another lease:\n ses_456 (book a table on OpenTable), acquired 2 min ago, last used 10 s ago (tap)\nDecide first: if that task is still active, give up or tell the user the iPhone is busy." }