Same binds and hooks. A better runtime underneath.
Bind a key, transform an input, fire a hook, run a macro: if you write AutoHotkey, you already think in Rebind.
Scripts are Luau, the fast, typed Lua from Roblox, with real coroutines, a built-in HTTP and WebSocket runtime, and declarative UI panels. AutoHotkey sends input from software; with Rebind Link your output leaves a real USB device as standard HID, at up to 8,000 Hz. Share a script as encrypted bytecode that only the recipient's device can run.
rb.bind("LCtrl+J", function()rb.hid.combo("LCtrl+LShift+S")
end, {
when = function()returnrb.window.get_title():find("Photoshop") ~= nilend,
})
Rebind, where the bind checks the focused window before it takes the key.
When each one fits
Use AutoHotkey whensoftware output is enough and you already have a library of AutoHotkey scripts.
Use Rebind whenyou want a typed language with coroutines and a built-in network runtime; output from a real USB device; scripts you can share as encrypted bytecode; or clients for TypeScript, Python, and Rust.
Use bothkeep your AutoHotkey library and move what should run on hardware to Rebind.
Common questions
Can I run my exact AutoHotkey scripts in Rebind?
Not as-is: scripts are Luau. Same model, so porting is quick. With Rebind Pro, RebindGPT drafts the port from a plain-English description.