My Terminal Knows When the Agent Needs Me
A terminal multiplexer that knows when the agent in the pane is working, waiting on me, or done. That's the feature no tmux config can give you.
A few days ago I shelved my own multiplexer and moved to one that already exists, a Go terminal window manager called tuios. The reason I switched is also the feature I keep coming back to: the terminal knows what's actually running in each pane, not just that a process is attached to it.
When the agent I do most of my work with runs in a pane, it reports its state through a small extension. Working. Needs input, with the message attached. Done. The multiplexer draws that on its sidebar, and when the agent is waiting on me, an inbox row shows what it wants and how long it has waited. There's a sound hook too: one chime when it needs me, another when it finishes.
This is the part tmux never had, because tmux treats a pane as a pty and nothing more. If I wanted to know whether an agent was finished, I'd type into the pane and eyeball whether a prompt came back. That's polling. It can't tell the difference between done, stuck, and waiting for me, and it costs my attention every single time. Asking the process directly instead of reading the screen is the difference between a status and a guess.
The bug that sold me on the mechanism was an attribution race. On the version I first ran, an agent report that claimed a pane read as harnessless, because the report path predates the omp harness and drops its id, and a harnessless report outranks detection, so the sidebar kept labeling that pane with the wrong wrapper. The fix was one flag that records the harness id verbatim, so the attribution survives even when the report arrives first and wins the race. I don't usually enjoy reading protocol-race notes. That one I did, because it explained a wrong label I'd been seeing on screen.
The hard part turned out to be restraint, not detection. A sidebar that lists every agent pane all day is noise, so idle rows fold into a single "+N at rest" line after thirty minutes and empty sections hide themselves. It knows the difference between surfacing the agent that needs me and wallpapering the screen with the ones that don't.
I've been running this for a few days and I still catch myself flipping to the agent's pane to confirm what the sidebar already told me. The old looking-at-the-screen habit is the last thing to die. I'm fine with that, it's how I know the change is real.

