Command,don't configure.
Rewrite any key or click in Luau. Add Rebind Link to drive the mouse and gamepads as real USB.
3.21.3 / windows / macos
sdk docs(opens in a new tab)-- rebind: min_sdk=3.11.0-- rebind: name=Remap-- rebind: version=1.0.0-- input from controllerrb.on("axis", function(axis, value) local d = math.round(value * 10) -- output as mouse if axis == "LeftX" then rb.hid.move(d, 0) end if axis == "LeftY" then rb.hid.move(0, d) endend)-- input from keyboardrb.bind("Ctrl+B", rb.async(function() rb.hid.typewriter("brb, two minutes", 90)end))
Left stick moves the mouse
game controllers / remap buttons, sticks and triggers in luau / pass a controller through rebind link as a joypad / needs hardware mode and a joypad usb profile / read the controller docs /
Rebind is a crowbar for the USB stack.
- Your firmware has opinions. Your Luau scripts outrank them.
- Vendor software lets you select behavior. Rebind lets you write it.
- The defaults came preinstalled. Authority did not.
Scripts run on your computer and decide what every key, click and button does. With Rebind Link, their output leaves a real USB device.
How it works
Run Luau scripts on hardware wires.
The fast, typed Lua from Roblox. Think of an AutoHotkey macro that runs on Windows and macOS, sees input before your apps do, and can drive real USB hardware.
-- rebind: min_sdk=3.9.0 -- rebind: name=Push to Talk -- rebind: version=1.0.0 rb.on("down", function(key) if key == "Mouse4" then rb.hid.down("F13") return false end return true end) rb.on("up", function(key) if key == "Mouse4" then rb.timer.after(250, function() rb.hid.up("F13") end) return false end return true end)
Hold the side button to talk. Let go and the mic stays open a quarter second longer, so your last word never gets clipped.
-- rebind: min_sdk=3.9.0 -- rebind: name=Copy and Paste -- rebind: version=1.0.0 rb.bind.remap("Mouse4", "LCtrl+C") rb.bind.remap("Mouse5", "LCtrl+V")
Each side button holds its shortcut for as long as you hold the button. Only the two bound buttons are taken; every other key stays a real key.
-- rebind: min_sdk=3.9.0 -- rebind: name=Mouse Inverter -- rebind: version=1.0.0 -- rebind: mouse_block=true rb.on("move", function(dx, dy) rb.hid.move(-dx, -dy) return false end)
Mouse movement needs hardware mode, with Rebind Link or BYOH. In software mode Rebind refuses to start this script.
-- rebind: min_sdk=3.11.0 -- rebind: name=Joypad Remap -- rebind: version=1.0.0 -- rebind: hardware_only=true rb.bind.remap("PadA", "PadB") rb.bind.remap("PadB", "PadA") rb.on("axis", function(axis, value) if axis == "LeftY" then rb.hid.axis("LeftY", -value) return false end end)
Needs hardware mode and a Rebind Link whose USB profile includes a joypad. The game sees the joypad, so the remap holds in every game.
Script marketplace
One click, new behavior.
Install a script and it works: window snapping, pointer tuning, remote control. From the app or the command line, no Luau required.

gaming
GCD Goblin for WoW Forever
World of Warcraft turbo keypress for Rebind: hold a key to auto repeat it, record a rotation and replay it with one key, plus anti-AFK.
streaming
Keystroke Overlay
A keyboard and mouse on screen that light up as you press them, for streams, recordings, and tutorials.
apps
Deskling: A Tiny Life
A cozy pixel neighbor with a house, routines, and a mind of their own — your stream's smallest main character.
utility
Dev Spy
See the pointer, window, and color under it while you write a script, record observations and macros, and try AI calls.
apps
Pocket Deck
Use your phone as a trackpad, media remote, and clipboard bridge.
productivity
break-coach
Timed posture and eye-break reminders with a calm countdown HUD.
gaming
Controller Map
A live controller tester that shows buttons, axes, and Rebind input names.
productivity
Hydration Tracker
A daily water counter with a compact HUD and one-key logging.
Rebind Link
MITM yourself.
Every keypress, click, and movement passes through your code before any app sees it.
8000hz
Eight times the report rate of a 1000hz gaming mouse.
Optional hardware for the free software: your scripts leave as a real USB keyboard and mouse, and as a joypad when its USB profile includes one.
Already have a Teensy? Rebind BYOH
Reviews from the Rebind Discord.
Excerpts from reviews posted in the Rebind Discord(opens in a new tab), quoted as written.
Amazing developer who delivered a solid base for other developers to work upon / integrate it into their own code.
Integration with my software was extremely easy and thanks to the scripting engine, I was able to add additional functionality with ease. Overall a very smooth and professional experience, with a developer that goes above and beyond.
The scripting is amazing, easy to generate or make on your own.
Everything works very smoothly, and the whole process was quick and easy. The developer is also very patient and always helps me whenever I need it.
I've used it for multiple purposes, and that's what I keep coming back to: the possibilities really depend on your own creativity and how far you're willing to experiment.
Your peripherals.Your rules.
Rebind is free. Install it, start from an example, and write the behavior you want.
-- snoxsolutions on Discord / Jul 2026
-- gavinweiland on Discord / Jul 2026
-- toxic.0420 on Discord / Sep 2026
-- itzchill_ on Discord / Oct 2026