Show HN: tmpo – CLI time tracker with Git integration and local-first storage

10 hours ago (github.com)

I built tmpo because I was losing money tracking freelance hours in Google Forms. It's a CLI time tracker that auto-detects your project from Git and stores everything locally.

Key technical decisions:

- Pure Go implementation with modernc.org/sqlite (no CGO, easier cross-compilation)

- Auto-detection via git rev-parse for project names

- Local SQLite database in ~/.tmpo/ (nothing leaves your machine)

- Single binary, zero dependencies

New features since I started:

- Milestone tracking - organize entries into sprints/releases with auto-tagging

- Pause/resume workflow for context switching

- Manual entry creation for forgotten time

- Configurable date/time formats and currency (stored in global config)

- Edit/delete entries

Example workflow:

```bash cd ~/projects/client-website

tmpo milestone start "Sprint 5"

tmpo start "Fix auth bug"

# ... work ...

tmpo pause # lunch break

tmpo resume

tmpo stop

tmpo stats --week

tmpo export --milestone "Sprint 5" --format csv ```

It detects "client-website" from git and tags everything with the active milestone automatically.

The codebase is ~6k LOC. Working on the Homebrew formula, but pre-built binaries are now available.

GitHub: <https://github.com/DylanDevelops/tmpo>

Questions for you all:

1. Are there any features that you want to see in tmpo?

2. Currently using a 3-tier config priority (.tmporc > git > directory). Better approaches?

3. Any concerns with the milestone auto-tagging approach?