Watching builds from an AI agent: the juneau-terminal board
AI coding agents such as Claude Code run builds and test suites for you. A full Maven build prints thousands of lines that neither the agent nor you will read, and while it runs the agent just waits. The juneau-terminal board gives both of you a compact live view instead: one row per step, a progress bar, test counts and a time estimate.
Below, Claude Code sits on the left of a tmux window. On the right, a side pane runs python3 scripts/push.py, which builds and tests the Juneau reactor and then commits and pushes. The board is on top and the full log below it. Idle time in the recording is shortened, and parts of the Java and Python test runs are cut.
How it works
juneau_terminal.pywraps the tool's command, so the build runs exactly as it would without it.- A parser for each tool turns its output into steps, sub-steps and test counts. See Running one command.
- The board view shows one row per step. The tool's complete output goes to a full log, and the rows go to a board log, so nothing is lost and a failure can be read back in detail.
- Each run records its timings and test counts, and later runs use that history for a percent and a time estimate.
- With
TERMINAL_MARKERS=1the run also prints run-protocol markers, which a runner or an agent UI can follow. See Driving a Run from Another Tool. - tmux puts the run in a side pane next to the agent. The pane is a real terminal, so the board redraws live while the agent waits for the exit code. See Watching a Run from an AI Agent.
Works with
Each of these has its own output parser:
- Maven: one bar block per module.
- Gradle
- Bazel
- pytest: a bar block per test file, through a plugin.
- Playwright: a bar block per test file, through a reporter.
- npm: shows the step and any npm errors, without a test breakdown.
Anything else runs through a generic parser: you still get the step, its time and the logs, but not the counts. tmux is not a build tool. It is what makes the side pane possible.
Try it
- juneau-terminal: the engine and the board view.
- Watching a Run from an AI Agent: the tmux side-pane setup.
- Driving a Run from Another Tool: following a run from your own tool.
- The module README: the full reference.