GIT TIMESHEET · RUNS IN YOUR BROWSER

Turn your git history into a timesheet your client can read

Paste git log, set your hourly rate, and get estimated hours per day, a plain-language summary of what shipped and the amount to invoice — as Markdown, CSV or JSON.

Nothing is uploaded. Hours are estimated from commit timestamps (work sessions), so treat them as a starting point you check, not a time record.

1. Get your log

git log --no-merges --since=2026-09-01 --pretty=format:'%H|%an|%aI|%s'

Prefer a CLI, or want a hours cap in CI?

node cli.mjs --repo . --since 2026-09-01 --author "Ada" --rate 90 --client Acme
git log --pretty=format:'%H|%an|%aI|%s' | node cli.mjs --format csv
node cli.mjs --repo . --since 2026-09-01 --max-hours 40   # exit 1 over the cap

Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: how to estimate hours from git commits.

Common questions

Does this upload my git history?

No. The page parses the text you paste in your own browser and sends nothing anywhere. The CLI reads your local repository and makes no network call.

How are hours estimated from commits?

Commits less than the idle gap apart (default 2 hours) form one working session. A session counts its span plus lead time (default 30 minutes) for the work before the first commit. Each contributor is estimated separately.

Is the estimate accurate enough to invoice?

It is a defensible starting point, not a time record. Meetings, research, review and debugging without commits are not captured, so check the total against your own notes before you send it.

Which git log format does it need?

git log --pretty=format:'%H|%an|%aI|%s'. The copy button gives you the exact command.