Skip to content

mediar-ai/terminator

Repository files navigation

terminator 🤖

paint051225.mp4

Join us on Discord docs

Automate desktop apps like a browser. AI-native GUI automation for Windows. Fast, reliable, agent-ready.

⚡ TL;DR — Hello World Example

Skip the boilerplate. This is the fastest way to feel the magic.

🐍 Python

pip install maturin
cd bindings/python
maturin develop
import terminator
desktop = terminator.Desktop()
desktop.open_application('calc')
seven = desktop.locator('name:Seven')
seven.click()

🟦 TypeScript / Node.js

cd bindings/nodejs
npm install
npm run build
const { Desktop } = require('../bindings/nodejs');
const desktop = new Desktop();
await client.openApplication('notepad')
await client.locator('name:Edit').typeText('hello world')

🧠 What is Terminator?

Terminator is the Playwright-style SDK for automating Windows GUI apps.

  • 🪟 Built for Windows, works on macOS (partial)
  • 🧠 Designed for AI agents, not humans
  • ⚡ Uses OS-level accessibility (not vision)
  • 🧩 TS, Python, and Rust support
  • 📈 80ms UI scans, 10000x speedup via compiled workflows

Benchmarks

The benchmark test illustrates how fast Terminator can query the UI. It finds all edit elements in about 80 ms, showcasing a big speed advantage over vision-based tools.

This form-filling app can read & fill 1000 inputs forms as soon as you see them in <1s end-to-end using Gemini.

Demos

Check out Terminator in action:

Documentation

For detailed information on features, installation, usage, and the API, please visit the Official Documentation.

Explore Further

Technical Details & Debugging

Key Dependencies

  • Windows: uiautomation-rs
  • macOS: Native macOS Accessibility API (exploring cidre as an alternative)

Debugging Tools

  • Windows:
    • Accessibility Insights for Windows
    • FlaUInspect: A recommended alternative for inspecting UI Automation properties on Windows.
      • Install: choco install flauinspect or download from FlaUI/FlaUInspect releases.
      • Usage: Launch FlaUInspect.exe, hover or click on elements to see properties like AutomationId, Name, and ControlType. This is great for debugging selectors.

contributing

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.

businesses

if you want desktop automation at scale for your business, let's talk