I was tracking billable hours using Google Forms (yes, really). Every time I switched tasks, I had to manually fill out the project name, start time, end time, and description. After forgetting to log hours several times and losing money, I decided there had to be a better way.
tmpo is a CLI time tracker that gets out of your way:
- Automatically detects project names from git repos or .tmporc config files - All data stored locally in SQLite (no cloud, no login) - Simple commands: tmpo start, tmpo stop, tmpo stats - Export to CSV/JSON for invoicing - Cross-platform (macOS, Linux, Windows)
Built with Go for speed and easy cross-compilation. The entire project consists of ~5k lines of code.
Example workflow: cd ~/projects/client-website tmpo start "Fixing authentication bug" # ... work happens ... tmpo stop tmpo stats --today
It detects "client-website" from the git repo and logs everything locally.
The thing I'm most proud of: zero configuration required. It just works. But if you need per-project hourly rates for billing, you can add a .tmporc file.
GitHub: <https://github.com/DylanDevelops/tmpo>
I'm working on getting it on Homebrew, but you can also install it via pre-built binaries or build it from source.
Would love feedback on: 1. What features would make this actually useful for you? 2. Is the auto-detection too "magical" or is it helpful? 3. Any concerns about the approach?
Thanks for reading!