Repository navigation
atrium 0.39.0
The mod release. atrium now carries a Claude Code plugin of function hooks
inside its binary; atrium mod install writes it out once, and every claude
pane atrium spawns loads it for that session only. With the mod in the engine,
three things atrium used to infer from the transcript become certain (a pane's
status, its context fill and cost, the text of its answers), sends and wakes
stop being keystrokes, the control plane becomes typed tools, and a subagent is
a pane the human can see. Nothing changes for a pane that has no mod: the
inference and the pty path stay as they were. Six new ctl verbs carry it.
Install or upgrade with cargo install atrium, then run atrium mod install
once; atrium fleet up says in its preflight whether the mod is installed.
Added
- The mod: a Claude Code plugin in every claude pane.
atrium mod install
writes a plugin of function hooks out of atrium's binary; every claude pane
atrium then spawns loads it (CLAUDE_CODE_PLUGIN_DIRS, withATRIUM_BIN
naming the atrium to call). Inside the engine it reports the pane's status
the moment it changes (working,waiting-approvalwith the tool as the
reason,waiting-prompt,idle,errored,ended), its context fill and
cost, and the text of each answer, over the control channel with the pane's
own token. A reported status wins over the transcript inference for two
minutes;erroreddraws the border red with a!badge and the overview
showsctx 41% $0.12per agent.atrium mod statussays what is installed;
"mod": falseinconfig.jsonor a fleet keeps it out. - New ctl verbs
hello,report,whoami,inbox,answerandwait:
the first four are what the mod speaks and are about the caller only (a
targetis refused);answerreads a pane's last reported answer up the
spawn tree, andwaitpolls for it, for idle, or for exit. - Native delivery. A pane whose mod declared
inboxis never typed into:
ctl sends and bus wakes wait in the queue until the mod collects them and
submits each through the engine's own prompt queue, which starts a turn only
when the session is idle. A task may span lines; a pane without the mod
keeps the pty path. - Typed control-plane tools. With the mod, a claude pane has
atrium_spawn,atrium_send,atrium_status,atrium_list,atrium_kill,
atrium_board_*andatrium_bus_*as tools; each call is oneatrium ctl
run, and an ask for one of them is answered by the mod, never a dialog. - The role section and the file guard. The mod appends an
atrium:role
section to the system prompt fromwhoami(pane, role, parent, mode, item,
owned files, worktree, whether it may spawn) and refuses anEdit,Write
orNotebookEditoutside the item's files, by real path, naming the owner. - The
/atriumpane, the decisions band, andrespawn_at. Inside Claude
Code,/atriumopens a pane with the open decisions (resolve buttons with
hotkeys), the board and the last bus events; a band above the prompt counts
open decisions. Fleet keyrespawn_at: <pct>: a pane whose context fill
crosses it while idle gets one decision posted to its parent on theatrium
topic, never a respawn by itself. - Subagents as visible panes.
atrium_subagentspawns a claude pane beside
the caller, sends it the task, waits for the answer its mod reports, closes
the pane unless kept, and returns the answer; the model's Agent tool is
refused with a pointer to it. Fleet keyssubagents(panes|native|
deny) andsubagents_keep; config keymod;ATRIUM_MODnames the
mod's folder. The fleet preflight states the mod's line and warns when claude
panes would load none.