session-viz reads the transcripts Claude Code already writes to your disk and tells you what your sessions and autonomous agents actually did — what shipped, what silently failed, and what it cost. It has no person column, and it prints what it declined to conclude.
A scheduled job ran for 30 days, cost real money, and shipped nothing. It announced the same next instalment on every run. Every conventional signal was green — coherent transcripts, correct plans, no errors on five of the runs — and a human walked back into twelve of those sessions without noticing.
Almost your entire bill is cache-read — context replayed to the model — not text it generated. It never appears in a per-session view, and on this machine it was 24.19B tokens against 85M of output.
Subagents are the fleet nobody watches. They were 94% of all runs and 99% of autonomous spend. One parent session spawned 347 children; the median parent spawns 26.
One agent definition failed its caller's schema seven times more often than another. The 95% intervals do not overlap, so the difference is real — and it is a property of a file you can edit, not of a person.
Fleet observability and a private place to learn are only compatible if the boundary between them is a property of the schema rather than a promise in a policy document.
Schematic. The agent families and their proportions on plane A are from the reference corpus; the three-person team on plane B illustrates the supported topology, not a measured headcount.
You cannot hand a task from one person to another without knowing both. So the collaboration plane knows them — and is structurally unable to be turned back into per-person performance measurement, because the join does not exist and the service refuses to start if a migration adds one.
Structurally uncomputable. There is no person column to group by, so this is not a setting that can be turned on later.
Adoption replaced the old model wholesale, so there is no week where both ran at volume. The difference is unattributable — not weakly, but not at all.
On 1,075 turns, not one prompt-form signal survived a workload control. The raw correlations were inverted by task difficulty; naming a file appeared to double friction.
The transcript format moved twelve times in sixty days. Any window straddling a change point is returned blocked rather than rendered.
The parser and the statistical gates are the credibility, so they stay open and local. What you can pay for is not seeing your own data — it is somebody else operating the fleet plane and answering the phone.
Roll your own. The whole tool, on your machine.
Nothing is held back. A user who never contributes anything still gets the full local report.
We run the collaboration plane and the reference table.
Priced on agent-runs because that is the unit the product measures. Counting people would require identifying them, which the telemetry plane is built not to do.
For teams putting this in front of a works council.
The transcript format changed twelve times in sixty days. Keeping a parser current is the single most valuable thing to outsource.
$ claude plugin marketplace add QSchlegel/qs-plugins $ claude plugin install session-viz@qs-plugins # one session, with a tuned /compact line $ /qpact # every session on the machine $ /qtrends
Runs entirely locally. 600 MB of transcript parses in about two seconds, so there is no cache and no daemon.
# optional: the collaboration plane $ curl -sX POST $HOST/v1/mcp \ -H "authorization: Bearer $TOKEN" \ -H "x-actor: you" \ -d '{"jsonrpc":"2.0","id":1, "method":"tools/list"}' vault_list vault_register vault_resolve vault_dangling task_create task_offer task_accept task_done task_list events_recent
Stateless MCP over HTTP JSON-RPC. No session to keep, so it survives being moved between machines mid-request.