v0.6 — Free & Open Source

Know where
your time actually went.

A compiled C++23 binary that watches your active window, every 50ms, all day. One string. Written locally. No accounts. No telemetry. No network calls. Ever.

~2 MB Binary Size
~8 MB RAM (Windows)
0 Network Calls
50ms Poll Interval
HPR — Time per app view showing active window tracking with real-time statistics

Three things, live, all day.

You open your computer. You work. Hours pass. You have no idea where they went. HPR fixes that.

Current Focus

What you are in right now, updating in real time. Every window switch detected in 50ms.

Σ

Time Per App

Total time per application today, displayed as 2h 14m 30s. Accurate to the second.

Switch History

Every transition, timestamped, in order. See exactly when you moved between applications.

VS

VS Code Project Tracking

Tracks which VS Code project you're in — not just that VS Code is open. No extension. No plugin. No marketplace. HPR reads the window title.

Edit the entire UI at runtime.

HPR's interpreted mode loads .slint files from disk at runtime instead of compiled-in UI. Change colors, layouts, animations, and component structure — without recompiling. This is not a theme system. It is a full UI runtime.

How it works

1

Enable interpreted mode

Set use-interpreter,true in config.csv. One line.

2

Edit app-window.slint

Modify colors, layouts, animations, add components. Full Slint language access.

3

Restart HPR

Your custom UI loads from disk. No build step. No compilation. Instant.

config.csv
// Enable runtime UI loading
use-interpreter,true
hardware-acceleration,true
UI location
// Linux
~/.config/HPR/ui/app-window.slint

// Windows
%APPDATA%\HPR\HPR_Config\ui\app-window.slint
⚠ Important

Do not rename structs, properties, or callbacks. HPR's C++ backend references these by exact name to push data into the UI. A reference copy is always available in ui-REFERENCEONLY/ for diffing.

Exactly one thing. Nothing more.

HPR reads the title of the currently focused window. That's it. One string, every 50ms, written locally.

No keystrokes
No mouse movement
No screen capture
No clipboard access
No file scanning
No network communication. Ever.
Not an Electron app

Compiled C++23 binary. Starts in milliseconds. Under 10MB of RAM on Windows. No Python runtime. No embedded web server. No subscription.

Privacy
No accounts.
No telemetry.
No analytics.
No network communication. Ever.

// The only external call in the entire codebase
// is a git clone in the GNOME extension install
// script. That's a shell command you run once,
// manually. HPR itself touches no network.

See HPR running.

Live window tracking, switch history, and the Insights engine — all running locally, zero accounts.

HPR Home — Time Per App and Switch History

Home — Time Per App & Switch History

HPR Insights — Pattern analysis showing most used app, focus sessions, peak productive hour

Insights — Pattern Analysis Engine

Live Demo — Window Tracking & Insights

Multi-threaded C++23.

Four threads. Defined responsibilities. Defined cadences. No surprises.

Main Thread (Slint event loop) ├── Window Poller [50ms tick — CurrentWindowManager] ├── UI Bridge [500ms tick — HPR / HPRInterpreter + UiModelManager] └── Database Writer [10s tick + event-driven — DatabaseManager] Data Flow: OS Window API → getCurrentWindow() → AppState::state → UiModelManager → Slint UI ↓ DatabaseManager → SQLite3 (.db per day)
1-3%
CPU Usage
<50 MB
Year of Data
0.0%
Cache Miss Rate
Instant
Startup Time

The stack.

C++

C++23

Modern C++ with std::chrono, std::mutex, std::variant. Compiled binary, not interpreted.

UI

Slint 1.16.1

Declarative UI toolkit. Compiled or interpreted mode. No Electron. No web runtime.

DB

SQLite3

Official single-file amalgamation compiled into the binary. Zero external database dependencies. WAL mode with passive checkpoints.

Open source. Free forever.

The premium version has been merged into free. Every feature — current and future — available to everyone at no cost.