* docs: overhaul READMEs across all major packages - Root README: restructure with feature table, LLM provider table, comparison matrix, architecture map, and docs link - New: packages/browseros/README.md (Chromium fork build system) - New: apps/server/README.md (MCP server + agent loop) - New: packages/cdp-protocol/README.md (CDP type bindings) - Polish: agent-sdk (badges, prerequisites, multi-step example, links) - Polish: cli (badges, install section, MCP server section, links) - Polish: agent extension (badges, WXT mention, architecture context) - Polish: eval (badges, paper links) * fix: address review — consistent tool count and correct default port - CLI README: "54 MCP tools" → "53+ MCP tools" to match root and server docs - Agent SDK README: localhost:3000 → localhost:9100 to match documented default * docs: add detailed comparison links to How We Compare section * docs: update comparison table with verified competitor data Research all 5 competitors via official websites and docs: - Chrome: no AI agent, Gemini Nano only, MV3 weakening ad blocking - Brave: BYOM feature, local models via BYOM, Shields ad blocking, MV2+MV3 - Dia: Skills-based AI, no BYOK, cloud AI, acquired by Atlassian - Comet: full cloud-based agent, built-in ad blocking, extensions on desktop - Atlas: standalone Chromium browser with Agent Mode, 30-day cloud memory Renamed Arc/Dia column to just Dia (Arc is sunset). * docs: simplify comparison table with clean checkmarks and key differentiators * docs: update browseros-agent README — remove submodule note, add missing packages
5.5 KiB
BrowserOS Browser (Chromium Fork)
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
What This Is
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)
Prerequisites
| 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 |
Directory Structure
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
Build System
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)
Patch System
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.
Adding a New Patch
- 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
Chromium Version Pinning
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.
Signing (macOS)
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
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.
Related Resources
- Chromium Build Instructions
- ungoogled-chromium — upstream privacy patches
- BrowserOS Agent Platform — the TypeScript/Go agent system that runs inside the browser