Remote access,
without compromise
Remote desktop, shell, and fleet management on your own hardware. No per-seat licensing. No cloud dependency. No third party in the path.
$ git clone https://github.com/allaspectsdev/ScreenViewer.git
$ cd ScreenViewer && pnpm install
$ docker compose -f infra/docker-compose.yml up -d # postgres · redis · coturn
$ cp .env.example .env # set your secrets
$ pnpm --filter @screenviewer/db db:push
$ pnpm devwant it pre-populated? pnpm --filter @screenviewer/db db:seed → login admin@acme.test / demo1234
Unattended access
Generate an enrollment token in the portal, install the agent on any Windows, macOS, or Linux machine. It creates an RSA-4096 key pair, receives a device certificate, and holds a persistent connection to your server — always ready to connect.
Ad-hoc support zero install
Generate a one-time 6-digit code. The person you're helping opens your support URL in their browser, types the code, and shares their screen — nothing to download, nothing to install.
Connect
Click a device in the portal. WebRTC negotiates a peer-to-peer connection (your own coturn relays if NAT demands it), the screen streams over an encrypted video track, and input flows down a 60Hz binary channel. Sessions survive network blips with a 30-second ICE-restart window.
Remote desktop
WebRTC screen streaming with adaptive quality and multi-monitor switching.
Remote shell
Full PowerShell / Bash terminal via xterm.js. Gated to admin and owner roles.
File transfer + browser
Drag-and-drop chunked transfer with SHA-256 verification, jailed to the user's home.
Session recording
VP9 WebM recording with configurable retention, for compliance and audit.
SSO + MFA
SAML 2.0 and OpenID Connect with JIT provisioning. TOTP two-factor.
RBAC + audit log
Owner → Admin → Technician → Viewer. Every security event logged, exportable.
Fleet dashboard
Live device status, groups, search, system info — CPU, memory, displays, NICs.
Two agents
Full Electron desktop agent, or a lightweight Rust native agent for servers.