All projects

PROJECT 03 / Developer Tools & Analytics

Wakeline

Local analytics for Claude Code: understand sessions, tokens, estimated costs, and coding friction.

WHEN

2026

CONTRIBUTION

Design & development

TECHNOLOGIES
PythonStandard libraryHTMLGit
LOCAL DEVELOPER ANALYTICS03
CLAUDE CODE TRANSCRIPTSOffline by design
Local logs · Python analysis $ wakeline --brief
$ wakeline --html
TokensTimeCost estimatesFriction

Conceptual local reporting flow

THE PROJECT AT A GLANCE

Make AI coding activity visible, locally.

Existing session transcripts become terminal summaries and an offline HTML dashboard, with no network calls and no runtime dependencies.

Runtime dependencies
0
Separate token categories
4
Offline dashboard file
1

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

01

Read 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.

02

Keep 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.

03

Make 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.

04

Investigate 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.

UP NEXT / PROJECT 04

Price Insights & Recommendation System

View case study

Want to talk about this project?

Get in touch