Enabling vision
vision_only: true (CLI: --vision-only) is a separate mode that drops the
accessibility tree and drives the device from screenshots alone.
The coordinate contract
With vision active, coordinates are handled automatically:- The screenshot is resized to the exact dimensions the model will ground on, with a labeled coordinate grid drawn on it.
- The device state declares that coordinate space, and element bounds in the accessibility tree text are emitted in the same space.
- Coordinates the model passes to
click_at,click_area,long_press_at, andswipeare converted back automatically — to device pixels on Android, to points on iOS. - Coordinates outside the declared space are rejected with a corrective error and the model retries.
click, long_press) are
unaffected; they always tap accessibility-tree bounds.
Per-model effective screenshot size
Some providers downsize images server-side before the model sees them. To keep coordinates exact, mobilerun resolves the screenshot dimensions each active vision model actually grounds on and resizes to the smallest result across all recipients (manager + executor, or the fast agent):
Unknown Anthropic model IDs fall back to the standard 1568 budget. The
declared coordinate space always matches the image the model receives, so
convert_point is exact regardless of which model is configured.
Capping the screenshot size
For local or undocumented vision models that downsize to a size mobilerun can’t infer (for example, certain Ollama models), set an explicit cap withagent.model_screenshot_max_side. The cap is applied on top of per-model
resolution and uses the smaller of the two.
Coordinate tools and vision
swipe is always available. click_at, click_area, and long_press_at
are disabled by default; enabling vision re-enables click_at automatically
(non-normalized). To enable all coordinate tools:
Normalized coordinates
agent.use_normalized_coordinates: true makes the model emit [0-1000]
coordinates instead of pixels; the coordinate contract is inactive in this
mode.
An occasional “Coordinates … are outside the … coordinate space” error is
the guardrail correcting the model; it retries automatically. Persistent
errors suggest a model that is weak at visual grounding.