AAA dbfa26a778 fix(client): accept native capability combinations in loopback gate
Keep the v5 loopback gate strict on protocol and identity while accepting valid native capability combinations. This fixes false Client-not-found results for capable Windows packages without changing runtime behavior.
2026-09-04 04:00:51 +08:00

Screener

Screener is a private, low-latency screen-sharing tool for one game player and up to 20 authenticated friends. Web Viewers need no installation. Media is automatic and P2P-first, with bounded Browser relay and one dedicated LiveKit SFU/UDP fallback rather than an always-SFU conference topology.

Project memory is the compact product map. Current status owns the exact source and production state; this README intentionally does not mirror release details.

Local Development

Node.js 24 and npm 11 are required.

npm ci
npm run dev

Open http://localhost:8787. The development server listens on 0.0.0.0, so a phone on the same LAN may use http://<computer-lan-ip>:8787. Screen capture must remain on localhost or HTTPS. Set PUBLIC_BASE_URL and ALLOWED_ORIGINS when generated invitations need a different LAN origin.

Production requires an independent visible-ASCII SITE_ACCESS_PASSWORD; local development and tests may leave it empty. Cross-network setup is documented in self-hosting and configuration reference. Never commit real credentials.

Run complete automated validation with:

npm run check

Documentation

S
Description
Free, open-source screen sharing for friends. P2P-first, with browser viewing, a desktop app and optional self-hosting.
https://piik.tv
Readme MIT
9.7 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 46.2%
Go 36.5%
C++ 5.9%
JavaScript 5%
CSS 2.5%
Other 3.9%