A single ~120 KB executable. No installer, no runtime — .NET Framework 4.8 already ships with Windows.
- Download
Fenestra.exeand run it, or make it the.htmlhandler.
Fenestra is a tiny local server that turns any dist/index.html
into a working site in your browser. No terminal, no extension, no custom browser.
The problem
Modern builds use ES modules. Under file:// the browser treats the page as an
opaque origin: modules are blocked by CORS, /assets/... resolves to the root
of the drive, and service workers do not exist. The file is fine. The origin is not.
What happens when you double-click a build today:
What happens when Fenestra serves the same folder:
How it works
Fenestra attaches itself to the double-click and decides what the file needs.
Double-click it, drag the folder onto the executable, or pass a path on the command line.
It reads the HTML. Needs an HTTP origin? It starts a server on a stable port. Does not? It opens the file directly.
A normal tab, in your window, with your profile, your extensions and your address bar.
What is inside
The same behavior the manual explains, item by item.
The same origin every run: localStorage, cookies and the service worker survive.
Extensionless routes fall back to index.html, so refresh works.
Files that do not need an origin open directly, without a server.
An entry under /src/ serves the sibling dist/, build/ or out/.
Parent paths, drive tricks and hidden files are rejected or 403.
Edge, Chrome, Firefox, Brave, Vivaldi, Opera, Chromium and Safari.
Embedded in the executable, seven languages, opened with --manual.
Stops with the browser it started, or after 4 idle hours.
The only thing stored is the language you choose.
A static version.json is checked once a week; one tab per version, dismissible.
Platforms
Same job everywhere: turn a folder into localhost and open it in your browser. The packaging changes because each system has its own rules.
A single ~120 KB executable. No installer, no runtime — .NET Framework 4.8 already ships with Windows.
Fenestra.exe and run it, or make it the .html handler.One static binary, no runtime, for amd64 and arm64.
chmod +x fenestra-linux-amd64 and run it, or use --install to register the handler.No notarized app bundle: the CLI installs via Homebrew, the Finder app you build locally.
Every release also ships the complete source as zip and tar.gz. Nothing here is closed.
Install
Pick the package for your system. Every one of them is a single file — no installer, no runtime.
The ~120 KB .exe above runs as-is. No installer, no runtime.
One static binary, no Wine, no runtime. Download fenestra-linux-amd64 and run it with chmod +x.
No prebuilt binary: notarization costs US$ 99/year. The macos/ folder is a build kit — install Go, run one command.
Browser
Fenestra opens a normal tab in the browser you choose. The choice is saved and applies to every double-click from now on.
Fenestra reads the system default browser on every open (the http association), so changing it in Windows is picked up immediately. Nothing is stored unless you pin a browser in settings.
Double-click Fenestra with no file to open this screen again.
# Windows Fenestra.exe --browser edge # Linux / macOS fenestra --browser edge
See what is installed with --browsers.
# Windows Fenestra.exe --browser chrome # Linux / macOS fenestra --browser chrome
See what is installed with --browsers.
# Windows Fenestra.exe --browser firefox # Linux / macOS fenestra --browser firefox
See what is installed with --browsers.
# Windows Fenestra.exe --browser brave # Linux / macOS fenestra --browser brave
See what is installed with --browsers.
# Windows Fenestra.exe --browser vivaldi # Linux / macOS fenestra --browser vivaldi
See what is installed with --browsers.
# Windows Fenestra.exe --browser opera # Linux / macOS fenestra --browser opera
See what is installed with --browsers.
# Windows Fenestra.exe --browser chromium # Linux / macOS fenestra --browser chromium
See what is installed with --browsers.
# macOS only fenestra --browser safari
Safari is available on macOS only.
With --browser default, the operating system decides. To change what that means:
Stored in %LOCALAPPDATA%\Fenestra\browser.txt (Windows), ~/.config/fenestra/browser (Linux) and ~/Library/Application Support/Fenestra/browser (macOS).
Security
Loopback only, no telemetry, no accounts, no remote code. It serves the folder you opened and nothing else — but every file under that folder is reachable, including dotfiles.
Honesty
Honest boundaries, in one place.
Next
The source archive at the tag, build scripts for every system, and checksums for every asset.
If it is useful to even one person, it was worth it.