Build locally, run locally
Run a local filesystem or ext4 image using Node. The website supplies and verifies the official runtime selected by the kernel filename or an explicit override; no browser or native sandbox helper is required. The official static release and current launch approval are fetched from the website, so local launches require an internet connection.
Prepare a local root filesystem
Install Node.js 22 or newer. Build a wasm32 userland and matching kernel using the toolchain and kernel guide, or use a compatible local root filesystem you already have. A normal x86 or ARM Linux root filesystem will not run as wasm32 userland.
Your development directory should contain:
- A kernel in
rootfs/bootnamedvmlinux-<kernel>-wasm32-<portversion>-hwjs-<hwversion>.wasm, with virtio-fs support. - A wasm32 userland, including the program selected as init.
- The mountpoint directories the image's early boot expects, including
/dev,/proc,/sys, and/tmp.
Boot the directory
curl -fsS https://brintos.io/brintos.js -o brintos.js
node brintos.js --fs ./rootfs
# Choose a different kernel or init program:
node brintos.js --fs ./rootfs --kernel ./custom.wasm --hardwarejs-version 0.1.0-dev.2 --init /bin/bash The directory is served to the guest over virtio-fs and is writable: guest changes land in the
local files. The default kernel is the sole versioned WASM kernel in rootfs/boot, and
the default init for a directory boot is /bin/sh. Your terminal becomes the guest
console.
Run node brintos.js --help or consult the hardwarejs.js argument reference for memory, kernel
command-line, and optional gateway settings. Use a launcher you trust, since HardwareJS executes directly
in Node on your computer.
Run your own package
Build a package with the userland development guide,
place it in your local root filesystem, and make it executable. Run it from the guest console, or
use --init /usr/local/bin/yourprog to start it as PID 1. Keep the package, kernel, and
runtime compatible with the same wasm32 toolchain.
Other local launch methods
- Local ext4 image — use the same trusted launcher with
--image. The disk opens read-write by default; add--read-onlyto keep it unchanged. It needs a matching kernel with ext4 and virtio-blk support. - Node with cloud storage — use
brintos.jswhen you want to launch a cloud repo directly and persist changes back to its live filesystem.