reads the session logs your AI coding tools already write to disk — Claude Code, Codex, Gemini, Cursor, opencode & more — and turns them into analytics: tokens, tool calls, context pressure, retries. Native macOS, private, free & open source.
I build my own product, and these days most of the work runs through AI coding agents — Claude Code, Codex, Cursor — plus a pile of custom MCP servers I've wired up. Which is great, until a session goes sideways and you're left wondering: which tool ate all the context? Why did this run balloon past 600K tokens? Is that MCP actually pulling its weight, or just poisoning every prompt?
With a lot of custom MCPs it's genuinely not trivial to see what's happening, and reading raw JSONL logs to find out is miserable. So I built AGANAL — a native macOS app that reads the session logs your agents already leave on disk and turns them into analytics. One shared model across every provider, so the same dashboard works whether the run came from Claude Code, Codex, or opencode.
Where it's earned its keep: finding the MCPs and MCP functions that quietly poison a session — the tools that fire on every turn, dump huge results into context, or never get used at all. Once you can see tool usage, token cost, and context-by-category per run, it's obvious what to cut. Trim a noisy MCP (or a couple of its functions) and the agent gets faster, cheaper, and sharper.
What's inside: - 📊 Tokens over time, tool-call breakdowns, context-window pressure, retries - 🔎 A filterable event stream — with the raw JSONL underneath - 🤖 A CLI and an "Analyse with Agent" tab that hands any session to an LLM to summarize / find errors / review cost - 🔒 100% local — it only reads files already on your disk. No account, no upload, no telemetry.
It's free and open source (Swift/SwiftUI). Fun bit: the app's own agent-analysis feature caught a real token-counting bug *in the app* while I was testing it 🙂
Would love your feedback — especially which signals you'd want for spotting context bloat, and which agents to add next.
Finally a way to see what claude code and cursor are actually doing under the hood. Token spikes and context pressure graphs were eye opening on my own sessions. Runs smooth on mac.
Love that it just reads the logs already on disk instead of hooking into the tools themselves. That kind of passive design is exactly right for something local and private, and shipping it open source on top is a nice flex.
Finally something that surfaces context pressure across my Claude and Codex sessions without sending data anywhere, that privacy angle sold me. The token and retry breakdowns are exactly the metric I didn't realize I needed.
Replies
VTT for Mac
Hey Product Hunt 👋
I build my own product, and these days most of the work runs through AI coding
agents — Claude Code, Codex, Cursor — plus a pile of custom MCP servers I've
wired up. Which is great, until a session goes sideways and you're left
wondering: which tool ate all the context? Why did this run balloon past 600K
tokens? Is that MCP actually pulling its weight, or just poisoning every prompt?
With a lot of custom MCPs it's genuinely not trivial to see what's happening, and
reading raw JSONL logs to find out is miserable. So I built AGANAL — a native
macOS app that reads the session logs your agents already leave on disk and turns
them into analytics. One shared model across every provider, so the same
dashboard works whether the run came from Claude Code, Codex, or opencode.
Where it's earned its keep: finding the MCPs and MCP functions that quietly
poison a session — the tools that fire on every turn, dump huge results into
context, or never get used at all. Once you can see tool usage, token cost, and
context-by-category per run, it's obvious what to cut. Trim a noisy MCP (or a
couple of its functions) and the agent gets faster, cheaper, and sharper.
What's inside:
- 📊 Tokens over time, tool-call breakdowns, context-window pressure, retries
- 🔎 A filterable event stream — with the raw JSONL underneath
- 🤖 A CLI and an "Analyse with Agent" tab that hands any session to an LLM
to summarize / find errors / review cost
- 🔒 100% local — it only reads files already on your disk. No account, no
upload, no telemetry.
It's free and open source (Swift/SwiftUI). Fun bit: the app's own
agent-analysis feature caught a real token-counting bug *in the app* while I was
testing it 🙂
Would love your feedback — especially which signals you'd want for spotting
context bloat, and which agents to add next.
→ Free download + source: https://aganal.the-ihor.com
Finally a way to see what claude code and cursor are actually doing under the hood. Token spikes and context pressure graphs were eye opening on my own sessions. Runs smooth on mac.
VTT for Mac
@hafizeldgy happy you liked it
Love that it just reads the logs already on disk instead of hooking into the tools themselves. That kind of passive design is exactly right for something local and private, and shipping it open source on top is a nice flex.
VTT for Mac
@sevda272010 exactly
Finally something that surfaces context pressure across my Claude and Codex sessions without sending data anywhere, that privacy angle sold me. The token and retry breakdowns are exactly the metric I didn't realize I needed.