native-describe-screen
Inspect a running app's native accessibility hierarchy and receive raw point-space frames, normalized coordinates, and traits to debug low-level UI data or support backend migration.
Instructions
Read the running app's native accessibility screen description via injected native devtools.
Returns a flat list of accessibility leaf elements with:
raw native point-space frame and tapPoint
normalizedFrame and normalizedTapPoint relative to the app's main screen bounds
top-level screenFrame metadata
traits and optional labels/identifiers
This is a low-level native inspection tool. The normalized fields are intended to help with backend migration work, but the public describe contract is still separate.
Use when you are evaluating or debugging the lower-level native data behind the public describe tool, or when you need its raw point-space geometry rather than describe's normalized contract.
If status is restart_required: follow the message (usually restart-app), then retry. If status is service_stale: the app is already injected, so restarting it cannot help — restart the tool-server (argent server stop && argent server start --detach) and retry. If the same status comes back after that restart, stop restarting: follow the message, which names the terminal fallback. If status is connect_pending: the app is injected and still connecting — do not restart it, wait a few seconds and retry. If status is init_failed: the simulator's native-devtools environment could not be initialised — follow the message (re-boot the simulator) rather than retrying this tool.
A not-connected or not-running app comes back as one of those statuses rather than a failure. Failures are separate: an Apple system app is rejected outright (terminal — never retry it), and the screen query itself can error or time out.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| udid | Yes | Simulator UDID | |
| bundleId | Yes | Bundle ID of the app | |
| skipClasses | No | Exact UIView class names whose entire subtree should be pruned (e.g. ["UIImageView"] to drop image-heavy branches) | |
| skipClassPrefixes | No | Class name prefixes to prune entire subtrees. For SwiftUI apps use ["_TtGC7SwiftUI"] to drop mangled SwiftUI generic type subtrees while keeping UIKit bridges. |