Availability
What's real today, what isn't yet.
“Available” should mean something specific: installed, working, and ready for your test suite. Web automation runs today against real Chromium and Firefox browsers, Android automation runs on real devices and emulators, and iOS automation runs natively on Simulators and registered devices. Native macOS application automation runs through XCUITest, and native Windows application automation runs through UI Automation — each with the actions, locators, and retrying assertions everyday tests rely on. This page is the detailed, continuously updated picture behind the status pills you see elsewhere on the site — surface by surface, capability by capability, and language by language, including what's still missing.
Surfaces
Web, Mobile Android, Mobile iOS, Desktop macOS, and Desktop Windows have real, installable plugins today. The rest have a reserved place in the plugin catalog but no runtime build yet — installing them isn't possible until that changes.
Web
Available nowChromium and Firefox, with the actions, locators, state reads, and retrying assertions everyday web tests need.
Mobile
Available nowAndroid plus iOS Simulators and registered physical devices are available with automatic runtime and app setup, using the same Playwright-style client shape.
Desktop
macOS + Windows availableNative macOS applications through XCUITest and native Windows x64 applications through UI Automation are available. Linux remains planned.
API
Not yet availableBackend checks in the same test run.
Cross-surface feature parity
The core action and locator model is shared everywhere. Features tied to browsers, mobile operating systems, or desktop windowing still differ; this matrix makes those boundaries explicit.
| Capability | Web | Android | iOS | macOS | Windows |
|---|---|---|---|---|---|
| Click, focus, fill, key input, text, count, and waits | Available | Available | Available | Available | Available |
| Semantic locators | Available | Available | Available | Available | Available |
| Accessibility snapshots and AI references | Available | Available | Available | Available | Available |
| Viewport screenshots | Available | Available | Available | Available | Available |
| Full-page / scroll-and-stitch screenshots | Available | Available | Available | Available | Available |
| URL navigation and deep links | Available | Available | Available | Available | Available |
| File chooser and download hooks | Available | Available | Available | Not yet | Not yet |
| Dialogs and newly opened contexts | Available | Not yet | Not yet | Not yet | Not yet |
| Input, checked, attribute, and box reads | Available | Available | Available | Available | Available |
| Selected-option and selected-text reads | Available | Not yet | Not yet | Not yet | Not yet |
| Retrying text, count, attached/hidden, enabled/disabled, focused, and editable assertions | Available | Available | Available | Available | Available |
| Retrying value, checked-state, attribute, and box assertions | Available | Available | Available | Available | Available |
| Hover, highlight, double-click, and right-click | Available | Not yet | Not yet | Not yet | Not yet |
| DOM, frames, and in-page JavaScript | Available | Accessibility tree only | Accessibility tree only | Native tree only | Native tree only |
| Install the application under test | Not applicable | Available | Available | Not yet | Not yet |
Allwright Inspector
allwright inspector opens a local UI that shows a live app, its accessibility tree, and locator code in TypeScript, Python, Java, Go, and Rust. It is available for Android, iOS, macOS, and Windows apps; web pages are not covered yet. Inspect mode selects elements without activating them, and Interact mode forwards clicks, swipes, scrolling, typing, and paste to the live app. Read the walkthrough →
Web, capability by capability
“Available now” means the web plugin is installable and everything below works against Chromium and Firefox today — enough to cover the core of a real web test suite. The list on the right is what hasn't landed yet, so you can check whether your suite depends on any of it.
Available now
- Launch a real Chromium or Firefox browser — no separate driver to install or version-match
- Open and close tabs within a browser session
- Work with nested and cross-origin iframes as pages, with automatic load waits and configurable timeouts
- Register a typed hook before an action and wait for the new tab that action opens
- Register a typed file-chooser hook and upload one or multiple local files
- Register a typed download hook and save the completed download to a local path
- Handle JavaScript alerts, confirms, and prompts with typed hooks — accept, dismiss, or enter prompt text
- Navigate to a URL
- Click, double-click, middle-click, or right-click an element with configurable click counts
- Type into a field
- Hover over an element
- Press a key on an element
- Focus an element
- Highlight matching elements for debugging
- Find elements by role, text, label, placeholder, alt text, title, or test ID, with filters, exclusions, and chained locators
- Count matching elements
- Read native accessibility snapshots as JSON or YAML and act through cached AI element references
- Read visible or raw text from an element
- Read input values, checked state, native accessibility attributes, and on-screen bounding boxes
- Capture the current page URL, live input values, selected options and text, checkbox/radio state, attributes, and element bounding boxes
- Wait for an element to appear or become visible
- Capture viewport or full-page screenshots
- Read page accessibility snapshots as JSON or standard YAML, with queryable element references in AI mode
- Retrying URL, value, selection, checked state, text, attribute, bounding-box, count, attached/hidden, enabled/disabled, focused, and editable assertions, including negation (via @allwright.dev/vitest)
Not yet available
- Network mocking or request interception
- Cookies and saved session state
- Geolocation and other device permissions
- Mobile viewport and device emulation
- Drag and drop
- Multiple isolated browser profiles per session
- Video recording, tracing, coverage, or PDF export
- Safari / WebKit (Chromium and Firefox only today)
Every client language exposes this same capability set — there is no language-exclusive functionality on the web surface today.
Mobile — Android, capability by capability
“Available now” means the mobile-android plugin is real, installable, and drives a genuine app over adb — no Appium, no separate driver server. It covers the core actions, reads, hooks, and the shared retrying assertion set. URL and selection matchers remain web-only.
Available now
- Connect to a running emulator or a real device over adb — no separate driver server to run
- Install and launch a real app from a local APK or a URL
- Open universal links and custom URL schemes with app.goto / app.navigate
- Click an element
- Type into a field
- Focus an element
- Press a key
- Read visible or raw text from an element
- Wait for an element to appear
- Count matching elements
- Read native accessibility snapshots as JSON or YAML and act through cached AI element references
- Capture screenshots, including a full-page scroll-and-stitch capture
- Register typed file-chooser and public-download hooks with files streamed to and from the test machine
- Text, partial-text, resource id, class name, XPath, and state-based (e.g. clickable) selectors
- Playwright-style getByRole, getByText, getByLabel, and getByTestId native accessibility locators
- Retrying text, value, checked-state, attribute, bounding-box, count, attached/hidden, enabled/disabled, focused, and editable assertions, including negation (via @allwright.dev/vitest)
Not yet available
- Hover and highlight (web-only for now)
- Explicit swipe, scroll, drag-and-drop, pinch, and multi-touch gesture APIs
- Selected-option and selected-text reads
- Typed dialog and newly opened app-context hooks (file chooser and download hooks are available)
- Multiple isolated app sessions or switching among several foreground app contexts
- General CSS/DOM, iframe, or arbitrary in-app JavaScript sessions for WebViews
- Network mocking, request interception, cookies, permissions, tracing, and video recording
Every client language exposes this same Android capability set — same as web, nothing here is language-exclusive.
Mobile — iOS, capability by capability
The mobile-ios plugin is installable on macOS and provisions the runtime and app under test automatically, so users do not install a separate driver or sample IPA manually.
Available now
- Connect to an available iOS Simulator with no separate driver setup
- Connect to a registered physical device; the prebuilt agent is discovered, re-signed, installed, and forwarded automatically
- Download a simulator .ipa or ZIP, or use a local .app bundle, then install and launch it automatically
- Install and launch a signed physical-device .ipa, ZIP, or .app bundle without a manual install step
- Click, focus, fill, press keys, read text, wait for selectors, count elements, and capture screenshots
- Read input values, checked state, native accessibility attributes, and on-screen bounding boxes
- Open universal links and custom URL schemes with app.goto / app.navigate
- Capture full-page scroll-and-stitch screenshots
- Read native accessibility snapshots as JSON or YAML and act through cached AI element references
- Register typed file-chooser and download hooks with files streamed to and from the test machine
- Automate WebView content exposed through the native XCTest accessibility tree
- Accessibility-id, text, XCTest element type, and basic XPath selectors
- Playwright-style getByRole, getByText, getByLabel, and getByTestId native accessibility locators
- Playwright-style action auto-waiting and retrying text, value, checked-state, attribute, bounding-box, count, attached/hidden, enabled/disabled, focused, and editable assertions
- The same Rust, Go, Java, Python, and TypeScript client shape used by Android
Not yet available
- Hover and highlight (web-only for now)
- Explicit swipe, scroll, drag-and-drop, pinch, and multi-touch gesture APIs
- Selected-option and selected-text reads
- Typed dialog and newly opened app-context hooks (file chooser and download hooks are available)
- Multiple isolated app sessions or switching among several foreground app contexts
- Arbitrary in-page JavaScript and general CSS/DOM sessions inside WebViews
- Network mocking, request interception, cookies, permissions, tracing, and video recording
Desktop — macOS, capability by capability
The desktop-mac plugin is installable on macOS 14 or newer and starts its bundled XCUITest runner automatically. Xcode must be installed, UI automation permission must be enabled for the process running Xcode, and the app under test must already be installed.
Available now
- Connect to the local macOS desktop with an automatically started XCUITest runner
- Launch or terminate an application by bundle identifier
- Open universal links and custom URL schemes with app.goto / app.navigate
- Click, focus, fill, press keys, read text, wait for selectors, and count elements
- Read input values, checked state, native accessibility attributes, and on-screen bounding boxes
- Capture the application window or a full scroll-and-stitch screenshot of its primary scrollable region
- Read native accessibility snapshots as JSON or YAML and act through cached AI element references
- Use accessibility-id, text, XCTest element type, basic XPath, and Playwright-style semantic locators
- Use retrying text, value, checked-state, attribute, bounding-box, count, attached/hidden, enabled/disabled, focused, and editable assertions through @allwright.dev/vitest
- Use the same Rust, Go, Java, Python, and TypeScript server-only client shape as the other surfaces
Not yet available
- Application installation or distribution — launch targets must already be installed
- File-chooser, download, dialog, and newly opened window hooks
- Selected-option and selected-text reads
- Hover, highlight, drag-and-drop, multi-click, and other pointer gesture APIs
- Multiple isolated desktop sessions or switching among several application windows
- Web-style DOM, iframe, arbitrary JavaScript, network, cookie, permission, tracing, and video APIs
Desktop — Windows, capability by capability
The desktop-windows plugin is installable on Windows x64 and starts its bundled, self-contained UI Automation agent automatically — no Appium, WinAppDriver, Developer Mode, or separate .NET install. The app under test must already be installed.
Available now
- Connect to the local Windows desktop with an automatically started UI Automation agent
- Launch or terminate an application by executable path, a command Windows can resolve, or a packaged-app ID
- Open universal links and custom URL schemes with app.goto / app.navigate
- Automate Win32, WinForms, WPF, UWP, and WinUI applications
- Click, focus, fill, press keys, read text, wait for selectors, and count elements
- Read input values, checked state, native UI Automation attributes, and on-screen bounding boxes
- Capture the application window or a full scroll-and-stitch screenshot of its primary scrollable region
- Read native accessibility snapshots as JSON or YAML and act through cached AI element references
- Use native UI Automation selectors and Playwright-style semantic locators
- Use retrying text, value, checked-state, attribute, bounding-box, count, attached/hidden, enabled/disabled, focused, and editable assertions through @allwright.dev/vitest
- Use the same Rust, Go, Java, Python, and TypeScript server-only client shape as the other surfaces
Not yet available
- Windows on ARM and 32-bit Windows
- Application installation or distribution — launch targets must already be installed
- File-chooser, download, dialog, and newly opened window hooks
- Selected-option and selected-text reads
- Hover, highlight, drag-and-drop, multi-click, and other pointer gesture APIs
- Multiple isolated desktop sessions or switching among several application windows
- Web-style DOM, iframe, arbitrary JavaScript, network, cookie, permission, tracing, and video APIs
Still to come
The Linux desktop plugin plus API testing remain part of the direction, but there is no installable runtime for them yet.
Desktop — Linux
Not yet availableThe shared desktop contract exists, but there is no installable Linux automation runtime yet.
API
Not yet availableBackend checks in the same test run.
Client languages
“Published” means a normal package-manager install. “From source” means the client is complete and working, but you build it from the repository instead of pulling it from a package registry.
Rust
PublishedThe engine itself, plus a high-level client.
View example →Go
PublishedA Playwright-style Browser and Page API.
View example →Java
PublishedA Gradle-based client for JVM test suites.
View example →Python
PublishedA client that feels at home in pytest.
View example →TypeScript
PublishedCore client plus Vitest fixtures, for TypeScript or plain JavaScript.
View example →Ready to try it?
Scaffold a project and run your first test in a minute. The changelog tracks each new capability as it lands.