Timesheets for your agent. A CLI backed by SQLite that any AI agent can call to log work.
You run a dozen AI agents across different repos. At 5pm you have no idea what happened today. Each agent is sandboxed to its own working directory and can't write to a shared worklog.
hrs is a CLI that any agent can call to log structured work entries. You get a SQLite database, markdown files on disk, and a TUI to see what got done.
Pure Go, no CGo. Download a prebuilt binary or go install. DB auto-creates at ~/.hrs/hrs.db.
hrs log works from any directory. Tell your agent to call it and you're done. No daemon, no config.
Every entry lands in SQLite and renders to daily markdown files. Human-readable, git-friendly, grep-able.
Vim-style TUI to browse entries by day. Scroll with j/k, switch days with h/l, delete with d. All in your terminal.
Filter by date range and category. Export as JSON or CSV. Pipe hrs ls --format json into anything.
Set daily goals, link them to entries, and roll up into strategic objectives. Track progress with hrs strategy report.
Run hrs serve for agents that can't shell out, browser extensions, or webhook integrations. The CLI auto-detects it.
# Download a binary (easiest)
# → darwin_arm64, darwin_amd64, linux_amd64, linux_arm64
# or via Go (needs $(go env GOPATH)/bin on your PATH)
go install github.com/heuwels/hrs@latest
# Log from any agent or terminal
hrs log -c dev -t "built auth flow" -b "oauth2 pkce;token refresh;tests" -e 3
# See what happened today
hrs ls
# Set goals and track progress
hrs goals add "implement oauth2 pkce"
hrs goals done 1 -e 42
# Browse interactively
hrs tui
Add to your CLAUDE.md, .cursorrules, or equivalent:
After completing significant work, log it with `hrs log`.
Run `hrs log -h` to discover the flags.
Log proactively. Don't wait to be asked.
Zero config. Data goes to ~/.hrs/hrs.db automatically. See the full docs for agent integration, API reference, and all CLI commands.