Install guide · macOS

Stream your Mac to any browser

MoonlightWeb is a free, open-source (GPL-3.0) server that streams your Mac to any device with a browser. One download on the Mac that runs the games. Every other device just opens a URL.

What you need

Installation, step by step

Download the installer

Grab the arm64 .pkg from the releases page.

Run the guided installer — on the Mac that runs your games

The setup wizard walks you through the configuration, including the optional Internet link (remote streaming sessions, off by default). When it finishes, the server is running.

macOS will then ask you to allow Screen Recording for MoonlightWeb — without it, this Mac cannot stream its own screen. It is the first of two permissions only you can grant; the wizard opens the right settings pane for you.

Open a browser on any device

On the Mac itself: https://localhost. From another device on your network: your LAN IP. Playing from outside your network: turn on Internet access and the app gives you a remote entry link straight to this machine. You can also bring your own domain and certificate.

Your Mac is already there

This Mac is listed straight away, with one card per screen — nothing to pair, no PIN. Other hosts on your network (Sunshine, Wolf, MultiSeat) are discovered by mDNS next to it: those pair once — for Sunshine, by typing the PIN MoonlightWeb shows into Sunshine's web page — and the pairing is remembered forever.

Press play

Pick a screen, a game or the full desktop. iPhone, iPad, another laptop, a TV — anything with a browser becomes a client.

⬇ Download for macOS

What macOS asks you to allow

Apple lets no installer grant these on your behalf — every streaming server on macOS asks for the same ones. There are two, and MoonlightWeb asks for both at its first launch — right after the install, while you are still in front of the Mac:

Along the way the installer also asks for your administrator password (the app goes into /Applications) and, on its first page, an Allow on “this package will run a program to determine if the software can be installed” — that program is the installer's own Internet page. Nothing else: the installer already allows MoonlightWeb through the macOS firewall, so no incoming-connection prompt appears, and no second streaming server is installed.

Granted once, kept afterwards. Releases are signed with a stable certificate, so updating MoonlightWeb does not ask for these permissions again.

One command instead — and no warning

MoonlightWeb is free and open source, which also means it isn't signed with a paid Apple Developer ID. macOS therefore greets a downloaded .pkg with “cannot be opened because it is from an unidentified developer”. That check only applies to files a browser downloaded, so either of these installs the very same package with nothing to click through:

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

Both ask for your administrator password, install into /Applications and open the setup wizard — same installer, same result, one step less.

Troubleshooting

macOS refuses to open the installer: “unidentified developer”

Expected, and harmless: clearing that dialog requires a paid Apple Developer ID. Use one of the two commands above and it never appears. If you'd rather keep the file you already downloaded, on macOS 15 Sequoia and newer double-click it once, let it be refused, then open System Settings → Privacy & Security, scroll to the bottom and click Open Anyway — the old Control-click → Open shortcut no longer works. The terminal equivalent is xattr -dr com.apple.quarantine ~/Downloads/moonlightweb-*.pkg.

The picture is there, but the mouse and keyboard do nothing

That is the Accessibility permission, and macOS drops injected clicks and keystrokes in complete silence when it is missing. Tick MoonlightWeb in System Settings → Privacy & Security → Accessibility, then quit and reopen the app.

The switch is already ticked and it still doesn't work

macOS attaches a permission to an app's signature, not to its name — so a leftover entry from an older or differently-built copy stays ticked while the running app is refused. Clear it in Terminal and let the app ask again:

tccutil reset ScreenCapture com.moonlightweb.server
tccutil reset Accessibility com.moonlightweb.server

Reopen MoonlightWeb, and tick it in the two panes when it reappears there. For a pre-release build, the identifier is com.moonlightweb.server.dev.

The host doesn't appear in the browser

Make sure the client device is on the same network as the Mac. The installer allows MoonlightWeb through the macOS firewall itself, but a third-party firewall or a guest Wi-Fi that isolates its clients will not. You can also add a host manually by IP.

Playing on iPhone or iPad

Open the same URL in Safari — no App Store download needed. You get a multi-touch trackpad and a native virtual keyboard with modifier keys; a Mac host receives no game controller (macOS allows no virtual gamepad).

Stream feels choppy on a weak connection

Lower the streamed resolution and enable Video Enhancement: the stream is upscaled and sharpened on the client's GPU (WebGL2 or WebGPU running SGSRv1 + FSR1), so a 720p stream looks close to 1440p.

Restrictive network? MoonlightWeb falls back automatically (UDP → TCP), so it keeps working through strict firewalls and hostile hotel Wi-Fi.

Keep reading