Run Brave Origin Nightly on Windows. Free. Portable. Zero hassle.
Brave Origin is Brave's minimalist browser — currently Linux-only. This repo brings it to Windows users in a single dark-themed window with live logs, an in-app terminal, and one-click updates. No Docker, no VMs, no Linux knowledge.
No installer • No registry • No admin rights • Offline after first run
- Download Brave.zip (~29 MB) from the latest Release.
- Right-click the zip → Extract All… to any folder.
- Open that folder → double-click
Brave.exe.
First launch: ~5 min (imports a minimal Ubuntu rootfs into WSL, apt-installs TigerVNC/noVNC/openbox, downloads the latest Brave Origin Nightly .deb from GitHub). Every launch after: ~10 seconds.
Just want to update the launcher binary in an existing install? Grab Brave.exe (~616 KB) from the same Release and replace the one in your extracted folder. For a fresh install you always want the full
Brave.zip.
A dark tabbed launcher window with four tabs.
Brave — the real Brave Origin Nightly, piped through noVNC. Click around normally.
Logs — live tail of every service (setup, start, update, Xtigervnc, openbox, brave, websockify, control) with a source dropdown and auto-scroll. Auto-refresh pauses while you're selecting text so you can copy freely.
Terminal — bash -lc inside the distro with command history (↑/↓). Useful for poking around /opt, checking brave-origin-nightly --version, or just df -h to see what's going on.
Settings — installed vs. latest version, automatic-updates toggle, one-click Check & update button, and quick link to the Logs tab.
An update banner slides in on launch when a newer nightly is released. Update / Remind later (24 h) / Ignore.
Brave/ # Extract this anywhere
│
├── Brave.exe # Double-click this to launch
├── webview.dll # WebView2 loader (used by Brave.exe)
├── brave.ico # App icon
├── app.json # App config (title, ports, deps, commands)
│
├── index.html # The tabbed UI (Brave/Logs/Terminal/Settings)
├── bridge.py # Spawns start.sh and redirects the webview
├── control.py # Sidecar API — settings, logs, terminal, updates
│
├── setup.sh # First-run installer (preflights + apt + Brave .deb)
├── start.sh # Launches Xtigervnc + openbox + brave + websockify
├── stop.sh # Tree-kills everything cleanly
├── update.sh # apt --only-upgrade + GitHub .deb fallback
│
└── linux/
└── ubuntu-base.tar.gz # Ubuntu 24.04 rootfs seed (WSL import source)
- Windows 10 (version 2004+) or Windows 11
- WSL2 installed (
wsl --installfrom admin PowerShell if you don't have it) - Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; Win10 LTSC users can grab the free Evergreen installer
- ~1.5 GB free disk space
- Internet on first launch only (downloads the 120 MB Brave
.debfrom GitHub). The app is fully offline after that.
Brave.exe (Windows, WebView2 window)
│
│ loads
▼
bridge.py (Python, inside WSL, port 10611)
│
│ spawns start.sh, serves a tiny redirect page
▼
websockify (Python, inside WSL, port 9611) — serves the tabbed UI
│
│ WebSocket proxy
▼
Xtigervnc :1 (TCP 5901) — X server
│
│ display
▼
brave-origin-nightly (the real Chromium-based Brave)
A sidecar control.py on port 9612 handles the tabbed UI's JSON API (settings, logs, update check, terminal exec, shutdown). An iptables rule blocks loopback traffic to the UI ports so Brave inside the distro can't accidentally load its own URL and create a recursive mirror.
| Symptom | Fix |
|---|---|
Setup Required dialog on first launch |
Run wsl --install in admin PowerShell, reboot |
| Blank white window that never paints | Install the WebView2 Evergreen runtime |
api.github.com is unreachable in the setup log |
No internet, or a firewall/proxy blocks GitHub. Reconnect and retry |
less than 2 GB free in the setup log |
Free disk space on C: and relaunch |
| "Failed to connect" inside the Brave tab | Click Shut down in the launcher, wsl --unregister linbox-Brave, relaunch |
The Logs tab is always the first place to look — switch the dropdown to the service you care about.
This repo tracks source only: scripts, HTML, Python, config, icon. Three binary blobs are not in git and only ship inside Brave.zip:
| File | Where it comes from |
|---|---|
Brave.exe |
Compiled from portable-linux-in-a-box, renamed + icon stamped with rcedit |
webview.dll |
WebView2 loader, built alongside Brave.exe |
linux/ubuntu-base.tar.gz |
Ubuntu 24.04 rootfs from cloud-images.ubuntu.com |
To get a working local dev copy: clone this repo, download the latest Brave.zip from Releases, extract it, and copy those three files into your clone. Edit anything (index.html, *.sh, *.py) and double-click Brave.exe — live edits are picked up on each run, no rebuild needed.
To cut a new release:
powershell -ExecutionPolicy Bypass -File .\build-zip.ps1That writes a clean ..\Brave.zip (runtime files only). Upload it to a new GitHub Release and you're done.
- Bugs / reproducible errors → open an Issue.
- General questions, ideas, show-and-tell, "will this work for X?" → please use Discussions. Discussions are welcomed.
- There is intentionally no Wiki on this repo — everything worth knowing lives in this README, the inline comments, and the per-file docstrings in
bridge.py/control.py. Keeping docs in one place means they can't drift out of sync.
- Windows only. macOS has no WSL; porting would need a QEMU backend and a Mach-O launcher.
- Brave is a nightly, not version-pinned — the Settings tab handles updates.
- Runs with
--no-sandboxinside a disposable single-user WSL VM (Chromium's user-namespace sandbox needsCAP_SYS_ADMIN, which WSL doesn't grant).--test-typesuppresses Chromium's yellow warning bar. Acceptable here; don't run Brave like this on bare-metal Linux.
Built on portable-linux-in-a-box
This whole project exists because of my own portable-linux-in-a-box template — a single 224 KB .exe that runs any Linux app on Windows with one double-click. Brave.exe in this repo is that template, rebuilt with a title field + Brave's icon stamped into its PE resources. If you want to package a different Linux-only app for Windows users, start there.
Built with:
- Brave — the browser itself, by Brave Software, Inc.
- noVNC — HTML5 VNC client
- TigerVNC — the
Xtigervncserver - openbox — minimal window manager
- websockify — WebSocket-to-TCP bridge
- Ubuntu 24.04 LTS — the Linux base
- portable-linux-in-a-box — my Linux-on-Windows launcher template
MIT — see LICENSE.
Brave Origin Nightly is separate software with its own license; this repo does not redistribute the Brave binary — it's downloaded directly from the official Brave GitHub Releases on first launch.