What is Rebind
Rebind is a free engine that makes your keyboard and mouse scriptable. The engine captures your input, runs every keypress and mouse movement through your Luau scripts at up to 8,000 Hz, and outputs the result. Add the Rebind Link — a tiny USB dongle — and output leaves through a real USB device your computer sees as a standard keyboard and mouse. Because the engine owns the input pipeline, timing is consistent, vendor-agnostic, and the same scripts run on Windows, macOS, and Linux.
You can run it two ways. Software mode emits output through the OS input APIs — no hardware, free to use. Hardware mode routes the output through a small dedicated device (a Teensy 4.x) as real USB HID, for deterministic timing and isolation from the host. The script is identical either way; only the transport changes. See How it works.
What you can do
- Program input with a real language. The runtime is Luau (a fast, typed Lua) on a Rust core — not a fixed feature list. Remap keys, transform mouse movement, run macros, sample the screen, drive windows, and call out over HTTP.
- Drive it from anywhere. A built-in HTTP and WebSocket server lets any program — a web app, a Python process, a home-automation hub, a local model — send input over the wire, with official TypeScript, Python, and Rust clients.
- Use any device, on any OS. Any USB keyboard and mouse you already own; the same scripts move with you and survive reinstalls.
- Start without code. Describe what you want to RebindGPT and get a working script, or install one from the marketplace — then drop into the SDK when you want more.
Who it’s for
- Developers and makers — drive physical input from code: automation, AI-vision sidecars, robotics, hardware-in-the-loop testing.
- Accessibility — dwell-click, sticky keys, tremor smoothing, one-handed layouts, at the hardware level, in every app.
- Power users — text expansion, per-app shortcuts, remaps, and macros — cross-OS and cross-vendor.
How Rebind compares
Factual feature comparison against the tools people reach for. (Karabiner-Elements is the standard macOS keyboard customizer; vendor software is the app that ships with Logitech / Razer / Corsair gear.)
| Rebind | AutoHotkey | Karabiner | Vendor software | Stream Deck | |
|---|---|---|---|---|---|
| Platforms | Windows, macOS, Linux | Windows | macOS | Windows (some macOS) | Windows, macOS |
| Scripting | Luau runtime | AHK language | JSON rules | Limited (G Hub: Lua) | Action presets |
| Works with any keyboard & mouse | Any USB device | Any device | Keyboard (mouse limited) | That brand only | Adds a separate keypad |
| Hardware-isolated output | Yes (Teensy) | No (software) | No (software) | That brand only | — |
| HTTP + WebSocket (client & server) | Yes | No | No | No | No |
| Coroutines | Yes | Limited | No | No | No |
| Pixel sampling | Yes (Win/macOS) | Yes | No | No | No |
| Window control | Yes | Yes | App conditions | No | No |
| Macro record / play | Yes | Yes | No | Basic | Action presets |
| Shared-memory IPC | Yes (Windows) | No | No | No | No |
| Remote SDKs (TS / Python / Rust) | Yes | No | No | No | No |
| Declarative config UI | Yes | No | GUI + JSON | App | Yes |
| Per-app activation | Yes (modeline) | Yes | Yes | Profiles | Profiles |
AutoHotkey is the closest in scripting power, but it is Windows-only software with no hardware output — see Coming from AutoHotkey. Karabiner-Elements is excellent on macOS, but macOS-only and keyboard-focused. Vendor software gives you hardware output, but only for that brand’s gear, and a macro recorder rather than a language. A Stream Deck is a great tactile control surface — it adds dedicated keys rather than transforming the keyboard and mouse you already use. Rebind is the one with a full scripting runtime, hardware-isolated output, and cross-platform support on any USB device.
Continue to the Quickstart.