Skip to content
groundedby
Waitlist

Evaluator

How the evaluator works

The groundedby evaluator reads Claude Code and Codex session files in your browser and counts sessions, turns, tool calls and active hours. Nothing is uploaded.

Updated October 29, 2026 // Markdown

The evaluator turns a folder of session files into one card. Here is everything it does.

What it reads

You pick a folder. The evaluator looks for .jsonl files in it, up to six levels deep:

  • Claude Code files, from ~/.claude/projects/<project>/<session-id>.jsonl. Files under a subagents folder belong to their parent session and are skipped.
  • Codex CLI files, named rollout-*.jsonl, from ~/.codex/sessions/YYYY/MM/DD/.

Each line of a session file is one JSON record. From each record the evaluator reads:

  • the timestamp, to measure active time;
  • the type and role (a person's message, the agent's reply, a tool call), to count turns and tool calls;
  • the tool name, to recognize products such as mcp__..._PostHog__... tools;
  • for shell commands, the first word only, to recognize product CLIs such as vercel or supabase.

It does not keep message text, code, file contents, tool inputs or outputs, or project paths. The source is in the page itself, in plain JavaScript you can read in your browser's developer tools.

What it counts

Number How it is counted
Sessions Files with at least one turn or tool call
Turns Messages a person typed (tool results are not turns)
Tool calls Every tool the agent called: shell, file edits, MCP tools
Active hours Time between consecutive records, skipping gaps over five minutes
Products Names from a fixed list only, so a private server name never shows

A gap of more than five minutes counts as someone away from the keyboard. A session left open overnight counts only the minutes of work.

Which products it names

Only products on a fixed list: GitHub, Supabase, Vercel, Stripe, PostHog, Linear, Sentry, Cloudflare and about 70 more. An MCP server's id is whatever its owner named it, and a name like acme-billing-db could reveal something private, so an unknown name is never shown.

The estimate

Sessions are sorted into tiers by turns, active time and tool use, and each tier carries a value range. The valuation method explains the tiers and where the numbers come from.

What leaves the page

Nothing, unless you join the waitlist. If you do, the form sends your email, the side you picked and, only if the box is ticked, the counts shown on your card. Privacy model.

Questions

Why does my browser say "upload"?+

Some browsers use the word upload for any folder a page may read. The evaluator reads the files with the File API inside the tab and sends no request with them. You can check this by switching off your network before you pick the folder.

Can I run it on a folder from another machine?+

Yes. Copy the folder over, or pick it from a mounted drive. The evaluator only needs the .jsonl files.

Does it work on Windows and Linux?+

Yes, in any current browser. On Windows the folders are under %USERPROFILE%, for example %USERPROFILE%\.claude\projects.

Waitlist

Your sessions, your call.

We are building an opt-in marketplace where developers license redacted sessions they pick, one by one. Join to hear first.

Your email and the side you picked. Nothing else. Privacy