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

FeaturepixelactionsAutoHotkey
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
verified against AutoHotkey v2.0.26, 2026-07-29

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 pixelactions

Or skip the toolchain: prebuilt binaries — download, unpack, run.