HPR vs. the field.
An honest comparison. HPR needs users, so every claim here is verifiable and every gap is acknowledged.
Head to head.
Four trackers, compared honestly. HPR's strengths and gaps, side by side.
| Feature | HPR | ActivityWatch | RescueTime | Toggl |
|---|---|---|---|---|
| Binary Size | ~2 MB | 200 MB+ | Cloud app | Cloud app |
| RAM (Real) | ~8 MB Win / ~22 MB Linux | 200 MB+ | N/A | N/A |
| Account Required | No | No | Yes | Yes |
| Data Leaves Machine | Never | Never | Yes | Yes |
| Automatic Tracking | Yes | Yes | Yes | No |
| Native Wayland | Yes | Partial | N/A | N/A |
| Embedded Web Server | No | Yes | No | No |
| Open Source | Yes | Yes | No | No |
| Launch Time | Instant | Several seconds | N/A | N/A |
| Free | Yes | Yes | Limited | Limited |
| Runtime UI Editing | Interpreted Mode | No | No | No |
| Browser Tab Tracking | Built-in, no extension Tab View (raw) + Site View (formatted) |
Optional extension | Required extension | Optional extension |
| VS Code Project Tracking | Built-in, no extension Raw View + Formatted View toggle |
Via plugin | No | No |
HPR vs. ActivityWatch
ActivityWatch is the most honest comparison. It's a mature, maintained project with years of production use. Here's where they genuinely differ.
Where HPR leads
A fraction of the memory footprint. Native Wayland from day one across five desktop environments. No Python runtime. No embedded web server running in the background. Starts instantly.
Interpreted UI mode — edit the entire interface at runtime without recompiling. No other tracker offers this.
Browser tab tracking and VS Code project tracking with no extensions whatsoever — not optional, not recommended, literally not needed. HPR reads the window title the OS already exposes. Both support toggleable raw and formatted name views built into the app.
Where ActivityWatch leads
Full web dashboard. Browser extensions for detailed URL tracking. Plugin ecosystem. Years of production stability. Active community and documentation.
If you need something mature and battle-tested today, use ActivityWatch. HPR is for those who value the architecture and can tolerate being early.
Architecture comparison
HPR Architecture
Single binary (C++23) └── Slint UI (native rendering) └── SQLite3 (amalgamation, compiled-in) └── 4 threads, defined cadences No web server No Python No Electron No runtime dependencies
ActivityWatch Architecture
Multiple processes (Python + TS) └── aw-server (REST API + web UI) └── aw-watcher-window └── aw-watcher-afk └── Browser extension (optional) Web server always running Python runtime required Multiple processes
Resource footprint
The Wayland question.
Wayland is the present and future of Linux desktops. HPR was designed for it from day one.
HPR: Native Wayland
Dedicated backend for each compositor. No XWayland fallback. No compatibility hacks.
ActivityWatch: Partial
Wayland support varies by compositor. Some configurations require X11 fallback or additional configuration.
What HPR doesn't have yet.
HPR is v0.6. These are real gaps that ActivityWatch has filled over years of development.
No Web Dashboard
HPR has a native UI only. No browser-based interface. No REST API for external tools to query.
No Plugin Ecosystem
No third-party watchers. No editor integrations. Extension is done by modifying the source directly.
Smaller Community
HPR is new. Fewer users, fewer bug reports, fewer real-world configurations tested. ActivityWatch has years of battle-testing.
If you need something mature and battle-tested today, use ActivityWatch. If the architecture and footprint appeal to you and you can tolerate being early, HPR is worth following. Both projects are open source and free.
What only HPR does.
Features that don't exist in any other open-source activity tracker.
Interpreted UI Mode
No other tracker lets you edit the entire user interface at runtime. Not CSS themes. Not config-driven colors.
Full Slint language access — layouts, animations, component structure, property bindings. Set use-interpreter,true
and edit app-window.slint. No build step. No recompilation.
Traditional Themes
CSS variables. Color tokens. Maybe font selection. Structure is fixed. Layout is fixed. You get to pick colors.
HPR Interpreted Mode
Full UI runtime. Change layouts. Add components. Modify animations. Restructure the interface. The Slint language, not a subset of it.
Browser Tab Tracking — No Extension
Chrome, Edge, Firefox, Brave — tracked per-site and per-tab with zero browser extensions. Toggle between Tab View (raw OS title) and Site View (grouped by domain via tabAliases.csv) inside the app. No hooks. No manifest. No permissions dialog.
Hot-Reloading Aliases
Save the alias file, HPR picks it up on the next tick. Late-binding design means renaming an alias retroactively updates all historical data with zero migration.
Dual-Clock Timing
steady_clock for duration, system_clock for display. Immune to NTP corrections and DST transitions. Measurement and display use different clocks by design.
VS Code Project Tracking — No Extension
Tracks which VS Code project you're in, not just that VS Code is open. No VS Code plugin. No marketplace. Toggle between Raw View (full OS window title substring) and Formatted View (categorizes projects via projectAliases.csv, e.g., to group by client). Works on every supported platform.
Try HPR alongside ActivityWatch.
They track the same thing. Run both, compare the experience. HPR uses ~8 MB on Windows — you won't notice it.