Skip to main content

app_fill

This tool on every surface: CLI · MCP · Python · JavaScript · Go · Java · .NET

Clear a specific element and type text into it, replacing what it held — Vibium's fill; app_type adds to it instead. Located, checked and typed as app_type is; not on Android's uiautomator dump driver. On a slider, text is a position from 0 (the start of its track) to 1 (the end), and the result is the value the slider then reports, as map shows it. On Android the track is touched at the position and the slider lands there; on iOS the thumb is moved as a finger would move it: from either end it lands exactly, from partway it can land a step past, so to land exactly there, fill 0 or 1 first.

Changes the device, the app or the session: readOnlyHint is false.

Arguments​

NameTypeRequiredWhat it is
devicestringDevice serial to target, e.g. "emulator-5554". Omit when only one device is running.
driverstring: uiautomator2, uiautomator, wdaDriver to use: "uiautomator2" (default for Android; fast, installs a server APK on first use), "uiautomator" (Android, installs nothing, slower, cannot type), or "wda" (WebDriverAgent: iOS simulators and iPhones).
targetstringyesA ref from app_map ("@e3") or a locator ("testid=search").
textstringyesThe text the field should hold. An empty string clears it. For a slider, its position from 0 to 1.

Examples​

Each is the arguments of a tools/call request; the first is shown whole.

Replace what a field holds​

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "app_fill",
"arguments": {
"target": "testid=search",
"text": "coffee"
}
}
}

Move a slider to a position​

{
"target": "label=Volume",
"text": "0.3"
}

On an Android 15 emulator the answer's text was:

moved label=Volume to position 0.3 — it reads "3.0", was "5.0"

On a device​

mobium fill testid=username mobium on an Android 15 emulator

mobium fill testid=username mobium on an Android 15 emulator