Drive Rebind from a web page. This panel talks straight to the WebSocket server that remote.luau (or the older remote_access.lua) opens — no client library, no build step, no install. It’s the browser equivalent of the TypeScript, Python, and Rust remote clients: send JSON over a socket, get hardware input out. The wire protocol is identical in either mode.

Prerequisites

  1. Rebind is running with the Remote (or Remote Access) script started.
  2. The default WebSocket port is 19561.

How it works

This demo connects to the Rebind WebSocket server via the browser’s native WebSocket API. The trackpad sends hid.move deltas as you drag; the live Position readout updates from the mouse subscription; every other button sends its command and logs the result.

Connecting

Open a WebSocket to the server and subscribe to mouse events:

Sending input

Fire-and-forget HID commands (no id needed):

Reading state

Include an id and wait for the correlated response:
For the message shapes — fire-and-forget writes, id-correlated reads, and event subscriptions — see the protocol reference. For localhost throughput, see the transport numbers.
A live interactive demo that connects to your local Rebind server is available at rebind.gg/demo.