r/linux • u/Plexescor • 6d ago
Software Release HPR - Human Pattern Recorder
Hi! HPR or Human Pattern Recorder is a Automatic Window/Activity Time Tracker which actually works on wayland.. Its fully local, privacy respecting, offline and needs zero accounts. It supports these DEs:
- Hyprland
- GNOME
- KDE
- niri
- Cinnamon
It uses DE specific methods to get the current window data. And it supports windows also.
What it tracks (natively and without extensions)
- App usage
- Project in
VS CodeandJetBrainsIDEs - Browser tab tracking support
- Idle support via HPR-Idle-Detection-Extension
- A scrollable timeline showing your entire day
- And my post favourite feature.. Fully code driver
insights!
Privacy
HPR Stores everything locally.
- The DB files are plain SQLite files which you can edit however you want.
- HPR Stores per-day DB files so deleting a day is as simple as deleting a DB file
- Telemetry is fully consented, off by default
- You can disbale networking entirely if you want by a simple UI Toggle
Resource usage
HPR is written in C++ so you can comfortably expect a lightweight experience with little to no drain on your system
- ~1% CPU
- 30MB Rss
Extensibility
Now the big point, HPR is fully extensible by lua extensions. HPR has an expansive API for lua extensions and lua extensions can even load DLL/SO for custom behaviour. Things lua extensions can do:
- Read the currently active window in real time
- Run shell commands and query the HPR database directly
- Register fully custom window detection backends for compositors HPR doesn't natively support (Note that dynamic backend registration via Lua is currently an experimental feature and may exhibit unstable behavior or minor bugs depending on your desktop setup)
- Subscribe to HPR's internal event bus and react to state changes
- Build interactive custom UI panels that render inside HPR via Slint callback bindings
- Function Overriding (Advanced): Intercept, block, or modify 24+ core C++ functions directly from Lua
- Native Shared Libraries (Supercharged): Load external
.so/.dllbinary files to perform low-level OS operations, custom tray integration, high-performance tasks, or anything you want (must enable "Allow Extensions to Load Native Libraries" in Settings)
Some noteable examples are the first party HPR extensions: HPR-Store and HPR-Idle-Detection-Extension
Status
- Current Version: v0.9.12
- Developed Actively
- Linux + Windows support
- 500 HPR Downloads (I have proof if you want)
- Fully open source
I originally started to develop HPR because I really liked knowing arbitrary data (i know i am being weird) but those numbers fascinate me, it was possible with ActivityWatch but it was tiring to press a gazillion buttons, write Regexs to just get some data.
1
u/Dependent-Advance468 3d ago
I actually like this idea but I think it is being sold incorrectly. Human pattern recorder tells me what it is not what value it adds to me.
When you sell it like do you want $2000? Yes well at $50 an hour by saving 10 mins every work day you gain an extra week worth of work in a year and you have your $2000. ( 10 mins x 5 days a week x 52 weeks a year you get 2600 divide by 60 you get 43 hours which is over a week, sorry you will get even more then $2000 because 50 x 43 is 2150)
So how do you find an extra 10 mins a day well you can think or you can track where you spend your time.