docs: add HPR to feature comparison tables#1319
Conversation
…ing comparison tables. HPR is an open source C++23 activity tracker with native Wayland support (Hyprland, GNOME, KDE, Cinnamon, niri), built-in browser tab tracking without a browser extension, VS Code project tracking, per-app limits and goals, and a sandboxed Lua 5.4 extension engine — in a ~5 MB binary with no Python runtime or embedded web server. All data in the tables is factual and sourced directly from the HPR repository: https://github.com/plexescor/HPR
Greptile SummaryThis PR adds HPR (Human Pattern Recorder) to ActivityWatch's feature comparison tables in the README and inserts a promotional callout describing HPR as "a newer open source alternative worth knowing about." The PR is authored by HPR's own maintainer.
Confidence Score: 2/5The PR introduces unverified claims about ActivityWatch's own resource usage and capabilities, authored by a competing project's maintainer; maintainer review is needed before merging. The new table columns assign specific performance numbers to ActivityWatch ('200 MB+', 'Several seconds') that have no source and were written by HPR's own author. A promotional paragraph in the README frames ActivityWatch unfavourably relative to HPR. These additions could mislead users with inaccurate information about ActivityWatch itself. README.md — the new table columns and the promotional callout both require verification by an ActivityWatch maintainer before they can be trusted. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[README.md Feature Comparison] --> B[Basics Table]
A --> C[Platforms Table]
A --> D[Tracking Table]
B --> B1["Existing columns: User owns data, GUI, Sync, Open Source"]
B --> B2["New columns added by PR: Binary size, RAM, Native Wayland, Launch time"]
B2 --> B3["ActivityWatch values unverified (e.g. '200 MB+', 'Several seconds')"]
C --> C1["Existing columns: Windows, macOS, Linux, Android, iOS"]
C --> C2["HPR row added"]
D --> D1["Existing columns: App & Window Title, AFK, Browser Extensions, Editor Plugins, Extensible"]
D --> D2["New columns: Browser tab tracking no ext., VS Code project tracking no ext., Per-app limits & goals"]
D2 --> D3["ActivityWatch marked ❌ for all three; HPR marked ✅ for all three"]
Reviews (2): Last reviewed commit: "Adds HPR (Human Pattern Recorder) to the..." | Re-trigger Greptile |
| </a> | ||
| <a href="https://github.com/ActivityWatch/activitywatch/releases"> | ||
| <img title="Total downloads (GitHub Releases)" src="https://img.shields.io/github/downloads/ActivityWatch/activitywatch/total.svg" /> | ||
| <img title="Total downloads (GitHub Releases)" src="https://img.shields.io/github/downloads/Activitywatch/activitywatch/total.svg" /> |
There was a problem hiding this comment.
The Shields.io badge URL for total downloads was changed from
ActivityWatch (the correct GitHub org casing) to Activitywatch (lowercase w). While GitHub's API is case-insensitive, this looks like an unintentional edit that introduces inconsistency with every other reference to ActivityWatch in the file and could silently serve wrong data if the shields.io endpoint ever becomes case-sensitive.
| <img title="Total downloads (GitHub Releases)" src="https://img.shields.io/github/downloads/Activitywatch/activitywatch/total.svg" /> | |
| <img title="Total downloads (GitHub Releases)" src="https://img.shields.io/github/downloads/ActivityWatch/activitywatch/total.svg" /> |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
|
|
||
| We have a plan to address all of these and we're well on our way. See the table below for our progress. | ||
|
|
||
| > **Note:** A newer open source alternative worth knowing about is [HPR (Human Pattern Recorder)](https://github.com/plexescor/HPR) — a compiled C++23 tracker with native Wayland support across Hyprland, GNOME, KDE, Cinnamon and niri, a sandboxed Lua 5.4 extension engine, built-in browser tab tracking without a browser extension, and a ~5 MB binary with no Python runtime or embedded web server. It trades ActivityWatch's maturity and sync for a significantly smaller footprint and broader Wayland coverage. |
There was a problem hiding this comment.
Self-promotional note by HPR's author
This PR is authored by plexescor, who is also the author of HPR (github.com/plexescor/HPR). Adding a callout in ActivityWatch's README that describes HPR as "a newer open source alternative worth knowing about" and then characterising ActivityWatch as trading "maturity and sync for a significantly smaller footprint" is a direct conflict of interest. The project maintainers should decide whether this kind of third-party promotion belongs in the README at all — the note as written reads more like a product advertisement for a competitor than neutral project context.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| | | User owns data | GUI | Sync | Open Source | Binary size | RAM (approx) | Native Wayland | Launch time | | ||
| | ------------- |:------------------:|:------------------:|:--------------------------:|:------------------:|:-----------:|:-------------:|:------------------:|:---------------:| | ||
| | ActivityWatch | :white_check_mark: | :white_check_mark: | [WIP][sync], decentralized | :white_check_mark: | 200 MB+ | 200 MB+ | Partial | Several seconds | | ||
| | [HPR] | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | ~5 MB | ~27 MB private / ~47 MB reported (Linux), ~8 MB (Windows) | :white_check_mark: | Instant | | ||
| | [Selfspy] | :white_check_mark: | :x: | :x: | :white_check_mark: | — | — | :x: | — | | ||
| | [ulogme] | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | — | — | :x: | — | | ||
| | [RescueTime] | :x: | :white_check_mark: | Centralized | :x: | Cloud | N/A | N/A | — | | ||
| | [WakaTime] | :x: | :white_check_mark: | Centralized | Clients | Cloud | N/A | N/A | — | |
There was a problem hiding this comment.
Unverified ActivityWatch metrics added by a competing project's author
The four new columns in the Basics table — "Binary size", "RAM (approx)", "Native Wayland", and "Launch time" — were not in the original table and are exclusively metrics where HPR outperforms ActivityWatch. The values assigned to ActivityWatch itself ("200 MB+", "200 MB+" RAM, "Partial", "Several seconds") are unverified claims being introduced by HPR's author without any source or reproducible measurement. The same pattern is visible in the Tracking table, where three new columns ("Browser tab tracking (no extension)", "VS Code project tracking (no extension)", "Per-app limits & goals") are added and are all marked ✅ for HPR and ❌ for ActivityWatch. These additions may not accurately represent ActivityWatch's capabilities and are clearly framed to favour the author's own project.
|
|
||
| Have a question, suggestion, problem, or just want to say hi? Post on [the forum](https://forum.activitywatch.net/)! | ||
|
|
||
| Have a question, suggestion, problem, or just want to say hi? Post on [the forum](https://forum.activitywatch.net/)! No newline at end of file |
There was a problem hiding this comment.
The file now ends without a trailing newline, which violates the POSIX text-file standard and will cause
No newline at end of file warnings in future diffs.
| Have a question, suggestion, problem, or just want to say hi? Post on [the forum](https://forum.activitywatch.net/)! | |
| Have a question, suggestion, problem, or just want to say hi? Post on [the forum](https://forum.activitywatch.net/)! |
TimeToBuildBob
left a comment
There was a problem hiding this comment.
Thanks for adding HPR to the comparison tables — it's always good to see the ecosystem growing.
However, this PR makes changes beyond adding HPR to the existing comparison, including several issues that need addressing:
Issues
-
Badge URL contains a typo: The GitHub downloads badge URL was changed from
ActivityWatchtoActivitywatch. The repo name is case-sensitive on GitHub and this will break the badge. Please revert this change. -
New table columns are selectively chosen: The new columns (Binary size, RAM, Native Wayland, Launch time, Browser tab tracking, VS Code tracking, Per-app limits) are all dimensions where HPR excels. This reads as competitive positioning rather than neutral documentation. Comparison tables should use mutually agreed-upon dimensions — expanding them with winner-takes-all columns undermines the table's credibility.
-
Promotional callout: The paragraph above the feature comparison table is marketing copy for HPR. ActivityWatch's README isn't the right venue for a competitor's promotional text.
Suggested changes
-
Keep: Adding HPR to the existing comparison columns (user owns data, GUI, sync, open source, platforms) — this is the standard contribution.
-
Revert: The badge URL change, the new selective columns, and the promotional callout paragraph.
-
Separate PR (optional): If you want to propose new comparison dimensions (Wayland support, binary size, etc.), that should be a separate PR with the discussion happening in the issue tracker first — so the community can agree on which dimensions are fair.
HPR is a cool project and absolutely belongs in the comparison tables. Let's just keep the addition focused on the existing dimensions.
Adds HPR (Human Pattern Recorder) to the Basics, Platforms, and Tracking comparison tables.
HPR is an open source C++23 activity tracker with native Wayland support (Hyprland, GNOME, KDE, Cinnamon, niri), built-in browser tab tracking without a browser extension, VS Code project tracking, per-app limits and goals, and a sandboxed Lua 5.4 extension engine — in a ~5 MB binary with no Python runtime or embedded web server.
All data in the tables is factual and sourced directly from the HPR repository: https://github.com/plexescor/HPR