Evo is a personal Arc-style browser built on Chromium with a bundled local AI runtime. This repository is the control plane for the complete Evo workspace: it pins every component, stores the Evo Chromium patch series, and provides one set of commands for building and testing the browser.
| Path | Purpose | Git ownership |
|---|---|---|
evo-chromium/src |
Chromium source and Evo browser shell | depot_tools checkout, ignored here |
patches/chromium |
Reviewable Evo commits over the pinned Chromium base | this repository |
evo-runtime |
Local runtime, Claude session supervision, policy, and transport | private submodule |
evo-opencode |
Evo's externally-agentic OpenCode provider fork | private submodule |
docs |
Architecture, migration, EvoWork reference, and backlog | this repository |
Chromium is deliberately not a Git submodule. Its source checkout is large and
uses Chromium's depot_tools, gclient, and DEPS workflow. Evo's changes are
kept as a small patch stack over the exact base recorded in workspace.json.
./scripts/bootstrap.sh
./scripts/check-workspace.shThe expected local checkout is evo-chromium/src. An existing checkout can be
moved there without rebuilding; a fresh Chromium checkout can be prepared and
then populated with ./scripts/apply-chromium-patches.sh.
./scripts/test.sh
./scripts/build-dev.sh
./scripts/run-dev.sh
./scripts/test-chromium.shThese commands use one serialized Chromium build lane rooted at the primary
checkout's evo-chromium/src/out/Evo, even when invoked from a feature
worktree. Chromium inputs must be committed before a build. See
docs/build-lane.md for the cache, lock, and manifest
contract.
Codex and automated checks use only Evo Dev, its mock keychain, and the
isolated Evo Chromium Dev profile. Sam tests the signed production app and
keeps the production profile as the daily dogfooding environment.
Production is intentionally two steps. Sam builds and verifies merged main,
then promotes that exact artifact without compiling again:
./scripts/build-release.sh
./scripts/install-production.sh
open /Applications/Evo.appCommit and push runtime and OpenCode changes in their own repositories, then commit the updated submodule pointer here. Commit Chromium changes in the Chromium checkout, then run:
./scripts/export-chromium-patches.shThis keeps the root repository reproducible without mixing Chromium's upstream history into Evo's product history.
The previous SwiftUI/WKWebView application is preserved at tag webkit-final
and branch legacy/webkit. It is deprecated and is not part of the active
build. See docs/legacy-webkit.md.