Skip to content
Rituraj edited this page Aug 10, 2026 · 18 revisions

Welcome to Rein

Rein is an open-source, cross-platform remote input system that transforms any phone, tablet, or browser into a powerful wireless controller for your desktop. Using modern WebRTC-based communication and native platform input drivers, Rein delivers low-latency trackpad, keyboard, clipboard, and live screen sharing entirely over your local network without requiring cloud services or external accounts.


Table of Contents

Section Description
Architecture Overview End-to-end system design, werift WebRTC architecture, and system data flow
Server Architecture Node/Nitro server architecture, WebRTCManager, and SseTransport log streaming
Signaling Architecture WebSocket signaling (/ws), single RTCPeerConnection, and ICE exchange
Input System Gesture recognition, dual DataChannels, and cross-platform input injection
Screen Streaming GStreamer H.264 pipeline, local UDP relay, and platform capture providers
Platform Drivers Linux (/dev/uinput via Koffi FFI), macOS (CoreGraphics), and Windows drivers
Authentication & Security Authentication flow, token persistence, and local security model
Electron Wrapper Desktop application architecture, single instance lock, and packaging
Development Guide Building, running, testing, and contributing to Rein
Configuration Reference Available configuration options and runtime settings
HTTP & DataChannel API Complete REST, WebSocket (/ws), and DataChannel protocol reference

Clone this wiki locally