// 01 > CONTEXT
Glassbox reads a Claude Code JSONL transcript and renders a single self-contained HTML report with six behavioural metrics, a session timeline, and a harness-health scorecard. It makes no network calls and never controls the agent.
// 02 > THE_PROBLEM
Agent sessions are opaque: when a run goes sideways, there's no readable account of what the agent actually did or why.
The raw transcript is a wall of JSONL. There was no way to see whether an agent over-searched, declared victory early, skipped verification, or looped, the patterns that separate a healthy run from a wasteful one.
Before
Sessions opaque · raw JSONL only · no behavioural signal
// 03 > APPROACH
I built a zero-dependency, read-only observer that scores six behaviours and renders one portable HTML report, intentionally built under its own harness to illustrate what it measures.
Six behavioural metrics
Grep-vs-semantic ratio, early-victory detection, verification density, scope overreach, continuity, and loop detection.
Safe by construction
Read-only and offline: it auto-discovers the latest transcript, redacts secrets, and never controls the agent.
// 04 > THE_RESULT
A messy transcript becomes one self-contained HTML report scoring six behaviours, with zero network calls and full secret redaction.
Before
- Sessions hard to inspect
- No behavioural metrics
- Manual transcript reading
After
- 6-metric scorecard + timeline
- 0 network calls, secrets redacted
- Two-session comparison
“If you can't measure how an agent behaves, you can't fix it. Glassbox stays read-only and offline, so observing never changes the run.”