I never understood why everybody is fine with (and actually try to copy it multiple times) a single chat interface for ai agents, where you have one conversation on the whole screen. I frequently run many coding agents in parallel (Claude Code, Codex), and after some time I lose the picture of where which subagent is and who spawned whom, which is working and which it not. Agents finish or die quietly and I find out half an hour later
And the information about the agents was already sitting on the disk. Every session writes a JSONL transcript under ~/.claude or ~/.codex, every subagent gets its own file. So I built a local web UI that reads these files and shows the selected one as a live chat feed with expandable tool-call cards. There is almost no database and everything runs on 127.0.0.1
The hardest part was (still is) the parentage tree. The scanner reads the transcripts, recovers the links and builds one tree per project, from the root conversation down to the last background shell task
I wanted a layer built from real processes and real logs, that already exist if you are already using Claude Code and Codex, to see what's happening. But I didn't stop on just that
The viewer can change nothing in your workflow. Orchestration still runs headless, you can never open the app, it reads the same tmux panes and logs that exist anyway. But when a subagent already did the work and I need one more fix, I can throw a message straight into its pane - so I'm able to reuse subagents freely
I also have added Claude Code and Codex limits pane on a sidebar, voice transcription, Review cycle loop, and workflows (haven't tested properly the latest one, though). Will continue working on that.
I vibecoded the whole thing with Claude Fable 5 and Codex, mostly to test the model. Glad I did, because earlier I tortured Codex with much simpler versions of a similar idea and it struggled a lot. Fable nailed it
Possibly I created it because I have ADHD and holding ten parallel agents in my head is hard, but something tells me I am not the only one
Try it, contribute: send 'bunx agent-log-viewer and set it up' to your agent.
its for Linux, with limited macOS support, and no Windows support yet.