Peer-to-peer screen sharing

Their screen,
at the resolution it actually is.

Most tools shrink your screen before they encode it. Peerglass doesn't: up to four viewers it sends your display at its native resolution, straight from your browser to theirs. Send a link, and anyone watches in theirs. No install, no account, nothing stored.

Sharing needs a desktop browser. Watching works anywhere.

Built for watching a coding agent from your phone.

peerglass.app/share

You're live

peerglass.app/v/h4gzd8er Copy
Scan to watch on your phone

Any camera. No app, no account.

2 watching · peer-to-peer · 2560×1440 · 8 fps
You share from any desktop browser
Peerglass h4gzd8er
PASS  auth/token.spec.ts
PASS  auth/session.spec.ts
FAIL  auth/refresh.spec.ts

  ● refresh() rotates the token
    - Expected  "rt_9f3c1a"
    + Received  "rt_9f3c1a "
      at refresh.spec.ts:41:22
ControlFullscreen
They watch in any browser — and can still read it
The difference

A stack trace you have to squint at
is not a shared screen.

The line number dissolves because it was thrown away before the encoder ever saw it: most tools downscale your screen to a fixed size first, so a 1440p editor arrives as 1080p and every letterform is resampled. Peerglass puts no resolution constraint on capture — peer-to-peer, the encoder gets the grid your display actually has. And when the network tightens it spends frames rather than pixels, so the picture goes stale instead of soft. Text survives. Motion is what gives.

Downscaled, then restored

2560×1440 → 1792×1008 → back · drawn live, in your browser

Native resolution

2560×1440 · untouched

A live demonstration of resampling, not a capture and not a claim about any particular product: the left panel is the same text genuinely downscaled and restored, so the softening is the resampler's, not a filter. What a specific tool does to your screen is a question for the meter that ships inside Peerglass — open any session with ?measure=1.

Sub-second by construction

Small sessions never touch a media server. The stream goes straight from your machine to theirs — the shortest path there is.

Nothing to install

You share from a browser tab. They watch in a browser tab. A link is the entire onboarding.

The server never sees your screen

Peer-to-peer media is encrypted between the two endpoints and never reaches us — we broker the introduction and get out of the way. Sessions that grow past four viewers relay through a broadcast server instead.

How it works

Direct while it can be.
Scaled when it has to be.

One viewer or four, your machine sends to them directly — lowest latency, no server in the media path. When a fifth arrives, the session promotes itself onto a selective forwarding unit mid-stream: you encode once, the server fans it out, and nobody watching notices the handover.

PEER-TO-PEER · up to 4 You viewerviewer viewerviewer 4 encodes · no media server · lowest latency BROADCAST · 5 and up You SFU viewerviewer viewer· · · 1 encode · server fans out · scales past the room

Record without a server

Recording captures the source, not the compressed stream — so it is full quality, works in either mode, and costs nothing to host.

Point at their screen

Grant a viewer control and their cursor appears on your display. Send text straight to the host, ready to paste.

Small enough to trust

One Node process and a static folder run the whole service. Peer-to-peer, no vendor sits in your media path — including us.

Reach

Watching works everywhere.

Any browser on any device can watch a session — that is the whole point of a link. Sharing out is where the web still has an edge: no mobile browser can capture its own screen, so phones present through a small native app instead. We would rather say that than pretend otherwise.

PlatformShare your screenWatch a session
Windows · macOS · LinuxBrowserBrowser
iPhone · iPadPeerglass appBrowser
AndroidPeerglass appBrowser
For developers

Two calls, and it is
inside your product.

The same engine, as an SDK. Your backend mints a scoped token, your frontend starts a session, and usage comes back in participant-minutes. Or drop an iframe in and skip the JavaScript entirely.

your-app.js
// The SDK follows a session from peer-to-peer onto the SFU by itself.
import { Peerglass } from 'https://peerglass.app/sdk/peerglass.js';

const pg = new Peerglass({ server: 'https://peerglass.app', token });

const session = await pg.share();
session.on('viewers', n => setBadge(n));

// …and on the other side of your app
await pg.view({ room: session.room, element: myDiv });

Tokens, not API keys

Your server signs a short-lived token scoped to present or view — optionally to a single session. The secret never reaches a browser.

Metered honestly

Participant-minutes per key, attributed to whoever hosted the session. Read them over the API and bill however you like.

One line, if you prefer

An iframe embed renders a live session with no JavaScript at all. Useful when the surrounding app is not yours to change.

Pricing

Priced for the link,
not the seat count.

Sharing a screen should not require a procurement conversation.

Free
$0
  • Up to 4 viewers per session
  • Unlimited sessions, no time limit
  • No account to share, none to watch
  • Remote pointer and prompt relay
  • Recording, saved to your own disk
  • 2-minute reconnect window if your connection drops
Start sharing

Peer-to-peer costs us nothing to carry, so this stays free rather than becoming a trial.

Pro
$19 / month
  • Up to 12 viewers, carried by our broadcast servers
  • Everything in Free
  • 5-minute reconnect window if your connection drops
  • Priority on new features
Go Pro

Or $180 a year. Cancel any time; the plan runs to the end of the period you paid for.

Team
$49 / month
  • Up to 25 viewers, carried by our broadcast servers
  • Everything in Pro
  • 10-minute reconnect window if your connection drops
Go Team

Or $470 a year. Cancel any time; the plan runs to the end of the period you paid for.

Embed
Talk to us
  • The SDK inside your own product
  • Scoped tokens and a usage API
  • Priced on participant-minutes
Get in touch

The SDK is built and documented; pricing is set per customer while we learn what the shapes are.

Bought a plan on another device? Restore it here. Plans live in the browser you activated them in.

Send a link.
Show them the pixels.

No sign-up to start. Your first session is one click away, and the person watching does not need anything at all.