{"slug": "visualizing-coding-agents-across-providers", "title": "Visualizing Coding Agents Across Providers", "summary": "A developer built Agent Guild, an open-source local dashboard that runs coding agent CLIs from five vendors side by side and visualizes what each is doing. Rather than scraping terminal output, it installs reporters into each tool's hooks to capture events like shell commands, helper-agent spawns and permission requests, falling back to screen output only to infer whether a session is still working. The project explicitly surfaces gaps in vendor reporting — for example, Antigravity CLI exposes no helper-agent data, shown as \"reporting off\" rather than a blank row — and renders the same state as both a card board and a spatial \"Yard\" view.", "body_md": "Four agents were working for me on a Tuesday night. One was rewriting a database layer, one was chasing a flaky test, one was drafting docs, and one was doing something to the build that I had stopped following an hour earlier.\n\nAt 11:40 the fourth one went quiet.\n\nWas it finished? Stuck? Sitting on a permission prompt, politely waiting for me to type \"yes\" while I was in another window? The screen had simply stopped moving.\n\nThat silence is why I built [Agent Guild](https://github.com/oddessentials/agent-guild), a local page that runs every coding agent CLI side by side and draws what each one is doing. This post is about the drawing: how you visualize agents from five vendors who each describe their work differently, and where the picture has to admit it can't see.\n\nA terminal does not label anything. Nothing on the screen says \"this is a shell command\" or \"this is the agent asking for help\". If the screen is all you have, you are guessing from the shape of the text, and the guess breaks every time a vendor changes a spinner.\n\nSo the screen can't be the source of truth. Every modern coding agent has hooks: a way to run a small program when something happens, such as a turn starting, a command running, a helper agent being spawned, or a permission being requested. Agent Guild installs a small reporter into each tool's hooks at launch. The reporter turns each event into a short message to a local manager: \"session 12 ran a shell command\", \"session 12 is waiting on permission\", \"session 12's helper finished\".\n\nThe screen becomes the fallback. The only thing taken from it is whether output is still flowing: a card says **Working** while it is, and drops back when it stops. That is an inference, and the page treats it as one.\n\nThe first picture is a board of cards. One card per tool at the top, with its account, usage left and model grades. One card per session below, with the model in use, the working folder, and the session's helper agents as lettered circles.\n\nLook at the Antigravity session in the bottom left. Its agents row says **reporting off**, with a **Why?** beside it. That is the most important pixel on the page. A blank row would look like \"no helpers running\". Saying \"I can't see this\" is the difference between a dashboard you can trust and one that quietly lies.\n\nThe board is only as good as what each tool will tell it, and the tools disagree a lot. Here is what each one reports today:\n\n| What the board can show | Claude Code | Codex CLI | Grok Build | Docker Agent | Antigravity CLI | \n|---|---|---|---|---|---|\n| Model in use | Yes | Yes | Yes | Yes, from 1.100.0 | Yes | \n| Helper agents | Yes | Yes | Yes | Yes | No | \n| Shell commands | Yes | Yes | Yes | Only the ones it asks about | No | \n| Waiting on your permission | Yes | Yes, but not refusals | No | No | No | \n| Turn ended by an error or a cancel | Yes | Cancel only | Yes | No | No | \n| Usage left | Yes | Yes | No | No | No | \n\nA few of those cells took real digging:\n\nNone of this fails loudly. The card for a Grok session simply shows less than the card for a Claude session, and a reasonable person assumes the app is broken rather than the tool being quiet. Half the work went into making the gaps visible instead of empty.\n\nCards are good for reading. They are bad for glancing. With six sessions open, I wanted to know who needed me without reading any text at all.\n\nSo the same facts are also drawn as a place. In the Yard, each tool is a hall, each session is a character working outside its hall, and each helper agent is a smaller figure that works, waits, idles or finishes. The roster and an inspector sit beside it, and double-clicking a character opens its terminal.\n\nThe Yard reads the same reports as the board. It doesn't know anything more. A Grok character has nothing to show for a permission wait, for the same reason the Grok card doesn't. What changes is how fast your eye finds the one that stopped moving.\n\nThe Yard also fits places a board doesn't: there's a [VS Code extension](https://marketplace.visualstudio.com/items?itemName=OddEssentials.agent-guild) that shows it in a small view beside your code, and the whole page works from a phone over Tailscale. The sessions run in a background manager rather than the browser, so closing the tab, or walking away with your phone, doesn't stop anything.\n\nSuppose every tool reported perfectly. You still wouldn't know if the work was finished.\n\nEvery hook that sounds like \"finished\" means something smaller. A stop event fires at the end of every turn, not the end of the job. A session-end event is a cleanup signal that doesn't fire if the process crashes. Even the final result record of a headless run only tells you the agent stopped talking.\n\nThe people running agents unattended have all landed on the same answer, and it isn't a hook. It's evidence: the tests pass, the pull request exists, the CI run is green, a second reviewer found nothing. The controller decides what done means, never the agent.\n\nThat reframed what a visualization is for. It can't tell you the work is finished. It can tell you, as honestly as each vendor allows, what every crew is doing and which one just went quiet, so you open the right door at the right moment. The checking is still yours.\n\nWith Node.js 22 or newer, on Windows, macOS or Linux:\n\n```\nnpm install -g @oddessentials/agent-guild\nagent-guild\n```\n\nOr try the [demo in your browser](https://oddessentials.github.io/agent-guild/), simulated with nothing installed.\n\nI'd love to hear how you keep track of agents from several vendors, and which gaps in that table bite you most. If you know a hook I've missed, tell me in the comments.", "url": "https://wpnews.pro/news/visualizing-coding-agents-across-providers", "canonical_source": "https://dev.to/oddessentials/visualizing-coding-agents-across-providers-3de7", "published_at": "2026-10-22 03:30:38+00:00", "updated_at": "2026-10-22 03:40:33.639612+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["Agent Guild", "Claude Code", "Codex CLI", "Grok Build", "Docker Agent", "Antigravity CLI"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/visualizing-coding-agents-across-providers", "markdown": "https://wpnews.pro/news/visualizing-coding-agents-across-providers.md", "text": "https://wpnews.pro/news/visualizing-coding-agents-across-providers.txt", "jsonld": "https://wpnews.pro/news/visualizing-coding-agents-across-providers.jsonld"}}