Terminator software, in one sentence

Terminator is an open source desktop automation framework for Windows and macOS that drives any native app through the OS accessibility layer, distributed at github.com/mediar-ai/terminator.

M
Matthew Diakonov
6 min read

Direct answer (verified 2026-05-24)

What it is. A developer framework. Rust core, Python and npm bindings, plus an MCP server. Drives any Windows or macOS app through native accessibility APIs (UI Automation on Windows, AXUIElement on macOS).

What it is not. Not the older Linux terminal emulator of the same name (that one lives at github.com/gnome-terminator/terminator). Not an RPA platform with a designer. Not a consumer app you double-click.

License. MIT. Source at github.com/mediar-ai/terminator. Docs and installer at t8r.tech.

The name collision, settled

Two projects share the name. They are not related.

Linux terminal emulator

gnome-terminator/terminator

Multi-pane terminal for GNOME, written in Python, packaged in apt/dnf/pacman. First released in 2007. If you want to split your terminal into four panes, this is the project you want, and this page will not help you.

Desktop automation framework (this site)

mediar-ai/terminator

Open source desktop automation framework for Windows and macOS. Rust core, Python and npm bindings, MCP server. Built for developers and AI coding assistants that need to drive real apps, not consumer end-users.

What the framework actually gives you

The shape is intentionally close to Playwright. If you have written browser automation, the mental model carries over.

Core capabilities

  • Open source, MIT licensed. Source at github.com/mediar-ai/terminator. No per-seat fees, no telemetry, no feature gating.
  • Cross-platform (Windows + macOS). UI Automation on Windows, AXUIElement on macOS. Single API for both.
  • Playwright-shaped selectors. role:Button && name:'Save'. Familiar if you have written browser automation.
  • MCP server included. Plug it into Claude Code, Cursor, VS Code, or Windsurf. The AI gets OS-level hands.
  • Works with any native app. Excel, Outlook, SAP GUI, File Explorer, Photoshop, Teams, internal WPF tools, browsers.
  • Multiple language bindings. Rust crate (terminator-rs), Python package, npm CLI. Same engine underneath.

Why accessibility APIs beat pixel matching

Most desktop automation written in the last 20 years uses pixel coordinates or screenshot diffing to find UI elements. Both approaches break the moment the screen changes. Terminator queries the accessibility tree the OS already maintains, so elements have stable identities that survive layout changes, theme swaps, and DPI scaling.

Click 'Save' in Excel

pyautogui finds the button at (847, 312). Tomorrow the user attaches an external monitor, Windows rescales, the button moves to (1271, 468). The script clicks empty canvas and silently fails. No exception, no log line, just the wrong outcome.

  • Brittle to DPI changes
  • Breaks on theme or window resize
  • Silent failure when target moves
  • No way to diff selectors in git

Before: pixel-based

# pyautogui: pixel-based, brittle
import pyautogui, time

pyautogui.click(847, 312)         # "Save" button, today
time.sleep(0.5)
pyautogui.typewrite('report.xlsx')
pyautogui.press('enter')

# Tomorrow: DPI changes,
# button moves 6px right,
# script clicks nothing.

After: accessibility-based

# terminator: accessibility-based, durable
from terminator import Desktop

desktop = Desktop()
excel = desktop.app("Excel")

excel.element("role:Button && name:'Save'").click()
excel.element("role:Edit && name:'File name'").type("report.xlsx")
excel.element("role:Button && name:'Save'").click()

# Survives DPI changes, dark mode,
# window moves, theme swaps,
# most app updates.

Where it slots into your stack

The most common entry point is the MCP server. Install it once, point your AI coding assistant at it, and the assistant gains the ability to read and manipulate any UI on your machine.

From install to first automation

  1. 1

    Install the MCP agent

    Run `npx -y terminator-mcp-agent@latest` once, or wire it into your assistant's MCP config.

  2. 2

    Point your assistant at it

    For Claude Code: `claude mcp add terminator 'npx -y terminator-mcp-agent@latest'`. Cursor, VS Code, and Windsurf use their own MCP config files.

  3. 3

    Ask the assistant to do work

    Open Outlook, mark these three emails as read. Open Excel, paste this data, save. The assistant reads the accessibility tree and clicks for real.

  4. 4

    Inspect or edit the recorded workflow

    Long-running flows are persisted as human-readable YAML. Edit them in git, replay with `terminator mcp run workflow.yml`.

0Operating systems supported (Windows, macOS)
0Distribution channels (Rust, Python, npm, MCP)
0Per-seat license fees (MIT)

Who it is for

The intended user is a developer building one of three things:

  • An AI agent with computer-use capabilities. You want Claude, GPT, or a local model to drive native apps, not just generate text. Terminator gives the model a typed tool surface for the OS instead of asking it to interpret screenshots.
  • An internal automation that has outgrown PyAutoGUI or AutoHotkey. The script worked when one person ran it on one machine. Now five teammates run it, half on laptops with external monitors, and it fails randomly. Switching the underlying engine to the accessibility tree fixes most of those failures.
  • An MCP tool that needs to drive real apps beyond the browser. You are extending Claude Code or Cursor with capabilities that Playwright cannot reach: opening attachments, manipulating native dialogs, controlling Excel, dragging files in Explorer.

If you only need browser automation, Playwright is still the right tool. If you need a hosted RPA platform with bot orchestration and audit logs, this is the wrong category. Use UiPath or Power Automate Desktop instead.

The thing I want from desktop automation is that the selectors I wrote three months ago still work today. Terminator queries the accessibility tree directly, which means a button is identified by what it is, not where it happened to be on the screen the day I wrote the script.
M
Matt
Maintainer, github.com/mediar-ai/terminator

Considering Terminator for a real automation project?

If you have a desktop workflow you are trying to drive from code or from an AI assistant, walk us through it and we will tell you honestly whether this framework fits.

Common questions about Terminator software

What is Terminator software?

Terminator is an open source desktop automation framework for Windows and macOS, distributed at github.com/mediar-ai/terminator. It drives any native application (Excel, Outlook, SAP, File Explorer, internal WPF tools, browsers, anything with a UI) through the operating system's accessibility layer: UI Automation on Windows and AXUIElement on macOS. The API is intentionally shaped like Playwright, but the target is the entire OS, not just the browser. It ships as a Rust crate (terminator-rs), a Python package, an npm CLI, and an MCP server that lets AI coding assistants like Claude Code, Cursor, VS Code, and Windsurf control real apps.

Is this the same as the Linux terminal emulator named Terminator?

No. There is an older Linux project named Terminator that is a terminal emulator (multi-pane terminals for GNOME, written in Python, packaged in most distros). It has nothing to do with this project. This Terminator is a desktop automation framework. The name collision exists because both projects predate each other in different ecosystems. If you arrived here looking for the terminal emulator, you want the project at github.com/gnome-terminator/terminator instead. If you want the desktop automation framework, you are in the right place.

How is this different from PyAutoGUI, AutoHotkey, or pixel-matching tools?

PyAutoGUI and AutoHotkey identify elements by screen position or image matching. Both break the moment a window moves, the OS scales the display, the theme changes, or someone updates the app and the icon shifts five pixels. Terminator queries the accessibility tree directly, so a button is identified by role and name, not by where it happened to be when the script was written. The element survives window resizes, dark mode, DPI changes, and most app updates. Latency is also lower because there is no OCR pass and no image diff.

How is this different from Playwright?

Playwright drives browsers. Terminator drives everything. If your automation lives entirely in Chrome or Firefox, Playwright is the right tool. The moment you need to click a button in Outlook, drag a file in Explorer, fill a field in SAP GUI, or trigger a save dialog in Photoshop, Playwright cannot help. Terminator covers that gap. The selector grammar is deliberately Playwright-shaped (`role:Button && name:'Save'`) so the mental model carries over.

How is this different from UiPath or Power Automate Desktop?

Different category. UiPath and Power Automate Desktop are designer-driven RPA platforms aimed at non-developers building business automations. They have per-seat licenses, central bot orchestrators, and visual workflow builders. Terminator is a developer framework. There is no designer. You wire it into code or into an MCP-capable AI assistant. It is MIT licensed and runs locally with no orchestrator. Different audience, different shape, different price.

What does the MCP integration actually do?

The MCP server (`npx -y terminator-mcp-agent@latest`) exposes desktop automation as a tool to any MCP-aware AI assistant. Once installed, Claude Code, Cursor, VS Code, or Windsurf can call tools like `click_element`, `type_into_element`, `press_key`, `get_focused_window_tree`, and `run_workflow`. The assistant reads the accessibility tree of the focused window, decides what to click, and the framework executes the click for real. This is what lets an AI coding assistant do work outside its own editor.

What platforms does it support?

Windows is the primary target. The Windows backend wraps UI Automation (uiautomation-rs) and is the most mature. macOS is supported via the AXUIElement API; the Rust crate `axuielement` is the project's own work to make macOS accessibility feel like a typed Rust API. Linux is not currently supported because AT-SPI2 coverage in major Linux apps is uneven. If you need cross-platform between Windows and macOS, that works today.

Where do I install it?

For the MCP integration: `claude mcp add terminator 'npx -y terminator-mcp-agent@latest'` and restart your assistant. For Rust: `cargo add terminator-rs`. For Python: `pip install terminator-rs`. For npm: `npm install terminator-mcp-agent`. Source and issues live at github.com/mediar-ai/terminator. The documentation site is t8r.tech.

What license is it under?

MIT. Source on GitHub, no per-seat fees, no telemetry phone-home, no commercial gating of features. The project is maintained by Mediar.

terminatorDesktop automation SDK
© 2026 terminator. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.