Browser Engine Patcher

Home/Docs

Install Browser Engine Patcher 2.8.1

BEP is a single Rust binary. There is no installer, no daemon and no system service. You build it once from the source archive and put it on your PATH.

Updated 2026-10-09Applies to 2.8.1Reading time 6 minutes

Requirements

Measured on the 2.8.1 test machines. Disk figures include engine sources and one build output.
ItemMinimumRecommended
Operating systemLinux x86_64, macOS 13, Windows 11 with WSL2Linux x86_64, current LTS kernel
Rust toolchain1.791.92
C and C++ compilerclang 16 or gcc 12clang 18
Build toolsninja 1.11, python3.9, pkg-configninja 1.13, python3.12
Memory16 GB32 GB
Free disk90 GB for a Chromium-family build150 GB, preferably on a local SSD
Cores412 or more

The Gecko-family preview needs about half the disk and does not use ninja; its build runs through the source tree's own build entry point. ARM64 hosts are supported on Linux and macOS and are about 30 percent slower per core for the same job count.

Build from the source archive

  1. Unpack bep-2.8.1.tar.zst from the release page and enter the directory.
  2. Check the archive against the SHA-256 line published in the release notes.
  3. Build with the locked dependency set. Do not pass --offline on a first build; the crate cache is empty.
  4. Install the binary into a directory on your PATH.
tar --zstd -xf bep-2.8.1.tar.zst
cd bep-2.8.1
sha256sum -c bep-2.8.1.sha256

cargo build --release --locked
install -m 0755 target/release/bep ~/.local/bin/bep

bep --version

A clean build of the CLI takes about 90 seconds on 12 cores. The binary is 14 MB stripped and depends only on the system C library; there are no runtime plugins to install.

Check the machine

bep doctor is the first command to run on any new machine. It reads the compiler, ninja, python, the cache location and free disk, then reports what a build would use. It changes nothing.

$ bep doctor
bep 2.8.1 (7f3c2a1, 2026-10-09)
cache       /home/ana/.cache/bep          412 GB free
compiler    /usr/bin/clang++ 18.1.8       ok
ninja       1.13.1                        ok
python      3.12.6                       ok
git         2.46.0                        ok
rustc       1.92.0                        ok (build of bep only)
source      none fetched

Every line ends in ok, warn or fail. Warnings do not stop a build; failures do, with exit code 5. Add --json for machine-readable output, which is what the CI template uses.

Upgrade from 2.7

Replace the binary and run bep doctor again. The 2.8.1 cache layout is a new directory (cache/v3), so the first bep fetch downloads sources once more; the 2.7 checkout stays untouched until you remove it with bep cache gc --all. Series files do not change. A lockfile written by 2.7 is read without a migration, but the next bep apply rewrites it with the new content hashes and marks the change in the diff you can inspect before committing.

Remove

bep cache gc --all       # delete fetched sources and object caches
rm ~/.local/bin/bep

Nothing is written outside the working directory and the cache directory, so removing the binary and the cache leaves no leftovers. Configuration lives in bep.toml inside each series and is removed with the series.

Do not share one cache between machines. Object files record absolute paths. A cache copied over NFS makes the first build fail with a confusing compiler error; run bep cache gc and fetch again instead.