I maintain Termexo, an MIT-licensed Windows workbench for Claude Code, Codex, OpenCode, Grok Build, and Antigravity. When several agent terminals are open, the useful question is not simply whether they produced output. It is which agent is running, which needs approval, and which result still needs a human review.
The last five releases, v0.10.5 through v0.10.9, improve that path from starting a workspace to confirming finished work.
Why status can move backward
An agent's lifecycle events, terminal input, PTY exit, and recovery state can all update the UI. Their delivery order is not guaranteed to match the order in which the work happened. For example, an idle event from startup can arrive after a running event. If the UI blindly accepts both, the agent appears idle while it is still working.
In v0.10.8 I checked the installed CLI behavior of all five supported agents. OpenCode 2 now uses its current plugin interface to report execution, input requests, failure, and completion; Grok Build uses lifecycle hooks. Late startup or idle events no longer overwrite newer state. Keyboard input is interpreted in context too: Esc interrupting a turn, Enter submitting a prompt, and an approval option should not all mean “the agent is running.”
Real product screenshot, captured in an earlier version. The v0.10.9 icons should be judged in the current app.
Put the status where the user looks
v0.10.8 placed agent status on the workspace row. v0.10.9 makes it a compact set of icons in terminal order: gray idle, animated green running and thinking, red error and approval, and a green check for completion. Hovering an icon shows the terminal's current name, including any rename.
A green check is a reminder, not acceptance of the generated code. Open the terminal, inspect the output and changes, then click Confirm completion to clear the reminder. A live terminal returns to idle; one that has exited becomes stopped.
Where the Git branch comes from
The terminal corner once risked showing a saved default such as main after the repository had changed. In v0.10.9 the branch is read from Git for the selected terminal's launch directory. Selecting another terminal clears the old branch until its own check completes. Non-Git directories and unknown results stay blank.
The boundary matters: if you run cd into a different repository inside the shell, that corner label does not follow the shell's new working directory. The label describes the terminal's launch directory.
Keep the workflow after a restart
v0.10.5 stores task-board state and snapshots in local SQLite, with snapshot import and export. v0.10.7 guides a first workspace through project selection and CLI checks, with repair and retry paths. It saves the project before launching the agent, and preserves the entered settings if saving fails. v0.10.6 also fixed OpenCode v2 per-session servers inheriting the workspace proxy and switched installation to the current @opencode/cli package.
Termexo currently targets Windows x64. You can download v0.10.9, browse the source, or watch the 30-second workbench recording. Agent CLIs, accounts, and model services require their own setup. Generated code still needs human review.
Prepared with AI from the project release notes. Screenshots show the real UI; older captures are labeled.


Top comments (1)
Late idle events overwriting a newer running state is such a common bug, and it's good to see it fixed at the source instead of with a debounce. A guard that tends to hold up across reconnects: give each status event a sequence number from the agent side and have the UI drop anything older than what it already shows. Arrival order stops mattering.
The opposite failure is worth watching for too. We run coding agents server-side (I'm building Mythex, an AI app builder), and a flood of streamed progress labels once cost us a worker's memory: every tiny streamed piece re-sent the whole label. Capping the label's length and throttling how often it's sent fixed it.
Also like that the green check is a reminder, not an approval.