atriumatrium

Architecture

High-level overview of how atrium works.

Overview

atrium is a native desktop app built with Tauri 2.0 — a Rust backend with the system's native WebKit for rendering. No Electron. The result is an app that runs at ~8 MB on disk.

The terminal layer uses xterm.js with WebGL acceleration, backed by native PTY management in Rust. Code editing uses Monaco (the same engine behind VS Code), and the rich markdown editor is built on Lexical.

Persistence

atrium uses a write-ahead journal combined with periodic state snapshots. Every state change — pane layout, scrollback, working directory, adapter state — is written to the journal within a few seconds. On restart, the most recent snapshot is loaded and the journal is replayed to reconstruct the exact workspace state.

This is how atrium recovers from crashes, reboots, and force quits without losing your work.

Protocol system

The atrium:// protocol provides a URI-based dispatch system for internal operations:

  • atrium://commands/{action} — Pane, workspace, tab, and launcher commands
  • atrium://state/{scope}/{namespace} — State reads and writes
  • atrium://hooks/{adapter}/{hook} — Adapter hook dispatch
This protocol is what makes the workspace addressable and programmable rather than just a container for terminals.

MCP integration

atrium bundles an MCP sidecar that provides tools for compatible agents to interact with the workspace:

  • List panes and their metadata
  • Read visible terminal output from any pane
  • Write messages to other panes
  • Get workspace context (layout, branches, open files)
The sidecar is automatically registered with compatible AI tools on startup. This is the foundation for inter-agent coordination — agents can discover each other and collaborate without human mediation.