Local-first CLI time tracking that stays out of your way.
- Go 1.21+
- SQLite is embedded via
modernc.org/sqlite(no CGO)
brew tap grobmeier/tap
brew install humblebeescoop bucket add grobmeier https://github.com/grobmeier/scoop-bucket
scoop install humblebeegit clone https://github.com/grobmeier/humblebee
cd humblebee
go mod tidy
go build -o bin/humblebee ./cmd/humblebee- Database path:
~/.humblebee/humblebee.db - Override base directory with
HUMBLEBEE_HOME(database becomes$HUMBLEBEE_HOME/humblebee.db)
humblebee helpThere is an early cross-platform GUI prototype (Wails v2 + React) on a separate branch (codex/gui while in development).
See GUI.md for running/building it.
humblebee doctor helps diagnose common issues (DB location, initialization, schema, running timer, and timezone metadata on entries).
Read-only check:
humblebee doctorSafe repairs (requires no running timer):
humblebee doctor --fixNotes:
--fixre-runs idempotent migrations and backfills timezone fields for older (stopped) entries that predate timezone tracking.- Use
--dry-runto see what would change without writing:humblebee doctor --fix --dry-run
- If you want to backfill using a specific timezone name (IANA), pass
--tz-name:humblebee doctor --fix --tz-name America/New_York
humblebee initCreates:
- a default user (single-user MVP; stored in
persons) - a
Defaultwork item (timers without an explicit work item storeworkitem_id = NULL)
Non-interactive:
humblebee init --email user@example.com --workitem "Client Project A"humblebee add "Client Project A"
humblebee add "Client Project A > Feature Development"
humblebee show
humblebee remove "Client Project A"Notes:
- Names are case-insensitive for lookup and uniqueness.
removearchives the selected work item and its entire subtree.
humblebee start "Client Project A > Feature Development"
humblebee start # starts "Default"
humblebee stopDelete time entries (interactive, hard delete):
humblebee deleteNotes:
- Only one running timer is allowed at a time (enforced in code and by a partial UNIQUE index).
- Cross-midnight time is split at local midnight for daily totals and reports (timestamps are stored as UTC Unix seconds).
humblebee report # current month
humblebee report 5 # month (1-12) in current year
humblebee report 5 2025 # month + year- Success = green, warnings = yellow, errors = red
- Disable colors with
--no-coloror by settingNO_COLORto any non-empty value
Run tests:
go test ./...