A multi-agent terminal that runs your own CLIs in switchable, splittable panes with an agent-aware status bar and borders, so a whole grid of agents stays legible at a glance. Zero third-party dependencies, all the way down.
Run more than one coding agent and the terminal falls apart: you lose track of which agent is working, which is blocked waiting on you, and which finished ten minutes ago. Tabs do not help; a backgrounded agent is invisible.
atrium gives every agent a pane and reads each one's real status, working or waiting on you or idle, straight from the agent's own session, so the chrome tells you where to look. Then one human, through a couple of coordinator agents, can drive a whole bench of workers, every one a visible, killable pane. It does this with no third-party code: the pseudo-terminals, the VT parser, the screen diffing, and the status reader are all nativelite crates.
$ cargo install atrium
The control plane and fleets rely on two Claude Code skills. Without them a
hosted agent does not know the control plane exists, so install them from the nativelite
marketplace before running --allow-ctl sessions or atrium fleet up.
> /plugin marketplace add nativelite/marketplace > /plugin install atrium@nativelite
$ atrium claude # every pane runs claude $ atrium # every pane runs your shell $ atrium -n 4 claude # four agent panes at once, a 2x2 grid $ atrium fleet up crew # bring up a saved roster of named agents
| c | new window |
| " / % | split the focused pane stacked / side-by-side |
| h j k l | move focus between tiles |
| z | zoom the focused pane full-screen and back |
| b | the board and bus dashboard |
| o | the overview panel (many agents at a glance) |
| x / q | kill the focused pane / quit atrium |
A single or zoomed pane renders in passthrough, so a TUI looks pixel-exact. Two or more panes render tiled, each in its own emulator, composited into one screen.
Read-only, status only, never conversation text. The pane chrome shows who is blocked:
Run an agent under a vault key or a WIF profile with --identity.
Only the name is ever shown, never the secret.
Built on the nativelite stack: pty, rawterm, ansi, vterm, agsess. No third-party code anywhere in the tree.
With --allow-ctl, a pane can spawn, send to, observe, and kill other agent
panes, turning atrium from a viewer of agents into a runtime for them. Because every agent
is a visible, killable pane with a status border, the whole hierarchy stays legible, which
opaque subagents are not.
$ atrium --allow-ctl --trust claude $ atrium ctl spawn --role lead -- claude $ atrium ctl send lead "Own the parser rewrite. Split it across two ICs." $ atrium ctl status # roll-up of your subtree $ atrium ctl list # the live org chart
It stands on three pieces: ctl (spawn / send / status / kill), the board (a shared key-to-fields source of truth), and the bus (a topic pub/sub event stream with fyi and decision-needed urgencies). Trust governs how hands-off it runs.
The full guide, in the terminal theme:
the zero-dependency stack and passthrough-first rendering.
how atrium reads working / waiting / idle, and what it can and cannot see.
per-pane keys and WIF profiles via --identity, names never secrets.
saved rosters and the atrium.fleet.json spec.
the full ctl reference, the board, and the bus.
the trust ladder and the seven-point security model.
how a pane's whole process tree is torn down, safely.
install, quickstart, reference tables, design and scope.