v1 Windows x64 MIT 0 downloads
Your screen time,
on your machine.
Nowhere else.
A native Windows daemon that watches the foreground window and writes to a local SQLite file. No account. No cloud. No telemetry. The installer is about 9 MB.
- Installer
- ~9 MB
- CLI binary
- ~12 MB
- Storage
- Local SQLite
- Network
- Update check only
A free alternative to RescueTime · StayFree · Toggl Track - for people who would rather not hand their keystrokes to a SaaS.
Four things it does, in the order you'd meet them.
-
01
Track
A silent daemon polls the foreground window on a configurable interval (default 5 s) via Win32 syscalls. Per-app and per-browser-tab time land in a local SQLite database. Browser titles are matched against 74 hard-coded categories - YouTube, GitHub, ChatGPT, Reddit, Netflix, Spotify, and so on - so the report reads like a story, not a title dump.
focusd stats -
02
Limit
Set a per-executable ceiling in minutes. When today's usage crosses the line, a Windows toast notification interrupts you - with a Snooze action that suppresses repeats for the configured snooze window. Limits reset at local midnight. Whitelisted apps are skipped by the tracker entirely - never recorded.
focusd limit chrome.exe 60 -
03
Focus
A file-backed Pomodoro at
%APPDATA%\focusd\pomodoro.json- state survives process restarts. Default 25 min, configurable. Break reminders fire after N minutes of continuous use. Completion arrives as a Windows toast, not a modal that seizes your desktop.focusd focus 45 -
04
Export
Your data leaves only when you say so. Export CSV or JSON from the TUI's Settings tab; files land on your Desktop. Or open
%APPDATA%\focusd\focusd.dbin any SQLite browser and query it yourself - the schema is documented.Settings → Export → CSV
Local by default, not by upgrade.
Most trackers ship cloud sync or accounts as the primary mode. focusd doesn't have a cloud path at all.
| App | Distribution | Sync model | Account required |
|---|---|---|---|
| focusd | Standalone binary (~9 MB installer) | None - local SQLite only | No |
| StayFree | Microsoft Store / UWP + Electron desktop | Cross-device sync | Yes |
| Toggl Track | Native C++/.NET desktop client | Cloud sync (Toggl account) | Yes |
| RescueTime | Native Windows client + web dashboard | Cloud sync (RescueTime account) | Yes |
Sources for competing products: their own product pages and public repositories. focusd figures are from this build.
One binary. Everything through the shell.
# daily
focusd launch interactive TUI
focusd start start background daemon
focusd stop graceful shutdown
focusd status (s) today's top 5 apps
focusd stats (st) full daily breakdown
# flow
focusd pause (p) pause tracking
focusd resume (r) resume tracking
focusd focus [min] start Pomodoro (default 25)
focusd stop-timer cancel Pomodoro
focusd limit <app> <min> daily cap for an executable
# housekeeping
focusd update verified auto-update
focusd retention set 14 keep 14 days of history
focusd autostart enable launch daemon at login
focusd path enable add to user PATH
focusd browser add zen.exe register a custom browser
One network call. And you can turn it off.
The only outbound request focusd ever makes is an update check against
api.github.com/repos/0xarchit/focusd/releases/latest.
If you never call focusd update, focusd never opens a
socket. Everything else - tracking, limits, Pomodoro, export - stays
on your machine.
- MIT licensed. Read the source, ship it in a fork, resell it if you like.
- No account. There is no server to sign up for.
- No analytics. No page pings, no crash uploads, no "improve the product" checkbox.
- You control updates. The updater only runs when you invoke
focusd update. Nothing checks silently in the background.
Common questions.
Does focusd send my data anywhere?
No. Sessions are written to %APPDATA%\focusd\focusd.db. The only outbound network call is an optional update check against the GitHub Releases API.
How is this different from RescueTime, StayFree, or Toggl Track?
focusd has no cloud sync, no account, and no telemetry - all three competitors listed require an account and sync your data to their servers. focusd writes tracking data only to a local SQLite database and never leaves the machine.
Which browsers can it group tabs for?
Chrome, Firefox, Edge, Brave, Opera, Vivaldi, Waterfox, Arc, Safari, Whale, Yandex, Thorium, LibreWolf, Chromium, Floorp, Zen, and any custom executable you register with focusd browser add.
Does it run on macOS or Linux?
Not yet. The tracker uses Win32 syscalls directly (user32, kernel32, psapi). The code compiles on other platforms via build stubs, but the daemon refuses to run.
What happens to my data if I uninstall?
The installer leaves %APPDATA%\focusd\ in place so you can reinstall without losing history. Delete that directory manually if you want a clean slate.
How does the auto-update work?
Run focusd update. It queries api.github.com/repos/0xarchit/focusd/releases/latest, downloads focusd_setup.exe for that tag, stops the running daemon, and launches the NSIS installer with a UAC elevation prompt. The daemon restarts after the install completes. Nothing runs automatically - you invoke it when you want it.
Track it.
Own it.
That's the whole product.
focusd_setup.exe · Windows 10 / 11 · x64 · MIT