explaingit

pavlobu/deskreen

20,684TypeScriptAudience · developerComplexity · 3/5ActiveLicenseSetup · easy

TLDR

Turn any device with a web browser into a second monitor for your computer using WebRTC streaming over your local network.

Mindmap

mindmap
  root((Deskreen))
    What it does
      Stream screen to browser
      Use any device as monitor
      Local network only
    How to connect
      Scan QR code
      Visit connection URL
      Same WiFi required
    Tech stack
      Electron app
      WebRTC streaming
      React frontend
    Use cases
      Extend workspace
      Present to group
      Mobile device display
    Platforms
      macOS
      Windows
      Linux

Things people build with this

USE CASE 1

Extend your workspace by using a tablet or phone as a second monitor without buying hardware.

USE CASE 2

Present slides or demos to a group by streaming your screen to multiple devices on the same network.

USE CASE 3

Control your computer from across the room by viewing its screen on a nearby device.

Tech stack

TypeScriptElectronReactViteWebRTCsimple-peer

Getting it running

Difficulty · easy Time to first run · 5min
Use and modify freely for any purpose, but any distributed modifications must also be open source under AGPL-3.0.

In plain English

Deskreen CE (Community Edition) is an Electron.js application that uses WebRTC to turn any device with a web browser into a secondary screen for your computer. It streams a live view of your computer screen to a web browser on any device on your local network. The app is available for macOS, Windows, and Linux, and has been downloaded over 2 million times since its launch. It is written in TypeScript. The Community Edition is open source under the AGPL-3.0 license but has limited features compared to a Pro version in development. Once running, the app generates a QR code or connection URL that a secondary device can scan or visit using any browser to receive the screen stream. A custom local IP address can be specified at startup using a --ip or --local-ip command-line flag, which is useful for choosing a specific network interface. The project is built on top of technologies including Electron, React, Vite, and simple-peer.

Copy-paste prompts

Prompt 1
How do I set up Deskreen to stream my screen to a specific network interface using the --ip flag?
Prompt 2
Show me how to modify the Deskreen React components to customize the connection UI.
Prompt 3
What WebRTC configuration changes would improve screen streaming latency in Deskreen?
Prompt 4
How can I build Deskreen from source and run it locally on my macOS machine?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.