Installation
Pick a path. All of them give you thewebrain binary; the first run of
webrain install downloads the browser engine.
Global installation (recommended)
The script verifies the download against the release’s
checksums.txt before
installing, into ~/.local/bin (override with WEBRAIN_INSTALL_DIR). On
Debian/Ubuntu that directory is already on PATH via ~/.profile, so a new
shell is all you need afterwards — the installer checks the login shell and
says so instead of asking you to edit your profile. Inside WSL the same
command works as-is and picks the glibc linux-x86_64 build.Manual download
The install scripts pick the right one from
uname -m / PROCESSOR_ARCHITECTURE,
including the static musl build on Alpine and other non-glibc Linux (both
architectures). For a manual download, swap the asset name above:
webrain-linux-aarch64 on an ARM server, webrain-linux-aarch64-musl on ARM
Alpine, webrain-macos-aarch64 on Apple Silicon, webrain-windows-aarch64.exe
on Windows on ARM. Other targets (i686, RISC-V, FreeBSD) are build-from-source
only — the code is portable Rust with no SIMD intrinsics, but no CI runner
publishes them.Package managers
Prebuilt binaries — install script, Homebrew, Scoop, That drops
cargo install — are
built with --features pdfium, so webrain_pdf op=render (PDF pages →
PNG tiles for vision) is available in every release. The library is bound at
runtime, so fetch it once:pdfium.dll / libpdfium.so / libpdfium.dylib into the webrain
engine cache, which op=render checks before the system loader — no PATH
edit. It also accepts a copy sitting beside the executable. musl builds are
the exception: the published pdfium is glibc-linked and cannot load on
Alpine, so there op=extract and op=images are the paths that work.From source
--features pdfium is what the published binaries carry — add ,chat to that
cargo build for webrain chat. cargo install webrain passes no features, so a
from-source install there is the plain binary.
Add --features pdfium to that cargo build if you need webrain_pdf
op=render (cargo install webrain does not pass features). Then
webrain install pdfium — it downloads the bblanchon/pdfium-binaries build for
this OS/arch into the engine cache, which is loaded at runtime rather than linked
in.
Add --features chat for webrain chat. Two consequences worth knowing before
you type it:
- The build now needs Rust 1.94+ (the
github-copilot-sdkcrate’s floor, enforced by Cargo’s MSRV-aware resolver). The workspace declares1.94, so an older toolchain fails on anycargo build, feature or not. - The binary embeds the Copilot CLI runtime (~135 MB per platform, downloaded and SHA-256 verified at build time), so the artifact grows from ~37 MB to roughly 170 MB. That is why the feature is off by default for source builds.
- It links OS OpenSSL 3 on Linux. A static musl target has none, so there the
build vendors OpenSSL 3 (
openssl’svendoredfeature, compiled bymusl-gcc) and the published musl builds carrychatlike every other target.
Linux dependencies
Chrome needs system libraries on Linux. Install them before first run:Updating
OS compatibility
Binary discovery is automatic on every OS: env override → PATH →
~/.lightpanda,
~/.obscura, ~/.local/bin → the webrain engine cache.
Optional bundles
webrain install also supports two self-contained mono bundles (no PATH
installs, any OS):
install vision takes exactly one model id (--model <id> or the bare
positional install vision <id>); anything else prints the choices with
download size and RAM/VRAM instead of fetching a repo:
Each entry brings its own mmproj (
mmproj-F16.gguf for the 2B, mmproj.gguf
for the 9B); models land in vision/<id>/ and an existing single-model install
keeps working. Download sizes are the exact blob sizes on Hugging Face; the
RAM/VRAM columns are guidance, not a measured fit — a 9B at Q4_K_M is 5.63 GB of
weights plus 922 MB of projector before any KV cache. The 9B quants need a
GPU-enabled llama-server (WEBRAIN_LLAMA_SERVER) to be worth it — the bundled
build is CPU-only.
