Skip to content

Architecture

OpenArch is a native Mac app around Chromium. The sidebar, the command bar and everything else you see around the page are Swift. The pages are Chrome.

Swift / AppKit / SwiftUI app App/Sources/OpenArch
sidebar, command bar, spaces, library, Arc import, AI features
│ a narrow Objective-C API
OpenArchCore (Objective-C++) App/Sources/OpenArchCore
OACEngine, OACProfile, OACPane
│
CEF (Chromium) with codecs Vendor/cef

Each tab is an OACPane: a Chrome-style CEF browser in a borderless window of its own, attached as a child window over OpenArch’s content area. To Chromium it is an ordinary Chrome tab, so extensions, chrome.tabs, side panels, DevTools, the password manager and chrome:// pages work as in Chrome. Browsers embedded the simpler way (“Alloy” style) lack most of that; spikes/01-cef/RESULTS.md has the details.

CEF allows one Chrome-style browser per window. Split view therefore places several of these windows side by side.

Every space uses a profile, an OACProfile, which is a Chromium profile with its own cookies, logins, history, passwords and extensions. A private window gets a profile that lives only in memory.

OpenArch loads a small extension of its own into every profile (App/Resources/BuiltinExtensions/openarch). It tells the sidebar which tabs play audio and video, and what, and which share the screen. It reports through the page’s console, which OpenArch reads.

OpenArch does not talk to a model itself. It starts the Claude Code command line tool and reads its answers; see How OpenArch talks to Claude.

The sharing format, its cryptography and the relay client are a Swift package of their own (Shared/), used by the Mac and the iOS app. The relay is a Cloudflare Worker (relay/). docs/sharing.md describes the format and the threat model; How sharing works is the short version.

Folder What is in it
App/ The Mac app
iOS/ OpenArch for iPhone and iPad
Shared/ The Swift package both use for sharing
relay/ The relay for live shares, a Cloudflare Worker
website/ openarch.app, and website/s/, which shows shared links to people without OpenArch
docs-site/ These docs
docs/ The sharing format and App Store notes
scripts/ Fetching, updating and building CEF; drawing the icons
spikes/ The first experiments with CEF