← All notes
· 6 min

A status bar on steroids

My manager agent kept the records, but I still had to dig through its scrollback to find what needed me. So it got a pane beside the chat: the one thing to do next and why, which sessions are waiting on me, and the approvals only I can give.

In the last note I described a manager agent: one Claude Code session that keeps the records for my side projects, writes the specifications the other sessions build from, and never relays an approval it did not get. It works. It also talks a great deal.

Every report from every session lands in one conversation. A push to approve, a question about a price, a finished test run, a reminder about something I promised at home: all of it scrolls past in the same column. The records were complete. Finding the three things that needed me, in a terminal full of everything else, was not.

What I tried first

Claude Code’s plugins can now carry an interface module: a pane beside the chat, tabs, framed boxes, colour, links. My first idea was to move the decisions into it.

The first version was a list of open questions, each with its choices to tick. The second showed one decision at a time, with its full text and pictures. Both were hard to read. A narrow terminal pane is a poor place for three paragraphs about a price, and the dashboard my manager already generates, an HTML page served from a small home server, is a good one. Long text reads better in a browser.

So the pane became a glance, and the reading stayed on the page. Every line in the pane links to its card on the dashboard.

What it shows

Four tabs, in the order I settled on after a day of using them:

 Dashboard   Summary   Approvals (1)   Messages
+-----------------------------------------------------+
| Recommended                           written 15:09 |
| PRJ-12 · How the secret cards are found             |
| What: pick one of three ways, with the render.      |
| Why:  the game session holds this part until then.  |
| Where: the dashboard's card, or tell the manager.   |
+-----------------------------------------------------+
+-----------------------------------------------------+
| Sessions                                            |
| * game        waiting 4 min · a choice on the cards |
|   website     busy 1 min    · Run the full tests    |
|   library     idle 2 h                              |
+-----------------------------------------------------+
+-----------------------------------------------------+
| Decide next                              5 open     |
| * PRJ-12  How the secret cards are found    today   |
|   WEB-7   Screenshots for two project cards  2 days |
|   LIB-3   Ship the contributor's code       9 days  |
+-----------------------------------------------------+
+-----------------------------------------------------+
| Dates                                               |
| Mon 2 Nov    Renew a signing certificate            |
| Thu 12 Nov   A dentist's appointment                |
+-----------------------------------------------------+
  • Dashboard. At the top, Recommended: the single action the manager thinks I should take next, with a sentence each on what to do, why it comes first and where to do it. The manager rewrites it whenever it refreshes the dashboard, and prefers whatever unblocks a working session or takes me a minute. Below it, the running sessions, read every 30 seconds from Claude Code’s own session registry: the ones waiting for me first, each with its latest tool call (“Run the full tests”). Then the decisions to make, oldest marked once they pass a week, and the dates of the next 90 days.
  • Summary. The manager’s own account of the day so far, by project, outcomes first, and under it what the records logged today. At the end of an afternoon away, this is the tab I read.
  • Approvals. Some things I must approve in the session that will do them, never through the manager: a push to a public repository, a change in a store’s console, anything that costs money. Each gets a block: the session, what it waits for, why, what it will do once I say yes, and the choices with the recommended one first. The tab only shows; I answer in the session.
  • Messages. Posts the manager has drafted for me to send, shown in full, with Approve and Reject. Approve counts as my yes to that exact text, identified by its hash; a post edited after its draft loses the button, and the send itself still stops at Claude Code’s permission prompt.

The rules it keeps

  • It never approves a tool call and never writes the records. Its only output is a message to the manager, labelled as coming from the pane, which the manager records like any other answer.
  • It reads the other sessions’ messages to spot the ones waiting for me, by their first line only, and passes every one on unchanged.
  • It uses the terminal theme’s colour names, never raw colours, so it reads on light and dark backgrounds.
  • Short lines only. Anything longer is a link.

How it was built

It went from its first useful version to the one above in twelve versions, between 11:41 and 15:55 on 27 October. Most changes came from me looking at it and saying what was wrong: a band above the prompt that repeated what the sessions list already showed went; per-project counters went, because I never looked at them; the tab order changed twice.

Each version came with tests, and each new rule was broken on purpose once to see a test fail. The mod ended the day with 31 tests. The Approvals tab was written by a helper agent from a written brief; the manager ran the tests itself and read the change before installing it.

The uncomfortable part

  • A button that counts as my yes. Approve is guarded by the exact text’s hash and by the permission prompt behind it, but it is still one tap. Being quick is the point, and quick is also the risk.
  • It shows the records, not the truth. If the manager forgets to write something down, the pane is confidently wrong. The status line’s “next” hint once showed a task finished the night before.
  • I described my own tool wrongly. I wrote down that the installed plugin was a versioned copy that only an update could refresh. The next reload reported that it reads the plugin straight from its folder. I corrected it within the hour, after it had gone into two documents.
  • The ID counter read its own diary. The tool that hands out item numbers counts every number the records have ever mentioned. After I logged a bug in it, it read the log entry and offered an item number in the hundreds of thousands. Counting only where an ID is defined is the fix, and it is next.
  • No pictures in my terminal. The pane can draw images, but only in terminals that speak the Kitty graphics protocol. Mine shows the alt text.
  • “Settled” is my word. It changed twelve times in one afternoon. I called it settled that evening because I needed it every day, not because a measurement said so.

The method behind the manager is written up as a guide with a working kit, One Manager, Many Agents: on Gumroad, with more about it on its page here. The next version adds this pane, and buyers receive it as an update.

— More notes