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
~2 MB binary
~8 MB RAM (Windows)
Instant startup
50ms poll interval

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
Full web dashboard
Plugin ecosystem
Browser extensions
Years of production use

Resource footprint

~2 MB
HPR Binary
200+ MB
AW Install
~8 MB
HPR RAM (Win)
200+ MB
AW RAM

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.

native Hyprland — hyprctl IPC
native GNOME — Shell extension
native KDE 6+ — KWin scripting
native Cinnamon — D-Bus eval

ActivityWatch: Partial

Wayland support varies by compositor. Some configurations require X11 fallback or additional configuration.

varies Support depends on compositor
varies May need XWayland

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.

The Honest Recommendation

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

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.