phonelisted
Install: claude install-skill ucsandman/claude-skills
# Drive the user's iPhone (SideTap)
The user's real iPhone is connected to this PC over USB and fully controllable.
Replace `/path/to/sidetap` below with the SideTap folder — a git clone, or
`%LOCALAPPDATA%\SideTap\app` when it was installed with the sidetap.io
one-liner. Driving the phone works from any project directory.
## Run
Cheapest path, and the only one a subagent with no MCP tools has: the declick
adapter `iphone`. Build it once with
`declick add "mcp:python /path/to/sidetap/scripts/phone_mcp.py" --name iphone`,
then every helper is a shell verb:
```bash
declick daemon start # once per boot: keeps the server warm, ~0.6s a call instead of 2-4s
declick run iphone ocr --rows screen --fields text,x,y --limit 30
declick run iphone tap-text --text "General"
declick run iphone send-message --contact Mom --text "hi"
declick run iphone act --steps '[{"tool":"tap","args":{"x":100,"y":200}},{"tool":"type_text","args":{"text":"hi"}}]'
declick describe iphone --verb tap-text # one verb's flags, under 500 tokens
```
Verbs are the helper names in kebab-case (`tap_text` is `tap-text`) and every
argument is a `--flag`; inside `act --steps` the tool names stay Python-style
(`type_text`). `ocr` and `find-text` answer `{warning, source, flags, screen}`:
`--rows screen` unwraps the rows and the warning stays in `meta.extra`. Set
`DECLICK_TIMEOUT_MS=120000` for `unlock`, `send-message`, `read-messages` and
`find-on-home-screen`, which can outrun the 30s default. Every s