01 / OBJECTIVE
What the project set out to do
Help developers understand where their Claude Code time, tokens, and tool calls go, using the transcripts already stored on their machine. Make the measurements useful while keeping usage data local.
02 / MY CONTRIBUTION
My part in the work
I developed Wakeline as a Python tool that turns Claude Code session transcripts into usage reports. It provides command-line summaries, a weekly digest, an offline dashboard, and a live status line, with optional code-survival analysis using read-only Git operations.
The engineering focus is measurable evidence: keeping token categories separate, showing the limits of cost estimates, and reporting missing metrics as unavailable rather than zero.
03 / TECHNICAL APPROACH
How it came together
01Read the evidence already available
Parse local JSONL session transcripts into sessions, prompts, tool calls, and usage measurements. Handle unknown record types and malformed records explicitly, and use a read-only health check to detect changes in the transcript format.
02Keep the measurements honest
Report fresh input, output, cache-write, and cache-read tokens separately. Label API-equivalent costs as lower-bound estimates, and derive active, idle, and break time from timestamp gaps rather than claiming to measure attention.
03Make the activity explorable
Generate one self-contained offline HTML file with project, model, and date filters, activity heatmaps, context growth, cost per prompt, and session timelines. Pair charts with tables and provide terminal and JSON reports.
04Investigate friction and code survival
Detect supported retry loops, error-fix cycles, and interrupts with file-and-line evidence. Optional survival analysis follows tool-written lines into the current Git HEAD, including detected renames, using read-only Git commands and in-memory digests.
04 / OUTCOMES
What the work produced
- Built a local analytics tool with a Python standard-library runtime and no network calls.
- Provided offline dashboard, terminal digest, weekly summary, JSON, and live status-line views of coding activity.
- Made supported friction signals traceable to transcript evidence and added optional analysis of tool-written code surviving in Git HEAD.
API-equivalent cost estimates are not subscription bills, and timestamp-based active time is not attention. The transcript format is undocumented and can change. Code-survival analysis covers supported edit tools, not every change made through shell commands.