Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

type

typeTOOL
Type text on the Bluetooth keyboard (US-ASCII)
Keys go to the field that has focus. Before typing, read a screenshot and check the cursor is in the right field; if not, tap that field first.
  • Key holds and gaps vary, averaging about 43 ms per character, with short pauses at spaces, tabs and newlines. No typos or extra characters are added.
  • --stdin accepts no positional text. One final LF or CRLF is removed by default; spaces, tabs and other LF newlines are preserved. LF sends Enter; tab moves focus. --keep-final-newline preserves LF, and --enter sends an additional Enter.
  • All input is validated before connecting or sending any key. Unsupported control characters, invalid UTF-8, accents and emoji fail without echoing input.
  • Messages: Enter in the To: field adds the recipient but keeps focus there. Tap the message field, check the screenshot, then type "..." --enter (Enter sends). Only US-ASCII: no accents or emoji. iOS autocorrect may change a word; check with --screenshot before --enter.
  • XCTest mode: types any text (accents, emoji) into the field that has focus; tap the field first so the keyboard shows. WebDriverAgent does not check focus: with no field focused type still says "typed" and nothing happens. Use --screenshot or --wait-text.
  • Password fields: while a secure field has focus, screenshots show the old screen for 2-30 s. Type once, wait, or press key tab before you read the screen. Never type again because the screen looks unchanged: that once doubled a password. Never tap "Show password". To clear a secure field, tap it and press key backspace once per character; cmd+a did not clear it reliably.
  • SIM PIN sheet (Settings > Cellular > SIM PIN) ignores the Bluetooth keyboard: tap the on-screen keypad digits, one dot per tap, then Done ONCE. If the PIN is rejected or the result is unclear, stop and ask the user: 3 wrong PINs lock the SIM (PUK).
CLI flags in this text are arguments: --enter = enter, --screenshot = screenshot, --screentext = screentext, --language = language, --wait-text = waitText, --timeout-ms = timeoutMs
Examples (arguments): {"enter":true,"lease":"studio:42","screenshot":true,"text":"ciao"}
Parameters
enter?boolean
Press Enter after the text (sends a message in Messages)
language?string
OCR language, e.g. it-IT; en-US is always included
lease *string
Lease id exactly as acquire printed it, e.g. "studio:42"
mac?string
Mac slug from list, e.g. "studio". Needed when several Macs are online
scale?number
Image and coordinate size as a fraction of native pixels (default: screen points; 1 = native)
screenshot?boolean
Return the screen image after the input, once the screen is still
screentext?boolean
Return the OCR text of the screen after the input (x,y wxh text lines)
text *string
US-ASCII text in Bluetooth mode, any text in XCTest mode; \n sends Enter
timeoutMs?number
With waitText: deadline in ms, 1...60000 (default: 5000)
waitText?string
After the input, poll OCR until a line contains this (case-insensitive); never repeat input
Request example
{ "method": "tools/call", "params": { "name": "type", "arguments": { "enter": true, "language": "string", "lease": "string", "mac": "string", "scale": 0, "screenshot": true, "screentext": true, "text": "string", "timeoutMs": 0, "waitText": "string" } } }