I use Claude Code for most of my day, on a laptop and a desktop, with a work account and a personal one. At 6 pm I often couldn't answer two simple questions: what did I actually get done today, and how much did it use?
Token counters answer the second question. I wanted an answer to the first, so I built worklog-for-claude-code, a small open-source tool for Linux.
Once a day you get a simple page with:
After setup it runs in the background. You don't have to remember anything.
Claude Code writes a local transcript for every session. The tool reads those transcripts in two ways: through Claude Code hooks that fire when a session starts and ends, and through an hourly systemd timer that catches anything the hooks missed.
For each session it writes one small JSON record into a git repo you own. Every file path is written by exactly one device, so several machines can push to the same repo without merge conflicts. A nightly job turns the records into a Markdown report, and a local web UI shows it.
Transcripts contain everything you typed, so the tool is built to keep as little as possible:
claude -p. Turn them off to keep everything fully local.
The web UI listens on loopback only, and checks the Host and Origin headers, uses CSRF tokens and sends a strict Content-Security-Policy.
This runs the UI on fake data and doesn't touch your files:
pipx run --spec worklog-for-claude-code claude-worklog demo
Then open http://localhost:8766.
To install it for real:
pipx install worklog-for-claude-code
git init ~/claude-worklog-data
claude-worklog install-service
Open http://worklog.localhost:8765, fill in the short setup form and click Install hook. For several machines, put the data folder in a private GitHub or GitLab repo.
It's MIT licensed and version 0.1.0. If you try it, I'd love to hear what's missing.