Skip to content
pixelactions

pixelactions vs AutoHotkey

A Windows institution against a cross-platform list of steps — the honest comparison starts with the platform line.

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, and pixelactions is not there yet: today it runs on macOS, with Windows next. The difference is one of kind, not depth. 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 today; Windows and X11 nextearly — no crate or binaries published yet
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 over stdioa 40-line stdlib Python client ships in the docs; 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.1.0, unpublished
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

  • You are on Windows — pixelactions is not there yet, and this is where AutoHotkey lives.
  • Hotkeys, background window control, and OS integration are the job, not clicking marked regions.
  • Two decades of community scripts have probably already solved your problem.

When to pick pixelactions

  • You are on macOS — where pixelactions runs today.
  • 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.