Crates.io | terminator-rs |
lib.rs | terminator-rs |
version | 0.15.9 |
created_at | 2025-06-25 17:51:03.308309+00 |
updated_at | 2025-09-25 23:51:45.454817+00 |
description | A Playwright-style SDK for automating desktop GUI applications |
homepage | https://github.com/mediar-ai/terminator |
repository | https://github.com/mediar-ai/terminator |
max_upload_size | |
id | 1726239 |
size | 1,226,798 |
https://github.com/user-attachments/assets/00329105-8875-48cb-8970-a62a85a9ebd0
AI-powered desktop automation — open source, MIT-licensed, cross-platform, accessibility-first. Works across all apps and browsers. Inspired by GitHub Actions & Playwright. 100x faster than generic AI agents, >95% success rate, no vendor lock-in.
We achieve this by pre-training workflows as deterministic code, and calling AI only when recovery is needed.
Our private beta workflow builder + managed hosting = plug-and-play automation engine for your business:
Install the Terminator MCP in Claude Code with one command:
claude mcp add terminator "npx -y terminator-mcp-agent@latest" -s user
Or install via the MCP directory for other clients.
curl -fsSL https://mediar.ai/install.sh | bash
In powershell:
irm https://mediar.ai/install.ps1 | iex
Run the setup command to configure your environment:
terminator setup
This will:
import terminator
# Control applications programmatically
desktop = terminator.Desktop()
desktop.open_application('calc')
desktop.locator('name:Seven').click()
desktop.locator('name:Plus').click()
desktop.locator('name:Three').click()
desktop.locator('name:Equals').click()
# Result: 10 appears in calculator
Installation:
pip install terminator
const { Desktop } = require("terminator.js");
// Async/await for modern control flow
const desktop = new Desktop();
await desktop.openApplication("notepad");
await desktop.locator("name:Edit").typeText("Hello from TypeScript!");
await desktop.pressKey("{Ctrl}s"); // Save
Installation:
npm install terminator.js
# or: bun add terminator.js
While Terminator aims for full cross-platform support, current capabilities vary by OS. Windows is the primary development target and has the most complete feature set.
Feature | Windows | macOS | Linux | Notes |
---|---|---|---|---|
Core Automation | ||||
Element Locators | ✅ | 🟡 | 🟡 | Find elements by name , role , window , etc. |
UI Actions (click , type ) |
✅ | 🟡 | 🟡 | Core interactions with UI elements. |
Application Management | ✅ | 🟡 | 🟡 | Launch, list, and manage applications. |
Window Management | ✅ | 🟡 | 🟡 | Get active window, list windows. |
Advanced Features | ||||
Browser Automation | ✅ | ✅ | ✅ | Chrome extension enables browser control. |
Workflow Recording | ✅ | ❌ | ❌ | Record human workflows for deterministic automation. |
Monitor Management | ✅ | 🟡 | 🟡 | Multi-display support. |
Screen & Element Capture | ✅ | ✅ | 🟡 | Take screenshots of displays or elements. |
Language Bindings | ||||
Python (terminator.py ) |
✅ | ✅ | ✅ | pip install terminator |
TypeScript (terminator.js ) |
✅ | ✅ | ✅ | npm i terminator.js |
MCP (terminator-mcp-agent ) |
✅ | ✅ | ✅ | npx -y terminator-mcp-agent --add-to-app [app] |
Rust (terminator-rs ) |
✅ | ✅ | ✅ | cargo add terminator-rs |
Legend:
name:Seven
)To create reliable selectors (e.g. name:Seven
, role:Button
, window:Calculator
), you need to inspect the Accessibility Tree of your OS. Here's how to explore UI elements on each platform:
These tools show you the
Name
,Role
,ControlType
, and other metadata used in Terminator selectors.
Xcode > Open Developer Tool > Accessibility Inspector
→ Use the target icon to explore UI elements on screen.Tool: Accerciser
Install:
sudo apt install accerciser
Usage: Launch Accerciser → Select the window/app → Browse the accessible widget tree.
Once you identify the structure of your UI:
# Sample pattern
desktop.locator('window:Calculator')
.locator('role:Button')
.locator('name:Seven')
You can build and debug selector paths incrementally using .locator()
chaining.
For detailed troubleshooting, debugging, and MCP server logs, see the MCP Agent documentation.
Contributions are welcome! Please feel free to submit issues and pull requests. many parts are experimental, and help is appreciated. join our Discord to discuss.
If you want desktop automation at scale for your business, let's talk.