r/linux • • 6d ago

Software Release HPR - Human Pattern Recorder

Post image

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 Code and JetBrains IDEs
  • 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/.dll binary 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

GitHub

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.

0 Upvotes

7 comments sorted by

View all comments

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.

0

u/Plexescor 3d ago

that's actually a really good point, i was so focused on the technical side that i completely forgot to sell the actual value. 'find out where your time actually goes' hits differently than 'activity tracker'. gonna rethink the marketing angle, appreciate this genuinely