The TUI
A terminal workbench for your agent fleet — live signals, a dependency-graph view, and mid-run chat with any agent.
Since 0.72.0 baro's terminal UI is a workbench: an icon rail, an explorer with your agents and changed files, a main view that switches between activity, plan, stats, diff and decisions — and an input strip that lets you talk to a running agent.
Layout
┌ BARO · project · goal · mode · ● running · 2/4 · time · tokens ────┐
│ ┌────┐ ┌ Agents ───────────┐ ┌ activity — S2 ────────────────────┐ │
│ │ 1A │ │ ▶ S1 title │ │ $ npm test │ │
│ │ 2P │ │ codex │ │ ▷ you → S2: also cover the empty │ │
│ │ 3S │ │ ▶ S2 title ✓critic│ │ › Adding the edge case now… │ │
│ │ 4D │ │ claude:opus │ │ │ │
│ │ 5◆ │ │ Changes (3) │ └───────────────────────────────────┘ │
│ └────┘ └───────────────────┘ │
├ progress ──────────────────────────────────────────────────────────┤
└ ● running · run id · branch · PR ──────────────────────────────────┘Every agent row carries live signal pills as the run unfolds: ↻2
retries, ✓/✗critic verdicts, ⚠stall when the Supervisor intervenes,
✓merged when the story's work lands, ✂replan when the Surgeon rewires
the plan — plus the backend/model the story was routed to, on its own line.
The plan view (key 2) shows the dependency graph with live level
states, replan surgery (added stories marked +, removed ones struck
through with the reason) and recovery attempts as their own sections.
Talk to a running agent
Select an agent in the explorer (Tab → arrows) and press m. The bottom strip becomes an input — type and press Enter:
→ S2 ▸ also add a test for the empty-output edge case▌ Enter send · Esc cancelThe message is delivered to that agent on its next turn (the same channel
the Critic uses for corrective feedback), echoed into the activity feed as
▷ you → S2: …, and recorded in the audit log. Backends differ in how
promptly they pick messages up; the message is never lost — it rides the
bus.
After a successful run the same input strip handles follow-ups: press f and describe the next change — baro continues on the same PR.
Keys
| Key | Action |
|---|---|
1–5 | main views: activity · plan · stats · diff · decisions |
← → | cycle views |
Tab / Shift+Tab | cycle focus: main → Agents → Changes |
↑ ↓ | scroll (main) or move selection (focused explorer section) |
m | message the selected running agent |
f | follow-up after a successful run |
e | toggle the explorer |
[ ] | resize the explorer |
Esc | close input / un-pin the activity filter |
r | re-run failed stories |
q | quit |
Selecting an agent pins the activity feed to it; selecting a file under Changes jumps the diff view to that file. On narrow terminals the rail and explorer collapse automatically — everything stays reachable via the keys.
LLM providers
baro runs on three end-to-end LLM paths — Claude Code, OpenAI Codex CLI, and Mozaik-native OpenAI. Same DAG, same orchestration, three completely different transports underneath. Plus a hybrid preset that mixes them per phase.
Execution modes
baro classifies every goal as focused, sequential, or parallel — before the first agent spawns — and enforces the decision in code.