Claude TimeTrack: macOS menu bar app that reads Claude Code JSONL files to auto-track dev time per project

✍️ OpenClawRadar📅 Published: May 7, 2026🔗 Source
Claude TimeTrack: macOS menu bar app that reads Claude Code JSONL files to auto-track dev time per project
Ad

A developer built a macOS menu bar app called Claude TimeTrack that automatically tracks time spent per project by reading Claude Code's session files and git history — no manual timers required. It's open-source (MIT) on GitHub.

How it works

Two data sources, shown side by side:

  • Claude mode: parses every JSONL under ~/.claude/projects/, resolves each event to its git repo root, and stitches consecutive events into "sittings." Gaps longer than 15 minutes split sittings, so leaving Claude open overnight doesn't pad your numbers.
  • Git mode: for each repo, runs git log --no-merges --pretty=format:%aI filtered by your global user.email and applies the git-hours heuristic — gaps ≤ 2h count as continuous work, longer gaps mark a new session and add a flat 2h for the opening commit. Both thresholds are configurable. Cached per repo by HEAD SHA.

Each project shows both numbers. Tap either to flip the active view.

Ad

What you actually see

  • Live total in the menu bar
  • Today / Week / All-time toggle
  • GitHub-style 26-week activity heatmap, aggregated and per-project
  • Click any day to drill in (totals, sorting, sessions all scope to that day)
  • Stacked breakdown bar of project shares
  • Project detail view with last 20 sittings or commit summary
  • Missing-data indicator if Claude Code has pruned old session files

Auto-refresh every minute, launch-at-login, and you can hide projects you don't care about.

Caveats

  • macOS 14+ only, built in Swift
  • No notarized release yet — install via the included build script
  • Git mode obviously needs git history; Claude mode needs Claude Code session files

Who it's for

Developers who work on multiple projects in parallel and want automatic, passive time tracking without remembering to start/stop a timer.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also