Remote Control
Drive physical input from any program. Rebind runs a small WebSocket server that speaks plain JSON: external code sends HID output, reads screen and input state, and subscribes to live event streams — in the language you already use, no Luau on the client side.
A web app, a Python process, a home-automation hub, or a local AI model connects to the running Rebind instance and controls a real keyboard and mouse — standard USB HID from a Teensy 4.x, or OS-level output in software mode.
Three ways to drive it
All three speak the same JSON protocol against the same server; pick whichever fits how you work.
- From the browser — open a web page that connects to the server and sends commands as you click. Good for dashboards, control panels, and a phone or tablet on the same network. See what this looks like in the browser demo.
- From your language — the official TypeScript, Python, and Rust clients wrap the protocol in typed, auto-reconnecting APIs. The recommended path for real programs. See Client libraries.
- From any language — the protocol is just JSON over WebSocket, so anything that can open a socket can drive Rebind directly. The Protocol is a single page.
Run the server
The server is one script — remote_access.lua — a reference
implementation you can read and extend locally, no SDK update needed.
- Download
remote_access.luaand copy it to your Rebind scripts directory (Windows:%APPDATA%\Rebind\scripts\). - Open Rebind → Scripts → start Remote Access.
- It binds a WebSocket server on
ws://0.0.0.0:19561(the port is a slider in the script’s settings panel). - Connect with the browser demo, a client library, or your own code.