Terminator: Introduction
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:
Was this page helpful?