← Back to Library

The architecture behind atlas: OpenAI’s new ChatGPT-based browser

The Browser That Runs Chromium Outside itself

OpenAI's Atlas browser represents something rare in software engineering: an architecture that solves cultural problems as much as technical ones. Alex Xu documents how the team achieved instant startup, rich animations, and hundreds of tabs without modifying Chromium itself.

The Chromium Trap

Chromium powers Chrome, Edge, Brave, and countless other browsers. Its rendering engine is state-of-the-art. But Chromium also imposes rigid constraints on boot sequences, threading models, and tab management. Xu writes, "Making substantial changes to Chromium's core would mean maintaining a large set of custom patches. Every time a new Chromium version was released, merging those changes would become increasingly difficult and time-consuming."

The architecture behind atlas: OpenAI’s new ChatGPT-based browser

OpenAI faced another obstacle: their engineering culture. The company practices "shipping on day one," where new engineers merge code on their first afternoon. Chromium takes hours to build from source. Xu notes, "Making this requirement work with traditional Chromium integration seemed nearly impossible."

OWL: Running Chromium as a Separate Process

The solution was OWL — OpenAI's Web Layer. Instead of embedding Chromium inside Atlas, the team runs Chromium's browser process outside the main application. Xu explains, "In this architecture, Atlas is the OWL Client, and the Chromium browser process is the OWL Host. These two components communicate through IPC using Mojo, which is Chromium's own message-passing system."

IPC stands for inter-process communication. Mojo is Chromium's protocol for sending messages between separate programs running on the same machine. Xu writes that OpenAI "wrote custom Swift and TypeScript bindings for Mojo, allowing their Swift-based Atlas application to call Chromium functions directly."

"Instead of embedding Chromium inside the Atlas application, OpenAI runs Chromium's browser process outside the main Atlas application process."

Rendering Across Process Boundaries

How do pixels rendered in one process appear in windows belonging to another? OpenAI borrowed from macOS graphics primitives. On the Chromium side, web content renders to a CALayer with a unique context ID. On the Atlas side, an NSView embeds this layer using the private CALayerHost API. Xu writes, "The context ID tells Atlas which layer to display."

The GPU compositor handles this efficiently because both processes share graphics memory. When switching tabs, Atlas swaps which WebView connects to the visible container. Xu notes, "Multiple tabs can share a single compositing container."

Input events require similar care. Normally Chromium translates macOS NSEvents into Blink's WebInputEvent format. In OWL, Atlas performs this translation and forwards already-translated events over IPC. Xu explains, "If a web page indicates it did not handle an event, Chromium returns it to the Atlas client. When this happens, Atlas resynthesizes an NSEvent and gives the rest of the application a chance to handle the input."

Agent Mode's Special Requirements

Atlas includes agentic browsing where ChatGPT controls the browser. This poses unique challenges. The computer use model expects a single screenshot, but dropdown menus render outside main tab bounds. Xu writes, "To solve this, Atlas composites these pop-up windows back into the main page image at their correct coordinates in Agent mode."

Security matters here. Agent-generated events route directly to the web page renderer, never passing through the privileged browser layer. Xu notes this "preserves the security sandbox even under automated control." Ephemeral sessions use Chromium's StoragePartition infrastructure to create isolated, in-memory data stores. Each agent session starts fresh; cookies and site data discard when the session ends.

Benefits and Trade-offs

OWL delivers fast startup because Chromium boots asynchronously while Atlas UI appears instantly. Xu writes, "Users see pixels on screen within milliseconds, even though the web engine may still be initializing." Process isolation means Atlas remains responsive if Chromium's main thread hangs. If Chromium crashes, Atlas stays running and can recover.

Developer productivity improves dramatically. Xu explains, "Most engineers never need to build Chromium locally. OWL ships internally as a prebuilt binary, so Atlas builds completely in minutes rather than hours."

Trade-offs exist. Running two processes uses more memory than monolithic architecture. The IPC layer adds complexity. Xu acknowledges, "Cross-process rendering could potentially add latency, although OpenAI mitigates this through efficient use of CALayerHost and GPU memory sharing."

Critics might note that OWL's prebuilt binary approach creates a dependency lock — teams must trust OpenAI's Chromium builds rather than auditing them themselves. The memory overhead matters for users on constrained devices. And while process isolation protects against crashes, it also means debugging cross-process issues requires tooling that most engineers don't have.

Bottom Line

OWL solves the real problem: browser teams need Chromium's rendering without Chromium's cultural constraints. The architecture trades memory for developer velocity and user experience. For AI-powered browsing where agent sessions demand isolation, the separation becomes essential rather than optional.

Deep Dives

Explore these related deep dives:

  • ChatGPT

    The article discusses ChatGPT Atlas, OpenAI's new browser powered by their LLM

  • Swift (programming language)

    The article mentions using SwiftUI, Apple's modern framework for rich animations and visual effects

Sources

The architecture behind atlas: OpenAI’s new ChatGPT-based browser

Sonar Summit: global conversation building software in the AI era (Sponsored).

Join us for Sonar Summit on March 3rd, a global virtual event, bringing together the brightest minds in software development.

In a world increasingly shaped by AI, it’s more crucial than ever to cut through the noise and amplify the ideas and practices that lead to truly good code. We created Sonar Summit to help you navigate the future with clarity and knowledge you need to build better software, faster.

OpenAI recently launched ChatGPT Atlas, a web browser where the LLM acts as your co-pilot across the internet. You can ask questions about any page, have ChatGPT complete tasks for you, or let it browse in Agent mode while you work on something else.

Delivering this experience wasn’t trivial. ChatGPT Atlas needed to start instantly and stay responsive even with hundreds of tabs open. To make development faster and avoid reinventing the wheel, the team built on top of Chromium, the engine that powers many other modern browsers.

However, Atlas is not just another Chromium-based browser with a different skin. Most Chromium-based browsers embed the web engine directly into their application, which creates tight coupling between the UI and the rendering engine. This architecture works fine for traditional browsing, but it makes certain capabilities extremely difficult to achieve.

Therefore, OpenAI’s solution was to build OWL (OpenAI’s Web Layer), an architectural layer that runs Chromium as a separate process, thereby unlocking capabilities that would have been nearly impossible otherwise.

In this article, we learn how the OpenAI Engineering Team built OWL and the technical challenges they faced around rendering and inter-process communication.

Disclaimer: This post is based on publicly shared details from the OpenAI Engineering Team. Please comment if you notice any inaccuracies.

Why Chromium?.

Chromium was the natural choice as the web engine for Atlas. Chromium provides a state-of-the-art rendering engine with strong security, proven performance, and complete web compatibility. It powers many modern browsers, including Chrome, Edge, and Brave. Furthermore, Chromium benefits from continuous improvements by a global developer community. For any team building a browser today, Chromium is the logical starting point.

However, using Chromium comes with significant challenges. The OpenAI Engineering Team had ambitious goals that were difficult to achieve with Chromium’s default architecture:

First, they wanted instant startup times. Users should see the browser interface immediately, not after waiting for everything to load.

Second, they ...