Aiman Ismail

Your Claude History IS Your Weekly Update

This is a note — quick thoughts, possibly AI-assisted. Not a fully fleshed article.

llmagentsclaude-codeproductivity

Every session you run with Claude Code gets written to a .jsonl file under ~/.claude/projects/. Those files are your work log — you just haven't been reading them.

The Prompt

When you need to generate your weekly update, give Claude this prompt:

Go through my Claude session files under ~/.claude/projects/ for all work-related
repos, find all .jsonl files modified in the last 7 days, extract the first user
prompt from each session, and group them into a weekly summary organized by
repo/theme. Estimate hours based on message count. Format it as a team update
with bullet points per area. Skip personal/non-work sessions.

How It Works

Claude Code writes every session as an append-only .jsonl to:

~/.claude/projects/<encoded-working-dir>/<session-uuid>.jsonl

The path encoding is just /-, so /Users/you/Work/myproject/backend becomes -Users-you-Work-myproject-backend. Each repo you cd into gets its own bucket. Git worktrees get their own bucket too.

Each line in the file is a JSON event: user message, assistant message, tool call, tool result, or summary. The first user event with a text content block is effectively the session title — it's whatever you typed to kick things off.

To find recent sessions across all repos:

find ~/.claude/projects -name "*.jsonl" -newer ~/.claude/projects/some-reference-file

Or just sort by mtime and filter by date in Python — that's what Claude does when you ask it.

What You Get

A session started with:

"can you help me investigate the alert spike in the production cluster"

...with 680 messages → probably 1.5-2h of work on that investigation.

A session with 15 messages → quick task, ~0.25h.

Message count is a rough but useful heuristic for time spent. You'll want to sanity-check outliers (very long sessions can be one deep investigation or several unrelated things chained together).

Why This Works Better Than Manual Logging

  • Zero overhead — the log writes itself as a side effect of working
  • First prompt captures intent better than a summary you write after the fact
  • Message count gives you time estimation without a stopwatch
  • Covers everything across all repos, not just the stuff you remembered to log

The main gap: sessions where you did a lot of work but with few back-and-forth messages (e.g., long autonomous runs). Those look deceptively short. Adjust for those manually.