read_ui
Read numbered UI controls and text from macOS windows or web pages via the accessibility tree, returning elements you can click by mark.
Instructions
Compatibility alias for ax_read, backed by the exact same semantic traversal, renderer, snapshot generation, and action cache. Prefer the canonical ax_read name in new prompts and integrations.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Cap on the number of elements returned (default 200, max 400). | |
| mode | No | `interactive` returns actionable controls, `content` returns readable labels/text, and `all` combines both in deterministic tree order. Defaults to `all`. | |
| filter | No | Show only elements whose role, label, or value contains this case-insensitive substring (e.g. "button", "search", "submit"). Omit to list everything. Filtering only narrows the DISPLAY — the hidden elements keep their numbers and stay clickable by click_mark(N). | |
| target | No | `native` (default) reads AX/UIA. `paired_page` reads only the already consented Chrome document; mutually exclusive with `window`. | |
| window | No | Target a single on-screen window: a case-insensitive substring of its title or app name (e.g. "Safari", "Settings"). Omit to read the current target app — the last window-captured or read_ui'd app, otherwise the frontmost. Web-page content is included either way (as long as the app has a window); a window= just narrows and sharpens the listing to that window. | |
| max_chars | No | Unicode-character output budget (default 30000, max 100000). If hit, `truncated=true` and `partial_reason=character_limit` are returned. |