Send Text/Key Input
idb-ui-inputSends text and keyboard commands to focused iOS fields to automate form filling, login flows, searches, and multi-field navigation while redacting sensitive input.
Instructions
idb-ui-input
Hardware key aliases: home, lock/power, side, siri, apple-pay, volume-up/down (volume requires idb 1.6.3+).
⌨️ Input text and keyboard commands - automated text entry and special key presses for form automation
What it does
Sends text input and keyboard commands to focused elements on iOS targets. Types text strings into active text fields, presses special keys (home, return, delete, arrows), and executes key sequences for complex input workflows. Automatically redacts sensitive data (passwords) in responses and provides semantic field context tracking for test documentation.
Why you'd use it
Automate form filling without manual keyboard interaction - login flows, search, data entry
Execute keyboard shortcuts and navigation (tab, return, arrows) for multi-field workflows
Safely handle sensitive data with automatic redaction in tool responses and logs
Track input operations with semantic metadata (actionName, fieldContext, expectedOutcome)
Additional input operations
operation: clear selects all (Command+A) and deletes.
modifiers: shift, control, option, command apply to key/key-sequence events.
key and keySequence accept letters, digits and named keys; sequences send individual HID events.
Parameters
Required
operation (string): "text" | "key" | "key-sequence"
Operation-specific parameters
text (string, required for text operation): String to type into focused field
key (string, required for key operation): Special key name (home, return, delete, tab, arrows, etc.)
keySequence (string[], required for key-sequence operation): Array of key names to press in order
Optional
udid (string): Target identifier - auto-detects if omitted
actionName (string): Semantic action name (e.g., "Enter Email")
fieldContext (string): Field name for context (e.g., "Email TextField")
expectedOutcome (string): Expected result (e.g., "Email field populated")
isSensitive (boolean): Mark as sensitive to redact from output
Returns
Input execution status with operation details (redacted if sensitive), duration, input context metadata for test tracking, error details if failed, and troubleshooting guidance specific to text vs. key operations.
Examples
Type email into focused field
const result = await idbUiInputTool({
operation: 'text',
text: 'user@example.com',
actionName: 'Enter Email',
fieldContext: 'Email TextField'
});Press return to submit
await idbUiInputTool({ operation: 'key', key: 'return' });Related Tools
idb-ui-tap: Tap to focus text fields before typing
idb-ui-describe: Find text field coordinates
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"operation": "<operation>"
},
"name": "idb-ui-input"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| text | No | ||
| udid | No | ||
| modifiers | No | ||
| operation | Yes | ||
| actionName | No | ||
| isSensitive | No | ||
| keySequence | No | ||
| fieldContext | No | ||
| expectedOutcome | No |