A Stream Deck adds keys. Rebind reprograms the ones you have.
A Stream Deck is a panel of dedicated LCD buttons you press to launch apps, fire macros, switch OBS scenes, run multi-actions, and trigger plugins. Every one of those is an action behind a keypress, and Rebind fires the same actions from any key on the keyboard and mouse you already own.
Bind a key to launch an app, run a macro, or POST to a local service like OBS's WebSocket. Then go where a control surface can't: remap keys, build per-app layers, transform mouse movement, expand text, and drive everything from TypeScript, Python, or Rust: the same scripts on Windows, macOS, and Linux. No second gadget on your desk.
The one thing a Stream Deck gives you that Rebind doesn't is the dedicated, labeled physical keys themselves. If you want that tactile surface, the two work side by side. Rebind can run the actions behind it.
Stream Deck vs Rebind
Elgato updates its lineup over time; check current models before buying.
| Capability | Elgato Stream Deck | Rebind |
|---|---|---|
| Launch apps, run macros, multi-actions | Yes: on its dedicated keys | Yes: bound to any key on the keyboard you already own |
| Switch scenes / trigger software (e.g. OBS) | Yes: via plugins | Yes: Net HTTP/WebSocket call from a script |
| Remap keys and build per-app layers | No | Yes: full remapping with process= / window= targeting |
| Transform input (mouse curves, dwell, text expansion) | No | Yes: every keypress and mouse move runs through your script |
| Works with gear you already own | No, adds a separate panel | Yes: any USB keyboard and mouse |
| Dedicated labeled physical keys | Yes: LCD buttons and dials | No, uses the keys you already have |
| Platforms | Windows, macOS | Windows, macOS, Linux |
| Output | Triggers actions on the host | Standard USB keyboard and mouse (real HID with Rebind Link) |
| Max output rate | Per key press | Up to 8,000 Hz USB report rate with Rebind Link |
| Drive from other languages | Via plugin SDK | Official TS, Python, and Rust clients |
The same actions, on a key you already have
-- rebind: name=Action keys
-- rebind: version=1.0.0
-- rebind: min_sdk=3.0.0
-- rebind: permission=exec
-- rebind: permission=net
-- launch an app, fire a webhook, run a macro, all from ordinary keys
Bind("F13", function() System.ExecDetached("obs") return false end)
Bind("F14", function()
Net.Post("http://127.0.0.1:4455/scene", '{ "name": "Gameplay" }')
return false
end)
Bind("F15", function() Macro.Play("intro") return false end)
When each one fits
Use Rebind when you want those actions on the keys you already have (launches, macros, scene switches, webhooks) plus remaps, input transforms, and scripting a panel can't do, across Windows, macOS, and Linux.
Use a Stream Deck when you specifically want a dedicated surface of labeled, tactile keys in front of you for live production.
Use both: let Rebind script the actions and the Stream Deck be the labeled surface that fires them.
Common questions
Can Rebind do what my Stream Deck does? Yes: launching apps, running macros, multi-step actions, and triggering software over HTTP or WebSocket all work, bound to any key on your existing keyboard. What a Stream Deck adds on top is the dedicated panel of labeled physical keys.
Does Rebind work on Linux?
Yes. Rebind runs on Windows 10/11, macOS on Apple Silicon and Intel, and Linux x86_64, the same scripts on all three. Pipe and Registry are Windows-only.