Wren a web browser where WebAssembly runs everything, JavaScript included

Wren documentation

Wren is a web browser written from scratch in Odin, for Windows, where WebAssembly is the only execution engine — JavaScript included. The scripts of a page run in an engine written in Odin and compiled to WebAssembly, inside the same Wasmtime sandbox, memory cap and interruption as every other module. The web platform itself (DOM, CSS, layout, painting, Fetch, the shell) is native Odin, drawn on Direct3D 11. There is no Chromium underneath.

A page can also be a single .wasm file that calls the browser directly, through imports generated from Web IDL: see Web API.

Installing

Wren is a single executable for Windows x64. There is no installer to run as administrator:

  • Download the latest wren-<version>-windows-x64.exe from the releases page and run it: the program is that one file, with nothing to unzip. wren.exe --setup installs it.
  • Or, for a release that has reached winget: winget install FromentSoftware.Wren.

Every version is free during the beta. A Wren User Licence unlocks nothing during the beta; it keeps the work going and covers two years of updates from 1.0.

Driving Wren

You rarely need to click to test a page. Wren ships one executable that is also its own client:

PowerShell
wren ctl run --size 1280x800 --shot out.png https://example.com/   # one page, one capture
wren ctl start --size 1280x800                                     # a session you keep driving
wren ctl nav https://example.com/
wren ctl shot page.png
wren ctl stop

The same browser can be driven by Puppeteer and Playwright over the Chrome DevTools Protocol:

wren --remote-debugging-port=9222 --headless about:blank

Both paths are the same command engine. See Remote control for wren ctl, and CDP and WebDriver BiDi for the standard automation tools.

Where to go

Contributing to the docs

Every page in this site is a Markdown file under docs/. How to write documentation explains the format and how the site is generated.

Edit this page on GitHub