log(ger)
Track time like you mean it.
A personal time tracker with real-time timers, analytics that rescale with one control, and an AI that answers questions about your own time. Your data lives on your machine — nowhere else.
It started as three years of spreadsheets and a Jupyter notebook. log(ger) keeps the idea — every minute is worth logging — and turns it into something you’d actually want to open: you hit start, do the work, hit stop, and the dashboards, streaks, and answers all fall out of that one habit.
Start, work, stop.
Hit play on a category and the clock runs — pause for a coffee, resume, stop when you’re done. Run a few timers at once, and everything rounds to the honest minute. Forgot to start one? A manual entry backfills the time after the fact. And when you take a day off, mark it a break: it logs nothing, yet your streak bridges right over it.
Replay any day.
Every entry lands as a colored block across the day, start to end. Scrub back to any past date and the whole dashboard rewinds with it — and stays there as you move between pages. Down the side, a streak counts the days you showed up, quietly stepping over the breaks you planned.
One control, every scale.
Flip a single control between overall, year, month, and week and every chart re-fits to match. A weekly heatmap shows the rhythm of your effort at a glance, and you can stack whole quarters side by side — by group — to see where each one actually went.
Filed the way you think.
Flat tags collapse over a year. log(ger) uses three levels instead — a group (the kind of work), a family (the thread that runs through it), and a category (one session’s slice). New categories file themselves: on import they snap to the right family by exact or prefix rules, so you never sort by hand.
See it, then just ask.
A bubble map shows your projects breathing across sessions — the biggest circles the things you gave the most to. When charts aren’t enough, ask in plain language: an assistant tied to Claude reads your sessions and answers, with every call gated behind a one-tap approval. Link a GitHub repo and your summaries even pull in real commit context.
All of it, on one file.
Everything lives in a single SQLite file on your machine — no cloud, no accounts. Bring years of history in by dropping a CSV pair onto the import page; it fans out across six tables in one transaction, messy headers and all. Download a snapshot whenever you want, or load one back.
Curious how that file changes as you work? Go under the hood →
Run it locally
Builds from source into a real .app. Needs
uv,
pnpm, and Node 22+.
git clone https://github.com/KevinBian107/logger.git && cd logger
uv sync --project backend --extra macapp
pnpm --dir frontend install && pnpm --dir frontend build
uv run --project backend python scripts/build_macapp.py
open dist/Logger.app
Prefer hot-reload? Browser dev mode and CSV import are in the README.