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 commandsatrium://state/{scope}/{namespace}— State reads and writesatrium://hooks/{adapter}/{hook}— Adapter hook dispatch
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)
