Windows

A time tracking app for Windows that stays out of the way

Stunda runs in the Windows system tray and records what you work on without a timer to start or a form to fill in. It counts input without installing a keyboard hook, which matters more than it sounds.

In short

Stunda is an automatic time tracking app for Windows 10 and 11 that runs in the system tray and records working hours with no timers. It needs no administrator rights and no special permissions, counts keyboard and mouse events without recording what was typed, keeps tracking while offline, and turns tracked hours into invoices. It is free for one person.

Supported
Win 10/11
Permissions needed
None
Activity sample interval
250 ms
Idle threshold
30 s

It polls. It does not hook your keyboard.

This is the most important thing on the page, so it goes first.

The obvious way to count keystrokes on Windows is a low-level keyboard hook, WH_KEYBOARD_LL. It is exact, it is well documented, and it is also the exact mechanism a keylogger uses. Antivirus software treats it accordingly, and it should.

Stunda does not install one. It polls GetAsyncKeyState, which reports whether a key is currently down, and counts the transitions between samples. Mouse movement comes from diffing GetCursorPos. The result is a count that is very slightly less precise than a hook would give and carries none of the capability, because at no point does a Stunda process sit in the path between your keyboard and the application you are typing into.

What it reads from Windows

All of it is available to a normal user process. None of it needs administrator rights.

Keyboard and mouse counts, via GetAsyncKeyState
Sampled several times a second and counted as up-to-down transitions. It produces a number of events, never a sequence of characters.
Idle time, via GetLastInputInfo
True system-wide idle: it keeps working while Stunda is minimised to the tray and has no focus at all. Thirty seconds without input marks the stretch as idle rather than active.
The active window
What produces the per-app breakdown of the day. It is how a week resolves into "six hours in the IDE, two in a browser, forty minutes in Teams" without anyone tagging anything.
Elapsed time, via QueryInterruptTime
The biased interrupt time, which includes sleep and hibernate, is what durations are built from. The unbiased counter is read separately, and the gap between the two is how the app knows the machine was suspended rather than idle.

One limitation, stated plainly

Windows User Interface Privilege Isolation stops a normal process from observing input sent to an elevated window. If you spend an hour typing inside an application running as administrator, Stunda still sees the window and still counts the time, but the keystroke and click counts for that stretch will read low.

The alternative is to ship a tracker that asks every user for administrator rights on install, which is a much worse trade for a tool that is only trying to count events. We would rather the number be slightly conservative and the install be ordinary.

Tracking that does not stop when the connection does

The Windows app writes every session to a local database on the machine first, and syncs to your account afterwards. A dropped VPN, a hotel network, a train tunnel: none of them cost you the session, and none of them require you to remember what you were doing when it happened.

This is also why the desktop app is worth installing even if you mostly live in the web dashboard. The browser can only measure the browser.

Setting it up on Windows

No administrator prompt, no group policy, no agent.

  1. Download and run the installer

    A standard Windows installer. It does not ask for elevation and it does not install a service.

  2. Sign in

    One account across the tray app and the web dashboard. Free for one person, no card.

  3. Work normally

    The tray icon starts counting at login. Nothing to start, nothing to tag. Idle stretches are separated out on their own rather than quietly folded into your billable total.

  4. Turn the week into an invoice

    Open the dashboard, look at where the hours actually went, select the billable ones and send a branded PDF.

Questions

Does the Windows time tracker need administrator rights?

No. Everything it reads is available to a normal user process, and the installer does not request elevation or install a background service.

Will antivirus flag it as a keylogger?

It should not, because it does not behave like one. Stunda deliberately avoids the low-level keyboard hook that keyloggers use and polls key state instead, so no Stunda process sits between your keyboard and your applications.

Does it work on Windows 10 as well as Windows 11?

Yes. The APIs it depends on for input counting, idle detection and elapsed time are present and behave the same on both.

Does it record what I type?

No. It counts events. The counting mechanism returns a number of key transitions and has no access to which keys, which is a property of how it is built rather than a policy that could be changed later.

What happens to time spent in an app running as administrator?

The time and the window are still tracked. The keystroke and click counts for that period will read low, because Windows blocks a normal process from observing input to an elevated window. We accept the conservative number rather than requiring every install to be elevated.

Is there a portable or offline version?

The installed app already works offline: sessions are written locally first and synced afterwards, so no connection is needed while you work.

Still measuring, since the moment you opened this page

You've been here 2:40.
That's $3.78 unbilled.

That's how it slips away: a few quiet minutes at a time, on every project. Stunda catches them all day, silently, and turns them into invoices that send in four steps.

Free forever for solo freelancers. No card required. Setup takes 60 seconds.