Custom Chromium build with AI agent integration, enhanced privacy patches, and native MCP support.
Based on Chromium 146.0.7680.31 · Built with Python 3.12+ · Licensed under AGPL-3.0
This package contains the BrowserOS browser build system — everything needed to fetch Chromium source, apply BrowserOS patches, and produce signed binaries for macOS, Windows, and Linux. The build system is a Python CLI that orchestrates the entire pipeline from source to distributable.
BrowserOS patches add:
- Native AI agent sidebar and new tab integration
- MCP server endpoints baked into the browser
- Enhanced privacy via ungoogled-chromium patches
- Custom branding, icons, and entitlements
- Keychain access group management (macOS)
- Sparkle auto-update framework (macOS)
| Requirement | Details |
|---|---|
| Disk space | ~100 GB for Chromium source + build artifacts |
| Python | 3.12+ |
| macOS | Xcode + Command Line Tools |
| Linux | build-essential, clang, lld, and Chromium's Linux deps |
| Windows | Visual Studio 2022, Windows SDK |
packages/browseros/
├── build/ # Build system (Python CLI)
│ ├── __main__.py # CLI entry point
│ ├── browseros.py # Main app definition
│ ├── modules/
│ │ ├── setup/ # Chromium source fetch and setup
│ │ ├── patches/ # Patch application logic
│ │ ├── apply/ # Apply patches to source tree
│ │ ├── extract/ # Extract patches from modified source
│ │ ├── feature/ # Feature flag management
│ │ ├── package/ # Binary packaging
│ │ ├── sign/ # Code signing (macOS, Windows)
│ │ ├── ota/ # Over-the-air update support
│ │ └── resources/ # Resource management
│ ├── config/ # Build configuration
│ └── features.yaml # Feature flag definitions
│
├── chromium_patches/ # BrowserOS patches applied to Chromium source
│ ├── chrome/browser/ # Browser UI and feature patches
│ ├── components/ # Component patches (e.g., os_crypt)
│ └── ... # Organized to mirror Chromium source tree
│
├── chromium_files/ # New files added to Chromium (not patches)
├── series_patches/ # Ordered patch series
├── resources/ # Icons, entitlements, signing resources
│ └── entitlements/ # macOS entitlements (app, helper, GPU, etc.)
│
├── tools/
│ └── bdev # Developer tool
│
├── CHROMIUM_VERSION # Pinned Chromium version (MAJOR.MINOR.BUILD.PATCH)
├── BASE_COMMIT # Base Chromium commit hash
├── pyproject.toml # Python project config
└── requirements.txt # Python dependencies
The browseros CLI manages the full build lifecycle:
# Install the build system
pip install -e .
# Or use uv
uv pip install -e .Key commands:
browseros setup # Fetch and prepare Chromium source
browseros apply # Apply all patches to Chromium source
browseros build # Build BrowserOS binary
browseros package # Package into distributable (DMG, installer, AppImage)
browseros sign # Code sign the binary (macOS/Windows)BrowserOS applies patches on top of vanilla Chromium. Patches are organized in two directories:
chromium_patches/— Individual file patches, organized to mirror the Chromium source tree. Each file here replaces or modifies the corresponding file in Chromium.series_patches/— Ordered patch series applied sequentially.
- Make your changes in the Chromium source tree
- Use
browseros extractto pull changes back into patch format - Place the patch in the appropriate directory mirroring Chromium's structure
- Test with a full
browseros apply && browseros buildcycle
The exact Chromium version is pinned in CHROMIUM_VERSION:
MAJOR=146
MINOR=0
BUILD=7680
PATCH=31
To update the base Chromium version, update this file and BASE_COMMIT, then resolve any patch conflicts.
macOS builds require code signing for Keychain access, Gatekeeper, and notarization:
- Entitlements are in
resources/entitlements/(app, helper, GPU, renderer, etc.) - Designated requirements pin to Team ID for Keychain persistence across updates
- The signing module is at
build/modules/sign/macos.py
Feature flags are defined in features.yaml and control which BrowserOS-specific features are compiled into the build. The feature module (build/modules/feature/) manages flag resolution at build time.
- Chromium Build Instructions
- ungoogled-chromium — upstream privacy patches
- BrowserOS Agent Platform — the TypeScript/Go agent system that runs inside the browser