pixelactions vs AutoHotkey
A Windows institution against a cross-platform list of steps — the comparison is one of kind, not of platform.
The short version
AutoHotkey is the deepest desktop automation tool on Windows — hotkeys, window management, GUIs, COM, a full language, actively maintained for two decades. On Windows, nothing else comes close on depth. pixelactions runs on Windows too now, alongside macOS and Linux (X11 and Wayland), so the honest difference is no longer the platform line — it is one of kind. AutoHotkey is a language you write; pixelactions is deliberately not a language — a list of steps over regions a human marked in pixelcoords, re-located against a fresh capture and verified at run time, with loops and branching left to whatever language you already write, over the line protocol. If your automation is a program, AutoHotkey gives you its language; pixelactions gives your language an executor.
Feature for feature
| Feature | pixelactions | AutoHotkey |
|---|---|---|
| Price | Free | Free |
| Platforms | macOS · Windows · Linux (X11 + Wayland)X11 via XTEST, GNOME/KDE Wayland via the sanctioned portal + EIS path, Windows across the whole virtual desktop rather than the primary monitor — the incumbent everyone runs (PyAutoGUI) has no answer for Wayland at all. Windows multi-monitor is unit-tested but not yet run on real hardware | Windows only |
| Declarative, reviewable flows | TOML flows + chained argva pull request shows "click submit", not arithmetic | not offered |
| Language it takes to drive it | Any — JSON line protocol, or MCPa 40-line stdlib Python client ships in the docs; an MCP server for models, gated on a flag they cannot pass; no embedded interpreter, ever | AutoHotkey, its own language |
| Re-location before acting | Every target re-located against a fresh capture before actinga crop that matches in more than one place stops the run — ambiguity is the test, not distance | ImageSearch, in-script |
| Verified execution | Distinguishes executed from verified; exit codes 0/1/2/3 | ImageSearch / PixelGetColor, in-script |
| Maintenance status | In active development — v0.9.7 on crates.io | Active — v2.0.26, May 2026 |
| License | MIT, open source | GPLv2, open source |
When to pick AutoHotkey
- The job is Windows integration — window titles, control handles, COM, the tray. pixelactions has no concept of any of it.
- Hotkeys and background window control are the job, not clicking marked regions.
- Two decades of community scripts have probably already solved your problem.
When to pick pixelactions
- The same steps have to run on macOS and Linux as well — AutoHotkey is Windows-only, by design.
- Automation belongs in a reviewable flow file, not a script — a diff shows click submit.
- Runs need the contract: re-location before acting, executed vs verified, refusal, exit codes.
- The logic lives in your language — Python, TypeScript, Rust, anything that can write a line of JSON.
What a flow looks like
session = "~/captures/checkout"
[[step]]
action = "click"
target = "email"
[[step]]
action = "type"
text = "a@b.com"
[[step]]
action = "key"
chord = "enter"
[[step]]
action = "verify"
target = "success"Two ways in
cargo install pixelactionsOr skip the toolchain: prebuilt binaries — download, unpack, run.