Download Rebind

Features

Program your USB passthrough in Luau, not firmware

Your keyboard, mouse, and controller stay plugged into the computer. Rebind runs your Luau there and sends the result out of one USB device: a Rebind Link, or a Teensy 4.0 or 4.1 you flash from the app.

By the team behind RebindSponsored by RebindUpdated October 2026 / 6 min read
Download Rebind free Free app for Windows and macOS. Hardware mode needs Rebind Link ($140) or Rebind BYOH ($90 plus your own Teensy 4.0 or 4.1), one payment each. A custom VID and PID, or a joypad, needs a USB identity flash, paid once per device.
A Teensy board connected by USB cable, on a desk mat between two mice
A Teensy board on a desk. Rebind BYOH runs on the Teensy 4.0 and 4.1.

The usual fix is firmware

Build your own passthrough and you end up writing firmware. A Teensy can present as a USB keyboard, mouse, or joystick through Teensyduino, and a 32u4 or SAMD Arduino as a keyboard and mouse through its bundled Keyboard and Mouse libraries.

That works. The cost is the loop: edit C++, rebuild, reflash, test. And logic that needs the computer, such as which app has focus or a reply from an HTTP API, has no way to run on the board.

Move the logic to the computer

A passthrough has three parts: input in, your logic, USB reports out. Rebind keeps the first two on the computer and gives the third to a small USB device. Rebind Link ships flashed. Rebind BYOH is the same firmware and license for a Teensy 4.0 or 4.1 you supply.

In hardware mode you attach each keyboard, mouse, and controller in the app. Your scripts see their input, and the operating system receives the result from the Rebind device instead of the original. The device runs no scripts, so a script change is a save, not a flash.

The device takes the USB identity you give it: vendor and product IDs, manufacturer and product names, serial number, and which of keyboard, mouse, and joypad it presents, in what order.

Your mouse on the right stick

This script turns mouse movement into the joypad's right stick. It is trimmed from the controllers recipe in the docs, which also maps WASD to the left stick and clicks to the triggers.

--[[
  rebind: min_sdk=3.11.0
  rebind: name=Mouse to Stick
  rebind: version=1.0.0
  rebind: hardware_only=true
  rebind: mouse_block=true
  rebind: permissions=none
  rebind: tick_rate=125
]]

local GAIN = 0.35
local acc_x, acc_y = 0, 0

rb.on("move", function(dx, dy)
  acc_x += dx
  acc_y += dy
  return false
end)

rb.on("tick", function(dt_ms)
  if dt_ms <= 0 then
    return
  end
  rb.hid.axis("RightX", math.clamp(acc_x / dt_ms * GAIN, -1, 1))
  rb.hid.axis("RightY", math.clamp(acc_y / dt_ms * GAIN, -1, 1))
  acc_x, acc_y = 0, 0
end)

rb.bind("F10", function()
  rb.script.exit("F10 pressed")
end)

While it runs, the mouse is captured and the script holds the right stick. F10 stops it, and Left Ctrl + Left Alt + K (Left Control + Left Option + K on a Mac) stops every script.

RebindFree app / Windows and macOS / Luau. Hardware: View Rebind BYOH or View Rebind Link

Download Rebind free

Before and after

You want toFirmware you writeRebind, hardware mode
Change the logicRebuild and reflashSave the file
Swap two controller buttonsWrite the HID handling yourselfrb.bind.remap("PadA", "PadB")
Bind a key on one keyboard onlyTrack each device in your USB host coderb.bind(key, fn, { device = "left" })
Change the VID and PIDEdit the descriptor, rebuildFlash identity in the app

Set it up

  1. Download Rebind, free on Windows and macOS. Key scripts run in software mode right away.
  2. Get a device: Rebind Link ($140, ships flashed) or Rebind BYOH ($90, for your own Teensy 4.0 or 4.1).
  3. For BYOH, open Devices and press Flash firmware. For either device, activate with your code, then switch to hardware mode under Transport in Settings.
  4. For a controller or your own IDs, press Flash identity in Devices and check Joypad. An identity is paid once per device; restoring the default is free.
  5. Attach each keyboard, mouse, and controller in Peripherals, then run your script.

The other routes, fairly

Your own firmware
Fully yours, and the board is the only cost. Every change is a rebuild and a flash, and the logic sees only what the board sees.
Software mode only
Free, no device. Keys and buttons only: no mouse movement changes, no controllers, no per-device binds.

What it won't do

  • Controllers and joypad output need hardware mode and a USB identity that includes a joypad. The default identity has none.
  • The joypad is a standard HID gamepad, so games that read only XInput do not see it.
  • Rumble, motion sensors, and touch position do not pass through.
  • BYOH runs on the Teensy 4.0 and 4.1 only.
  • On macOS in hardware mode, the built-in keyboard and trackpad do not reach scripts. Attach external devices.

Questions

Which controllers get named buttons?

Wired and dongle Xbox controllers, DualShock 3 and 4, DualSense, and Switch controllers get position names such as PadA. Others report Joy1 to Joy32 in their own order.

Is hardware mode a subscription?

No. A Rebind Link or BYOH is one payment, and activation is permanent. Rebind Pro is separate and covers the AI builder and Pro scripts.

Do I need the device to start?

No. Install the free app and write key scripts in software mode. Add the device when a script needs the mouse, a controller, or your own USB identity.

Write the logic. Let the board send it.

Install Rebind, write a script, and add a Link or your Teensy when you need hardware output.

Download Rebind free