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 processing rate | Per key press | Up to 8,000 Hz on hardware |
| Drive from other languages | Via plugin SDK | Official TS, Python, and Rust clients over JSON-RPC |
The same actions, on a key you already have
-- rebind: min_sdk=3.0.0
-- rebind: name=Action keys
-- rebind: permission=exec,net
-- launch an app, fire a webhook, run a macro — all from ordinary keys
Bind("F13", function() System.Exec("obs") end)
Bind("F14", function()
Net.Post("http://127.0.0.1:4455/scene", '{ "name": "Gameplay" }')
end)
Bind("F15", function() Macro.Play("intro") 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.
Do I need a Stream Deck and Rebind? No. Rebind handles the automation on the gear you already own. A Stream Deck is worth adding only if you specifically want the physical, labeled buttons.
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.