atrium — Docs
docs/panes.md

Panes overview

The pane types and what they share.

Every pane lives in the mosaic inside a room, has a stable UUID, appears in atrium pane list, and restores after quit/crash.

Pane types

TypeSummaryReference
Terminalxterm.js-backed PTY. Hosts shells and agents.Terminal
Agent chatAn agent over its structured protocol — transcript, approvals, diffs, subagents.Agent chat
EditorMonaco code editor with LSP, git decorations, multi-file subtabs.Editor
MarkdownRich editor for Markdown with RTE/source toggle.Markdown
NotepadProject-scoped notebook — markdown, sketches, interactive canvas, sandboxed HTML.Notepad
BrowserFull Chromium browser with DevTools, automation CLI, page annotator, subtabs.Browser
Source controlGit panel with staging, diffing, commits, branches, and the diff-review surface.Source control
SearchRepo-wide text and regex search.Search
TasksList and detail views for task cards.Tasks
ObservatoryVisual overview of project activity and history.Observatory
AchievementsOnboarding progress and unlocked achievements.Achievements
Diff reviewFollow-along surface for an agent addressing a sent review batch.Source control § Review
ViewersImage, PDF, video, diff, and snapshot viewers.Viewers
The Library is a popover, not a pane — it materializes saved layouts and panes into the active project. See Library & vault.

What panes share

Every pane supports:

  • Header with title, dirty indicator, and responsive overflow menu. Header actions collapse into an overflow button as the pane narrows, and the title truncates on the left so the file basename or session ID stays readable. The default title is auto-generated from the pane type and content; override it with atrium pane rename <id> --name <name>. Copy Pane ID and Copy Session ID sit in the context menu for sharing or debugging.
  • Split and subtab participation. Any pane can be dragged onto a split zone or another pane's header to join a subtab group. A + button in the header opens a new subtab on the same pane, and subtabs show a dirty indicator on unsaved state.
  • Resize handles with snap and restore. Drag a divider as usual, or use the inline snap / restore controls that appear on hover to quickly collapse a pane to the edge or pop it back to the previous size.
  • Focus cycling (Cmd+[ / Cmd+]) and click-to-focus.
  • Close with confirmation if the pane has unsaved state or a running process. Closing a room with several saved Library panes prompts to save each one individually.
  • Persistence — all pane-type-specific state is written to the project snapshot and restored on launch.
  • CLI targetability — every pane appears in atrium pane list with its type, name, adapter (if any), project, and room.

Opening a pane

Panes are opened via any of:

  • Keyboard shortcutsCmd+Shift+G (git), Cmd+Shift+F (search), Cmd+Shift+B (browser), Cmd+Shift+K (tasks list), Cmd+Shift+J (task detail), Cmd+Shift+N (notepad), Cmd+Shift+L (Library popover).
  • LauncherCmd+L opens the composer-first launcher on the focused pane. Home's More row and the toolbar Launcher button open it too.
  • File drop — drag a file from Finder to open an editor (or markdown editor, or a viewer) pane.
  • CLIatrium pane create --type <type> [--split <id>] [--cwd <path>] [--url <url>] [--focus].
  • Other panes — the git changes pane opens a diff pane; browser popups stack as browser subtabs; Cmd+Ctrl+T (or the pane-header New subtab item) stacks a fresh launcher pane as a subtab of the focused pane; the tasks list pane opens a task detail pane.

Closing

  • Cmd+W closes the focused pane.
  • The pane header menu has Close, Close others in split, and Move to new room/project.
  • atrium pane close <id> from the CLI.

Pane navigator

atrium has two sidebars, one on each side of the mosaic. Each side mounts one of five views, and a view can only be open on one side at a time — picking a view that's already on the other side swaps them.

The five views, in selector order:

  • Home — quick actions, pane launchers, and the project list. The workspace rail lives on the left sidebar (whatever view it's showing).
  • Activity — every running agent across the project, regardless of room, with jump-to-pane on click. See Activity sidebar.
  • File Tree — the active project's files, plus every project in a tree.
  • Timeline — a chronological feed of activity, with scope filtering, search, and one-click syntheses. See Timeline.
  • Skills & Agents — the skills and agents registry, with a workspace switcher and Skills / Agents subtabs.
The right sidebar's header is the mode switcher. The left sidebar's View options menu has a Change view item that opens the same list to the right. Traffic lights stay anchored to the left sidebar header (they hide when that sidebar is collapsed or you are in zen mode).

Cmd+B toggles the left sidebar; Cmd+Shift+A toggles the right sidebar; Cmd+Shift+2 toggles both; Cmd+Shift+1 toggles those plus the rooms sidebar.

The collapsed rail keeps a compact form of every mode. Right-clicking any project row offers the same actions as the tree view (open search, source control, edit, hide, remove, Move to workspace, Copy Workspace ID).

Rooms

Rooms render either as a horizontal tab bar (a detached floating pill) or as a vertical rooms sidebar between Home and the mosaic. The choice is per project — Ctrl+T flips it. See Rooms & wings.

Residents (docked panes)

A resident is a pane docked above or below either sidebar instead of living in the mosaic. Residents are resizable, collapsible to the rail, visible in every room of the project, and restored across restarts — handy for a panel you want always at hand (git changes, a notepad, the task list) without giving up a mosaic tile in each room.

  • Four dock slotsleft-top, left-bottom, right-top, right-bottom (one above and one below each sidebar).
  • Compact surfaces — the git-changes and notes residents render a compact list; the Tasks resident shows a compact task list with live agent badges. Clicking through opens the full view in a mosaic pane.
  • Docking by drag — drag a pane onto a sidebar dock slot to dock it; drag a resident back into a room to drop it exactly where you want.
  • Scope and pin — residents are scoped to their project by default. A global pin (always shown, accent-colored) keeps one resident visible across every project.
From the CLI:
# Dock an existing pane into a slot, or detach it back to the mosaic
atrium pane dock   <pane-id> left-bottom
atrium pane undock <pane-id>
atrium pane pin    <pane-id>          # toggle project-scope ↔ global pin

# Open a dock-eligible pane straight into a slot
atrium pane create --type git-changes --dock right-top
atrium pane create --type notepad     --dock left-bottom

Discovery from scripts and agents

Agents inside atrium can introspect the pane graph from the CLI. You can do the same from any shell with ATRIUM_CLI_PATH on your $PATH:

# Every pane, type, adapter, project, room
"$ATRIUM_CLI_PATH" pane list --json

# Just the agent panes
"$ATRIUM_CLI_PATH" agent list

# Just the browser panes
"$ATRIUM_CLI_PATH" browser list

Every pane carries an access scope (same-tab / same-workspace / all) that bounds which other panes it can read and write. See Agent messaging for how cross-pane addressing works in practice.