DEV Community

Plexescor (Abhijot Singh)
Plexescor (Abhijot Singh)

Posted on

The Best Activity Trackers for Linux Wayland in 2026

The Best Activity Trackers for Linux Wayland in 2026

If you're on Linux Wayland and want to know where your time actually goes, your options are surprisingly limited. Most activity trackers were built for X11, assume a web dashboard, or drag a Python runtime and 200MB of RAM into your session. Here's an honest breakdown of what's actually worth using in 2026.


1. HPR — Human Pattern Recorder

GitHub | Free | Open Source | C++23

Full disclosure: I built this. I'm a 16-year-old solo developer in India and HPR is my main project. I'm including it first because it's genuinely the best option for Wayland-native Linux tracking — not because I made it.

What it actually does

HPR polls your active window every 50ms, all day, and builds a complete log of where your time went. No extensions. No accounts. No server. Just a compiled C++23 binary that starts instantly and writes to local SQLite.

You get three things live:

  • What you're in right now
  • Total time per app today
  • Your complete switch history, timestamped

Historical queries work across any date range — pick a single day, last N days, or a custom range. Multiple daily .db files get merged on a background thread without ever pausing live tracking.

Why it's different on Wayland

Most trackers bolt on Wayland support as an afterthought. HPR was built with native Wayland backends from day one:

Platform Backend
Hyprland hyprctl IPC
GNOME (Wayland) Custom GNOME Shell extension
KDE Plasma 6+ KWin D-Bus scripting
Cinnamon org.Cinnamon.Eval D-Bus
niri niri msg IPC
Windows 10/11 Win32 API

No hacks. No XWayland fallback. Each compositor gets its own proper backend.

Features that nothing else has

Browser tab tracking without extensions — HPR reads the window title directly. When Chrome or Firefox is focused, it parses the tab name automatically. No browser extension to install, no permissions to grant.

VS Code project tracking — HPR parses VS Code's window title to extract the active project name. You get per-project time breakdowns with zero setup.

App Limits and Goals — set a daily cap on any app. Hit the limit and HPR sends a notification. Optionally it force-quits the app. Goals work the other way — set a minimum daily target and track progress live.

Day Construction Timeline — a zoomable, scrollable visual timeline of your entire day. Preset zoom levels from 1h to 24h. Gap detection handles reboots and closed sessions cleanly.

Advanced Pattern Analysis — 9 cross-day metrics including escape pattern (how often you jump from work to browser), return rate, peak focus hour, deep work before noon percentage, and weekend vs weekday comparison.

Lua 5.4 Extension Engine — drop a .lua file into your extensions folder and HPR loads it automatically. Each extension runs in an isolated VM on its own thread. You can read the active window in real time, query the SQLite database, subscribe to internal events, build custom UI panels, and override 26+ core C++ functions from Lua. Stress tested to 1000 simultaneous extensions.

Performance

  • ~8MB RSS on Windows
  • ~22MB private footprint on Linux (htop shows ~47MB but ~25MB of that is shared Mesa/LLVM GPU pages — not HPR's actual cost)
  • 1-3% CPU during normal use
  • ~19KB per day of tracking data
  • Instant startup

Privacy

No telemetry by default. No accounts ever. The networking libraries are compiled in to power the Lua HTTP API and optional anonymous analytics — but HPR itself never phones home unless you explicitly enable it.

Install

# Arch Linux
yay -S hpr

# Windows
# Download the Inno Setup installer from GitHub releases

# Linux manual
chmod +x installHPRConfigAndUi.sh && ./installHPRConfigAndUi.sh && ./HPR
Enter fullscreen mode Exit fullscreen mode

The honest part

HPR is v0.9 and I'm the only developer. It's not as mature as ActivityWatch. If you need a battle-tested tool with years of production use and a full web dashboard, read the next section. If you're on Wayland, care about memory footprint, and want Lua scripting, give HPR a try.

Ko-fi link is in the README if it's useful to you.


2. ActivityWatch

activitywatch.net | Free | Open Source | Python

ActivityWatch is the most mature open source activity tracker available. It has been in active development for years, has a proper web dashboard, a plugin ecosystem, browser extensions, and a large community. If you want something that just works and has been battle-tested by thousands of users, this is the honest recommendation.

What it does well

  • Full web dashboard with detailed visualizations
  • Browser extensions for Chrome and Firefox
  • Plugin ecosystem — community has built integrations for VS Code, AFK detection, and more
  • Cross-platform (Linux, Windows, macOS)
  • REST API for building your own integrations
  • Active community and regular releases

Wayland situation

ActivityWatch's Wayland support has historically been its weak point. The core watcher uses wnck which is X11-based. Community-maintained Wayland watchers exist but require separate installation and vary in reliability per compositor. On Hyprland and niri especially, you'll need to find and configure a third-party watcher.

Resource usage

ActivityWatch runs a local web server, a Python daemon, and several watcher processes. Expect 200MB+ RAM in real use. It also takes several seconds to start. For a background daemon that runs all day this matters on lower-spec hardware.

Bottom line

ActivityWatch is the right choice if you want maturity, community, and a full dashboard. It's what HPR is measured against. The gap is Wayland support and resource footprint.


3. Wakatime (self-hosted: Wakapi)

wakapi.dev | Free tier | Open Source self-hosted option

Wakatime is a different category — it tracks coding time specifically, not general window focus. If your main goal is understanding how much time you spend in your editor and across projects, it's worth knowing about.

What it does

Editor plugins (VS Code, Neovim, JetBrains, etc.) send heartbeats to a Wakatime-compatible server every time you type. You get per-project, per-language, and per-file breakdowns of coding time.

Wakapi is the self-hosted open source server that's compatible with the Wakatime API. Run it locally, point your editor plugins at it, and all your data stays on your machine.

What it doesn't do

Wakatime only knows about time in editors. It has no awareness of browser usage, application switching, or anything outside your coding environment. It's a coding time tracker, not a general activity tracker.

Wayland situation

Irrelevant — it runs entirely through editor plugins, no window system access needed.

Bottom line

If your specific question is "how much time did I actually spend coding vs everything else" and you don't care about the rest, Wakapi is elegant and lightweight. For general activity tracking it's out of scope.


Quick Comparison

HPR ActivityWatch Wakapi
Native Wayland ✅ All major compositors ⚠️ Community watchers ✅ N/A (editor plugins)
RAM usage ~22MB private 200MB+ Minimal
Web dashboard
Browser tab tracking ✅ Built-in ✅ Extension required
VS Code projects ✅ Built-in ✅ Plugin required ✅ Built-in
App limits/goals
Scripting/extensions ✅ Lua 5.4
Maturity v0.9, solo dev Mature, team Mature
Startup time Instant Several seconds Server
Coding-specific

Which one should you use

You're on Hyprland, niri, or GNOME Wayland and want something lightweight → HPR. It has native backends for all of them, starts instantly, and uses almost no RAM.

You want something mature with a web dashboard and don't mind Python overhead → ActivityWatch. It's been around longer and has a larger ecosystem.

You specifically want to track coding time by project and language → Wakapi with the VS Code/Neovim plugin.

All three are free and open source. There's no wrong answer — it depends on what you're optimizing for.``

Top comments (0)