What Almost 1,500 AI Sessions Actually Look Like, Mapped Out
Building a force-directed graph of my own usage instead of staring at a session count that didn't mean anything on its own.
Nearly 1,500 sessions across Claude Code, Cowork, and Claude.ai. I'd known that number for weeks and it sat there meaning almost nothing, because a number on a page doesn't tell you a story. It just tells you a page needs a story added to it.
So I built one, in Claude Code, as a force-directed network graph of my own usage.
The structure: a root node in the center representing me, three surfaces branching out from it, Claude Code, Cowork, and Claude.ai, then categories branching further out from each surface, then every individual skill I'd built or used sitting underneath its category.
Step one was less glamorous than the visual result: flattening a deeply nested tree of sessions and categories into the flat list of nodes and links that D3 actually needs to render anything.
const nodes = [
{ id: "root", label: "My AI Usage" },
{ id: "surface-1", label: "Claude Code", parent: "root" },
{ id: "surface-2", label: "Cowork", parent: "root" },
// ...categories and skills nest under each surface
];
const links = nodes
.filter(n => n.parent)
.map(n => ({ source: n.parent, target: n.id }));That's most of the real work in a visualization like this. The graph itself doesn't look hard once it's up. Getting the data into a shape it can consume is where the time goes.
Step two was sizing and layout: circles sized by weight, so a category I use constantly renders visibly larger than one I've touched twice, and a force simulation pulling related nodes toward each other so the whole thing settles into clusters instead of a random scatter.
Here's what actually watching it settle told me, and it's the reason this was worth building instead of just accepting the 1,500 as an abstract number: Build and Automation pulled visible weight toward the center, dense clusters of large nodes. Other categories sat lighter, smaller nodes further out at the edges, present but clearly secondary. That's not something a dashboard number tells you. A count says how much. A graph like this shows you the actual shape of where your time goes, which categories are the center of gravity and which ones are orbiting.
I didn't need a new insight from outside to get this. I needed a different way of looking at data I already had, structured so the pattern could show itself instead of staying buried in a session log nobody reads end to end.
If you've got a large enough body of your own AI usage sitting in logs or session history, the number alone won't tell you much. Try mapping it instead: what's actually pulling weight toward the center of how you work, and what's just there, present but light, at the edges? What would your own AI journey graph look like if you built it?
Get new guides and builds in your inbox
No noise. New artifacts, skills, and lessons when they drop — and early access when agents launch.
Want a full structured path instead of one-off guides?
That's Learn AI with AI — a sequenced course that takes you from zero to building real things, with community and accountability built in.
Check out Learn AI with AI →