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?