Rebind

Rebind vs Karabiner-Elements

Remapping that follows you off macOS.

Karabiner-Elements is excellent for remapping on macOS. Rebind remaps your keyboard and mouse on Windows, macOS, and Linux — with standard USB HID output and a full scripting runtime.

Where Rebind extends what Karabiner does.

Karabiner-Elements is excellent on macOS — Simple and Complex Modifications, per-device rules, profiles, a web-UI generator, free and open source. If you live on macOS and remap your keyboard, it's hard to beat.

Rebind is for the moment you need more reach. The same remaps run on Windows and Linux, mouse transforms sit alongside keyboard, and output leaves through a dedicated USB device as standard HID. Underneath is a full scripting runtime — 26 SDK namespaces covering HTTP, WebSockets, screen sampling, window control, macros, and shared-memory IPC. Many people keep Karabiner on macOS and add Rebind for the cross-OS and hardware-backed work.

Karabiner-Elements vs Rebind

Both are real tools. The angle is reach.

CapabilityKarabiner-ElementsRebind
PlatformsmacOS onlyWindows, macOS, Linux
ConfigurationJSON + web-UI generatorLuau scripts + modeline targeting + AI generator
FocusKeyboard-focusedKeyboard and mouse, equally
Output methodSoftware event modificationStandard USB HID from dedicated hardware
Hardware-isolated outputNoYes — real USB HID from Rebind Link
Max processing ratemacOS event timingUp to 8,000 Hz on hardware
Per-app targetingYesYes (process= / window= modeline)
Beyond remappingRemapping-focusedFull runtime: Net, Screen, Window, Macro, Pipe IPC
Remote control from other languagesNoOfficial TS, Python, and Rust clients
Works with any USB deviceYesYes

Define it once, run it on every OS.

The same file runs on Windows, macOS, and Linux:

-- rebind: min_sdk=3.0.0
-- rebind: name=Caps to Ctrl
-- rebind: process=figma.exe

function OnDown(key)
  if key == "CapsLock" then
    HID.Down("LCtrl")
    return false  -- block CapsLock
  end
  return true
end

function OnUp(key, duration)
  if key == "CapsLock" then
    HID.Up("LCtrl")
    return false
  end
  return true
end

When each one fits

Use Karabiner-Elements when you live on macOS, focus on keyboard remapping, and want a mature open-source tool with a web-UI generator. It's excellent and free.

Use Rebind when you also work on Windows or Linux and want one config everywhere, want mouse transforms alongside keyboard, or want automation beyond remapping — HTTP, screen, window, macros.

Use both — keep Karabiner on macOS and add Rebind for cross-OS and hardware-backed work.

Common questions

Does Rebind run on Windows and Linux? Yes. Remapping, automation, and HID output on Windows 10/11, macOS, and Linux x86_64. Pipe and Registry are Windows-only — check the SDK reference.

Can I import my Karabiner JSON? No direct import. The concepts map cleanly, and RebindGPT can draft a remap from a plain-English description.

Does Rebind remap the mouse too? Yes. Keyboard and mouse are first-class, including relative movement and button transforms.

Take your remaps cross-platform.