Rebind vs AutoHotkey

Portable core remaps, with hardware output.

AutoHotkey is the Windows gold standard for input scripting. Rebind brings portable core remaps to Windows, macOS, and Linux. In hardware mode, Rebind Link emits standard USB HID at a USB report rate of up to 8,000 Hz.

Same mental model. A bigger runtime.

If you write AutoHotkey, you already think the way Rebind works: bind a key, transform an input, fire a hook, run a macro. Rebind's scripting language is Luau, a fast, typed member of the Lua family. The model carries straight over.

AutoHotkey is Windows-only and sends input at the software level. Rebind's core remap and HID APIs run on Windows, macOS, and Linux. OS-specific APIs such as Registry, Pipe, App, Window, and Screen differ by platform. With Rebind Link, output leaves a dedicated USB device as standard HID.

The full engine is free. Hardware isolation and a USB report rate of up to 8,000 Hz in hardware mode come with Rebind Link.

AutoHotkey vs Rebind

AutoHotkey is excellent and free. This table is about reach and runtime, not quality.

Capability
AutoHotkey
Rebind

Scripting language

AHK (v1 and v2), purpose-built

Luau: fast, typed, coroutines

Platforms

Windows only

Windows, macOS, Linux; OS-specific namespaces vary

Output method

Software-level (SendInput)

Software output free; USB HID from dedicated hardware with Rebind Link

Input capture

OS hooks

With Rebind Link, before the OS sees the event

USB report rate

Not applicable

Up to 8,000 Hz in Rebind Link hardware mode

Works across keyboard and mouse brands

Yes

Yes, no vendor lock-in

Built-in HTTP client

No (external libraries)

Yes: Net.Get, Net.Post

Built-in HTTP / WS server

No

Yes: Net.Listen, Net.WSListen

Shared-memory IPC

No

Yes: Pipe (Windows-only) for a Python or Node sidecar

Real coroutines

Limited

Yes: Run, Sleep, After, Async

Declarative UI panels

No

Yes: UI.Schema, Toggle, Slider, Keybind

Drive from other languages

Community

Official TS, Python, and Rust clients

Per-app targeting

Yes (#HotIf WinActive)

Yes (process= / window= modeline)

Pixel sampling, window control

Some

Yes: Screen, Window, Macro

Price

Free, open source

Free engine; optional Rebind Link

CapsLock to Escape

AutoHotkey:

CapsLock::Escape

Rebind, the same remap, and it runs on macOS and Linux too:

-- rebind: name=CapsLock to Escape
-- rebind: version=1.0.0
-- rebind: min_sdk=3.0.0

Bind.Remap("CapsLock", "Escape")

Per-app hotkey

AutoHotkey:

#HotIf WinActive("ahk_exe Photoshop.exe")
^j::Send("^+s")
#HotIf

Rebind, where the modeline scopes the whole script, so there are no per-binding guards:

-- rebind: name=Photoshop Save As
-- rebind: version=1.0.0
-- rebind: min_sdk=3.2.2
-- rebind: process=Photoshop.exe

Bind("LCtrl+J", function()
  HID.Combo("LCtrl+LShift+S")
  return false
end)

When each one fits

Use AutoHotkey when you're on Windows only, want the deepest, most mature ecosystem of scripts and docs, and software-level output is all you need.

Use Rebind when you want portable core remaps across Windows, macOS, and Linux; standard USB HID output from dedicated hardware; a built-in HTTP/WebSocket runtime; or clients for TypeScript, Python, and Rust.

Use both: keep your AutoHotkey setup on Windows and port the scripts you want portable or hardware-backed to Rebind.

Common questions

Can I run my exact AutoHotkey scripts in Rebind? No. Scripts are Luau, not AHK syntax. But the model is the same, porting is straightforward, and RebindGPT can draft a port from a plain-English description.

Does Rebind work on macOS and Linux? Yes. Remaps, binds, macros, text expansion, and HID output run on Windows 10/11, macOS on Apple Silicon, and Linux x86_64. A few deeper OS integrations are Windows-first today. The platform support matrix lists what each platform supports.

Rebind vs AutoHotkey

Port a script this afternoon.

Install v3.5.2RebindGPT

windows · macos · linux