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.
| Capability | Karabiner-Elements | Rebind |
|---|---|---|
| Platforms | macOS only | Windows, macOS, Linux |
| Configuration | JSON + web-UI generator | Luau scripts + modeline targeting + AI generator |
| Focus | Keyboard-focused | Keyboard and mouse, equally |
| Output method | Software event modification | Standard USB HID from dedicated hardware |
| Hardware-isolated output | No | Yes — real USB HID from Rebind Link |
| Max processing rate | macOS event timing | Up to 8,000 Hz on hardware |
| Per-app targeting | Yes | Yes (process= / window= modeline) |
| Beyond remapping | Remapping-focused | Full runtime: Net, Screen, Window, Macro, Pipe IPC |
| Remote control from other languages | No | Official TS, Python, and Rust clients |
| Works with any USB device | Yes | Yes |
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.