overview

terminator is an ai-first cross-platform ui automation library for rust, designed to interact with native gui applications on windows and macos using a playwright-like api via python or typescript sdks.

it provides a unified api to find and control ui elements like buttons, text fields, windows, and more, enabling the creation of automation scripts, testing tools, and assistive technologies.

because it’s using os level apis, it is 100x faster and more reliable for ai computer use than vision-based approaches like openai operator or anthropic computer use. acting at a lower level than a browser, it can easily drop-in replace browser automation tools like playwright for native application tasks.

Note: while we support macos and windows, we are currently focusing development efforts on windows. macos support is functional but may require more investigation for complex scenarios.

features

Cross-Platform

Experimentally supports Windows and macOS with a consistent api.

Application Control

Find running applications (by name, pid), open new applications, open URLs.

Element Discovery

Locate UI elements using various strategies (Selector enum):

  • Role (e.g., “button”, “textfield”, “AXButton”)
  • Name (accessibility label/title)
  • Value
  • Description
  • AutomationId (Windows)
  • Id (internal unique id)
  • Text content (partial matches)

Element Interaction

  • Click, double-click, right-click
  • Type text, set value, press keys (e.g., {Enter}, {Cmd}, {Alt})
  • Focus, hover
  • Scroll (up, down, left, right)
  • Retrieve text content, attributes (value, role, description, bounds, properties)
  • Check state (enabled, visible, focused)

Element Hierarchy

Traverse the accessibility tree (children, parent).

Debugging

Optional verbose logging and accessibility inspector integration (like Accessibility Insights) for easier debugging.

platform support

  • windows (using ui automation)
  • macos (using accessibility api)
  • 🐧 linux (planned/experimental)

use cases & potential experiments

  • ai-driven automation loop: an ai agent observes an application’s state using terminator, generates sdk code to interact, executes it, and observes the result, enabling complex, adaptive automation (e.g., data entry, testing, user support).
  • pdf to legacy form filler: extract data from pdfs and use terminator to fill it into legacy applications lacking modern apis.
  • javascript/typescript integration: integrate terminator into web tools or electron apps using the TypeScript SDK.
  • python scripting: build powerful automation scripts and integrate with other python libraries using the Python SDK.
  • replacing vision models: achieve significantly faster and more reliable ui automation compared to slower, error-prone vision-based models for tasks where accessibility apis are available.

demos

high level demo:

dev demo 1:

dev demo 2:

next steps

ready to start? head over to the Getting Started guide, then dive into the sdk references: