Developer platform

An input layer you can build on.

Use Luau inside Rebind Engine, or call it from your own application. The client libraries and MCP server give you different ways into the same input platform.

Any program can drive physical input.

Start a loopback HTTP server inside a script. A local web app, Python process, or AI model can move the mouse and press keys. Net.Listen binds to 127.0.0.1, not the LAN. Permission-gated by the modeline. Hardware output ships through Rebind Link; every example here also runs in software mode.

-- rebind: min_sdk=3.0.0
-- rebind: name=HTTP Bridge
-- rebind: permission=net

local server = nil

function OnStart()
  server = Net.Listen(8080, function(req)
    local cmd = JSON.Parse(req.body)
    HID.Move(cmd.dx, cmd.dy)
    if cmd.click then
      Run(function() HID.Press("Mouse1", 20) end)
    end
    return { status = 200, body = "ok" }
  end)
end

function OnStop()
  if server then server:Stop() end
end

Keep state. React to context.

The Luau SDK covers HID output, live input state, macro record and replay, pixel sampling, window control, HTTP and WebSocket servers, sandboxed file I/O, shared-memory IPC, timers, and declarative config panels. Scripts respond to lifecycle and input hooks, declare metadata in modelines, and run concurrent tasks with Run, Sleep, and cancellable handles. Full namespace and hook reference: docs.rebind.gg/reference/sdk-reference.

Drive Rebind from your own code.

A local RPC API served by the Rebind app, with clients for TypeScript, Python, and Rust.

// npm install @rebind.gg/client-ts
import { RebindRemote } from "@rebind.gg/client-ts";

const r = new RebindRemote("ws://127.0.0.1:19561");
await r.connect();

r.hidMove(30, -5);
r.hidPress("Mouse1", 20);
r.hidType("hello");

const { x, y } = await r.systemMouse();
const px = await r.screenPixel(x, y);
r.close();

The Python and Rust clients expose the same surface. Install commands and full API docs: client libraries.

Developer platform

Run your first script in a few minutes.

Explore examplesRebindGPT

typescript · python · rust