Your Claude sessions are buried in JSONL files across scattered directories.

Claude Code writes a generous trace of every session — token spend, tool calls, file edits, prompts, costs — but the format is line-delimited JSON, the location is implicit, and no tool reads it natively. AE-OS reads it.

The brief was simple to state and stubborn to deliver: parse the entire local session corpus, build a queryable index, and render a workspace that surfaces the four questions every Claude user eventually asks.

What is asked, repeatedly.

— How much am I spending on Claude across projects?

— Which tools does Claude reach for in my workflow?

— How do my sessions compare over time?

— Where is my token budget going?

Each is a different shape of query. The system answers all four from one index, with no extra parsing pass.

Index first, render late.

Sessions arrive as append-only JSONL. The indexer streams them once, builds a metadata graph (project, model, tool calls, cost rollups), and persists it to a local store. Subsequent queries hit the index, never the raw logs.

Render is GPUI — Zed's UI runtime. Native, GPU-composited, and able to hold tens of thousands of session rows in memory without flinching.

[ benchmark / index throughput ]
$ ae-os index ~/.claude/projects
  scanning   →  1,247 sessions discovered
  parsing    →  240.3 sess/s   (mean)
  indexing   →    5.2s         total
  rollup     →   12 projects, 4 models, 38 tools
  ready      →  http://localhost:9999

The interesting work is the index, not the chart.

Anyone can render a bar chart. The work that gives the product its character is the indexer's tolerance for malformed data, the rollup logic that survives schema drift between Claude versions, and the GPUI render pipeline that lets us treat the workspace like a real document instead of a scrolling page.

What changed mid-build: the original plan rendered the dashboard as a web view inside Tauri. We swapped to GPUI six weeks in, having seen the difference in interaction feel against thousands of rows. The web stack would have shipped sooner. The native stack will compound longer.

work