Build from source
You never have to take our word for what's inside. The open build is designed to be rebuilt by anyone.
This page rebuilds the open build — the one on GitHub Releases. The licensed build (Free with GitHub and Pro) includes patches that are not public and can't be rebuilt from this source.
The shape of a build
A Clearcote build is upstream Chromium plus a transparent, ordered patch set:
- Fetch ungoogled-chromium at the pinned revision (Chromium 151).
- Prune the source, then apply the ungoogled patch set (de-Googling).
- Apply the Clearcote patches (engine-level identity controls).
- Drop in the public
config/args.gn(Windows) orconfig/args.linux.gn(Linux). gn gen out/Defaultthenninja -C out/Default chrome.
# high-level outline — see docs/BUILDING.md for the exact, pinned steps
git clone https://github.com/clearcotelabs/clearcote-browser
cd clearcote-browser
# fetch upstream, apply the patches, configure, build (gn + ninja) and package
WORK=~/clearcote-build ./build.sh windows # or: ./build.sh linux
# the archive lands in $WORK/distThe recommended route is the pinned build container described in BUILDING.md, which carries every toolchain pin. Plan for 16 GB of RAM or more (32 GB recommended), about 120 GB of disk and several hours.
Targets
Windows x64 is cross-built on Linux with clang-cl / lld-link; Linux x64 is a native build. The Windows side is genuinely involved (Windows SDK + CRT staging, toolchain shims), so every step and gotcha is written down to be reproducible.
Canonical guides
- docs/BUILDING.md — full build-from-source guide.
- patches/README.md — what each committed patch does; docs/PATCHES.md is the broader design manifest.
- docs/RESEARCH-DOSSIER.md — deep cross-build notes.
- config/args.gn — the public build configuration.
Because the open build's patch set and config are public and pinned, a build you produce should match the published artifact's behavior — and you can diff the patches against pristine upstream to see every single change. Builds are not yet bit-for-bit identical, so compare behaviour rather than hashes.