HPR - Human Pattern Recorder
Know where your time actually went.·hpr-cpp.netlify.app
HPR is a compiled, offline, zero-account activity tracker that watches the user's active window every 50 milliseconds and builds a local history of application usage. It shows current focus, time per app, and switch history, and includes a pattern analysis engine, app limits/goals, and a day-construction timeline. It runs as a single compiled C++23 binary with no telemetry or accounts unless the user opts in.
What it's for
Features 17
- Alias system for applications, tabs, and projects with hot reload
- Browser tab tracking without an extension (Chrome, Edge, Firefox, Brave, Zen Browser)
- Day Construction Timeline with zoom presets, adaptive hour markers, and gap capping
- Function Overriding API to intercept 28 core C++ functions from Lua
- Historical data loading in Single Day, Last N Days, and Date Range modes
- Interpreted UI mode allowing runtime editing of Slint UI files without recompiling
- Live time accumulation per application
- Non-blocking, parallel N-thread historical query loading
- Opt-in only telemetry, analytics, and networking; offline core by default
- Pattern Analysis Engine producing real-time daily metrics and 9 advanced cross-day insights
- Per-app daily time limits and usage goals with system notifications and optional auto force-quit
- Real-time active window tracking polled every 50ms
- Sandboxed Lua 5.4 extension engine with EventHub messaging and SQLite access
- SQLite database stored as one file per day with WAL mode
- Tab View (raw) vs Site View (aliased) tab grouping via tabAliases.csv
- Timestamped switch history between applications
- VS Code and JetBrains IDE project tracking without editor extensions
At a glance
Integrations
Resources
Pricing
HPR is entirely free and open source; a formerly separate premium version has been merged into the free version, so all features are available at no cost. Optional donations are accepted via Ko-fi.
Open source and free forever; no premium tiers or feature gating.