Back in this tab after an hour: what was it doing, and what did I ask it?
The reading view: your prompts as cards, each answer led by its first line, tool chatter folded. Step prompt to prompt.
Your questions stand out. Each answer leads with its first line.
The terminal stays exactly as the CLI printed it. Beside it, the reading view shows the same conversation re-laid: everything you typed is a card, every answer opens with its first line in weight, tool stretches fold into one dim row, and a counter steps you from one of your prompts to the next, newest at the bottom. Read one exchange shows the current question and the latest reply alone. Pick the size, the typeface, the spacing and the background; each pane remembers its own. No model in the path: nothing is summarized or rewritten, so what you read is what the agent said, and what you asked.
Five agents, five half-remembered plans. Which one had the migration?
Every conversation on one screen, each with its state, each readable without opening it. The one waiting on you is called out.
Seven agents. One screen tells you where each one is.
Every agent gets a status, and the sidebar adds them up: 1 needs you · 12m. The status comes from the agent CLI's own lifecycle events, not from guessing at terminal text, so working, needs you and finished mean what they say. Opt a conversation into the catch-up line and, when it goes idle, winglet writes one line saying where it stopped and names the tab after it, labeled as winglet-written, so "what was this one doing?" is answered before you open it. Click the count and you land on the one that has been waiting longest. The four-up reading grid is where the layout is headed; today the reading view opens one conversation at a time.
You switch to the other one and lose the thread of this one.
Ask a cheap model about the conversation. It answers with quotes. The agent never sees the question.
"Did the migration hit real data, or the test copy?"
A side chat next to one conversation. You ask in plain words; a cheap model reads the last few turns and answers with the verbatim lines it relied on, each one a link back into the transcript. It only reads. It never types into the agent, so your question does not become a prompt, and the agent's context does not grow. Coming next: the side chat is not in the build yet. What ships today for the same pain is the reading view above and the catch-up line.
Alt-tab whack-a-mole. And after a relaunch, rebuilding the whole desk from memory.
All of them in one window, arranged your way. Close it, relaunch it, it comes back as you left it.
Four agents, one window, dividers you drag.
Panes are real Windows terminals, tiled in one window. Drag a divider and the neighbors resize. Give the lead pane most of the screen, keep the others visible as a strip. The band at the bottom shows one line per agent, so a glance tells you that parser-crash is the one holding a question and the other three are still running. Close the app and relaunch: the layout and the running sessions come back.
The agent that sat idle for 20 minutes on a y/n question nobody saw.
A question for you is a state, with a clock on it, and it pushes.
"Waiting on you · 12 min" is not something you can miss.
When an agent stops to ask, winglet flips it to needs you, starts the clock, and lifts the question out of the transcript: the question, the options, nothing else. A desktop notification fires; a phone push is one opt-in away. A "done" notification only goes out when the agent's own test output rides along, so you are not interrupted for a bare "done".
You step away for coffee and forget which agent was working on what.
The same list, with a state on every agent, in a browser tab on your phone. Paired by QR, over your own network.
Who is doing what, from the couch.
Scan a QR code on the desktop and your phone gets the desk as an installable web app over your LAN. The top of the page is the count: 2 need you · 3 working. Open the one that is stalled, read the question the agent asked, type the answer. Everything else is a list below it, one state per agent, the done ones marked done, so coming back to the desk starts with a list instead of a reconstruction. Nothing goes through anyone's server; it is your PC and your phone on your network.
Tests, ports, branches, CI: each in yet another window you have to go and look at.
A plugin is a folder you drop in. It gets its own panel next to the agents.
Your own panels, in any language that can write a file.
Drop a folder into plugins/ with a manifest and a panel description and winglet shows it as a panel beside your agents. A script in any language can fill it; bundled examples cover a radar of all your conversations, test results, git worktrees and the weather. Plugins that ship code stay inert until you approve them by hash, so a cloned repo cannot run anything on your box without you saying so.