Rebind vs Elgato Stream Deck

Every Stream Deck button, on the keys you already own.

Launch apps, run macros, switch scenes: Rebind puts every Stream Deck action on the keys you already own, on Windows and macOS.

A Stream Deck adds keys. Rebind reprograms the ones you have.

Launch apps, fire macros, switch OBS scenes, run multi-actions: every Stream Deck button is an action behind a keypress. Rebind fires the same actions from any key or mouse button you already own.

Bind a key to launch an app, run a macro, or emit a hotkey configured in OBS. Then go where a control surface can't: remap keys, build per-app layers, transform mouse movement with Rebind Link, expand text, and drive Rebind from TypeScript, Python, or Rust. Runs on Windows and macOS.

Stream Deck vs Rebind

CapabilityElgato Stream DeckRebind
Launch apps, run macros, multi-actionsElgato Stream Deckon its dedicated keysRebindbound to any key on the keyboard you already own
Switch scenes / trigger software (e.g. OBS)Elgato Stream Deckvia pluginsRebindhotkeys, or rb.net over the OBS WebSocket
Remap keys and build per-app layersElgato Stream DeckRebindfull remapping with process= / window= targeting
Transform input (mouse curves, dwell, text expansion)Elgato Stream DeckRebindkeys, buttons, and text run through your script; Rebind Link transforms mouse movement
Works with gear you already ownElgato Stream Deckadds a separate panelRebindany USB keyboard and mouse
Dedicated labeled physical keysElgato Stream DeckLCD buttons and dialsRebinduses the keys you already have
PlatformsElgato Stream DeckWindows, macOSRebindWindows, macOS
OutputElgato Stream DeckTriggers actions on the hostRebindSoftware output, or real USB HID from Rebind Link
USB report rateElgato Stream DeckNot applicableRebindUp to 8,000 Hz with Rebind Link
Drive from other languagesElgato Stream DeckVia plugin SDKRebindOfficial TS, Python, and Rust clients

F13 launches OBS.

rebind

rb.bind("F13", function() rb.system.exec_detached("obs") end)
rb.bind("F14", function()
  rb.hid.combo("F13") -- map F13 to the scene action in OBS
end)
rb.bind("F15", function()
  rb.macro.play({ { action = "type", text = "Starting soon", delay = 0 } })
end)

When each one fits

Use Rebind whenyou want those actions on keys you own, plus remaps, input transforms, and scripting on Windows and macOS.

Use a Stream Deck whenyou specifically want a dedicated surface of labeled, tactile keys in front of you for live production.

Use bothlet Rebind script the actions and the Stream Deck be the labeled surface that fires them.

Skip the panel. Every key is a Stream Deck.