Skip to main content
Rebind puts a programmable layer between your input devices and your computer. Every event passes through your code, which can change it or let it through untouched. The result reaches your PC as standard USB input (hardware mode) or through the OS input APIs (software mode). Core input is cross-platform; some integrations vary by OS.

The three-stage pipeline

Input flows through Rebind in three stages: capture → script → output. The engine, and your scripts with it, runs on your computer in both modes; the diagram shows hardware mode. Your keyboard and mouse connect to your PC as normal. In software mode, Rebind captures input via OS event hooks. In hardware mode, your devices are USB-forwarded into a sealed, isolated capture environment before their events reach the host engine. Each event fires your hooks (key handlers, mouse-move handlers, your tick loop, your Binds) in the Luau engine, where you remap keys, transform movement, and automate. In hardware mode the result is encoded out as standard USB HID, and your operating system sees an ordinary peripheral. You write and run these scripts in the Rebind UI.

Software vs hardware

Scripts use the same runtime in both modes, but some require hardware capture or output. Software mode emits output through your operating system’s input APIs: SendInput on Windows, CGEvent on macOS, and a virtual uinput device on Linux. It is free and requires no Link. Hardware output routes the result through the Rebind Link device as real USB HID. A script declares its tick rate with a modeline, and on Windows, Rebind raises the system timer resolution to help the loop hold its declared rate. Rebind requires Link for OnMove and mouse_block scripts. See the Rebind Link product page for the hardware. This does not mean that other software or kernel drivers cannot transform mouse movement.
Next, check Platforms for the behavior available on your operating system, then follow the Scripting Guide.