FAQ

Game streaming in the browser, explained

Everything people ask about MoonlightWeb — latency, codecs, devices, Internet play, security. Can't find your answer? Ask on GitHub.

Basics

What is MoonlightWeb?

A free, open-source (GPL-3.0), self-hosted server that streams your gaming PC to any device with a browser — phone, tablet, laptop, TV. You install one small server on the gaming PC, which captures and encodes that machine itself; every other device just opens a URL. Nothing to install on the client.

Is MoonlightWeb really free?

Yes. GPL-3.0 licensed, no accounts, no subscriptions, no paid tiers. It's self-hosted: your games stream directly from your own PC and never touch a third-party cloud.

What do I need to use it?

Two things: the gaming PC (Windows, macOS Apple Silicon or Linux) with a GPU that can encode, and any client device with a modern browser — Chrome, Edge, Safari or Firefox.

No second streaming server: MoonlightWeb captures and encodes the machine it is installed on. If you already run Sunshine, Wolf or MultiSeat elsewhere, those hosts are discovered and paired from the same page.

Do I need to install an app on my phone, tablet or TV?

No. The client is 100% web: you just open a URL in the browser. The only install is the server, on the gaming PC itself.

Devices

Can I play PC games on an iPhone or iPad?

Yes — open the URL in Safari, nothing from the App Store. Your phone becomes a full client: multi-touch trackpad (1 finger aims, 2 scroll & pinch), a native virtual keyboard with modifier keys, and game controllers with rumble — up to 240 fps with under 20 ms Wi-Fi latency.

Can I play on a smart TV?

Any device with a modern browser can be a client. On TVs, the experience depends on the built-in browser; a recent browser with hardware video decoding gives the best results, and a plugged-in or Bluetooth gamepad completes the couch setup.

Does it work with game controllers?

Yes — Xbox and PlayStation controllers work, rumble included, alongside keyboard, pointer-lock mouse, touch trackpad and a virtual keyboard.

Performance

What latency can I expect?

Under 20 ms over Wi-Fi. MoonlightWeb uses a WebRTC UDP transport with adaptive congestion control, designed for fast-paced games rather than remote-desktop use.

What resolutions, frame rates and codecs are supported?

Up to 4K HDR at up to 240 fps, with H264, HEVC and AV1 — hardware-decoded in the browser via WebCodecs. Codec options your browser can't decode are automatically greyed out. HDR displays get real HDR output.

What is Video Enhancement?

GPU upscaling and sharpening running in the browser via WebGPU (SGSRv1 + FSR1 shaders). Stream at 720p over 4G or hotel Wi-Fi and display near-1440p quality — with zero extra load on the gaming PC, since it runs client-side.

What happens on strict firewalls or hotel Wi-Fi?

The transport falls back automatically: UDP first for lowest latency, then TCP. The stream keeps working through restrictive networks — it just picks the best path available.

Internet play & security

How do I play over the Internet, away from home?

Streams are direct, peer-to-peer WebRTC between your browser and your PC. Your PC holds one outgoing connection to an introduction server and is reached at a link of its own — no public sub-domain, no exposed web ports; instances that already hold a sub-domain keep it until February 2027. You can also bring your own domain and certificate.

Is it secure? Where does my stream go?

MoonlightWeb is self-hosted: the stream goes directly from your PC to your browser, never through anyone else's cloud. Hosts are paired with a PIN, and the entry link is served over HTTPS under a certificate we maintain — nothing is issued for, or published about, your machine.

How does MoonlightWeb work under the hood?

A small C++/Qt server runs on the gaming PC. It captures a GPU surface and hands it straight to the GPU encoder in the same process that holds the WebRTC connection — no loopback network hop, no RTP, no FEC — then sends video, audio and input to browsers over WebRTC. In the browser: WebCodecs decodes, WebGPU renders, and an AudioWorklet plays Opus audio.

For a host you pair with instead, the same server embeds moonlight-common-c and speaks the GameStream protocol (RTSP/RTP/ENet) to it, then relays that stream the same way.

Why does my system warn me about the installer?

Because the installers aren't signed with a paid certificate — Windows SmartScreen and macOS Gatekeeper flag anything they don't recognise, signed or not, safe or not. The code is public, so you can read exactly what you're installing.

On Windows: click More info, then Run anyway.

On macOS, skip the warning entirely — it only applies to browser downloads:

brew install --cask linckosz/tap/moonlightweb
curl -fsSL https://moonlightweb.top/install.sh | bash

Or keep the downloaded file and allow it in System Settings → Privacy & Security → Open Anyway. Details in the macOS guide.

What data does MoonlightWeb collect?

Nothing about you, and nothing you have not agreed to. There is no account to create, and your streams are direct between your PC and your browser — they never reach us.

In the application. At first launch it asks, once, whether it may send anonymous statistics: resolution, frame rate, codec, connection type, how long a session lasted, plus the MoonlightWeb version and operating system. Never the name of your PC, your account, what you launch, or your IP address. Until you answer, nothing is sent — and saying no changes nothing else: streaming and updates work exactly the same. You can change your mind at any time in the app’s settings, where every signed-in user can also read what is counted; invited players get the same disclosure from the Cookies button on their join page.

When you play over the internet. Two things have to happen for your browser to find your PC at all, and neither is a statistic. Your PC keeps one outgoing connection to our introduction server, which therefore knows its public address and when it is online — never what you play, nor who you are. And both ends ask a STUN server, also ours, what their own public address is, because that is how two machines locate each other directly. Both are spelled out in the agreement the app shows before you turn Internet access on, and neither happens while it is off.

On this website. Visits are counted with a self-hosted, cookieless analytics tool (Umami) that we run ourselves: no cookie, no advertising, no tracking across other sites, and your IP address is not stored — it is turned into a number that changes every day. That is why you are not greeted by a cookie banner here. The only thing this site keeps in your browser is the language you picked.

Get started