Windows desktop tracker for active computer time, focused on study discipline and daily limits.
The app tracks only active time, pauses after idle time, supports exact browser-domain classification, runs in tray, and helps enforce limits for:
- total computer time
- study
- browser fun / manga / manhwa
- social media
Default limits:
- total:
3h - study target:
2hto2.5h - browser fun:
30m - socials:
18m
- Active-time tracking instead of simple PC uptime
- Idle detection
- Silent launcher EXE builder for cleaner startup
- Rules by process, window title, URL, or domain
- Custom categories mapped to built-in parent categories
- Review screen for uncategorized activity
- Health screen with rule suggestions
- Weekly review and calendar heatmap
- Focus mode and hard block mode
- Tray controls and quick glance mini window
- Per-day storage with summary cache for better performance
- CSV / JSON export
- PowerShell 5.1
- WinForms
- Windows only
ScreenTimeTracker.ps1- main applicationlauncher/ScreenTimeTrackerLauncher.cs- source for the silent EXE launcherscripts/build-launcher.ps1- buildsScreenTimeTracker.exeScreenTimeTracker.exe- generated silent launcher without console windowstart-tracker.vbs- legacy fallback launcherstart-tracker.bat- convenience launchersettings.json- default settingsrules.json- built-in classification rulesbrowser-extension/- unpacked Chromium extension for exact site trackingImage/- application icon assetsdocs/screenshots/- GitHub screenshotsdata/- runtime data, logs, caches, exports, backups
From a GitHub checkout:
- Build the launcher:
powershell -ExecutionPolicy Bypass -File .\scripts\build-launcher.ps1- Double-click
ScreenTimeTracker.exe - Open the tray icon if the window starts minimized
- Adjust limits in
Settings - Refine classification through
Rules,Categories,Review, andHealth
Fallback if you do not want to build the launcher:
- Double-click
start-tracker.vbs - Or run
start-tracker.bat
Build a portable release archive:
powershell -ExecutionPolicy Bypass -File .\scripts\package-release.ps1 -Version v0.1.0Manual run from terminal:
powershell -ExecutionPolicy Bypass -File .\ScreenTimeTracker.ps1Run self-test:
powershell -NoProfile -ExecutionPolicy Bypass -File .\ScreenTimeTracker.ps1 -SelfTestTo classify browser activity by exact domain instead of only the tab title:
- Open
edge://extensionsorchrome://extensions - Turn on
Developer mode - Click
Load unpacked - Select the
browser-extensionfolder
The extension sends active-tab data to 127.0.0.1:38945.
Today- top activities, apps, and categories for the current dayHistory- recent daily totalsInsights- compact weekly overviewWeek review- slipped days, top distractions, and heatmapGoals- progress toward daily limits and study targetAnalytics- charts, streaks, and exportsTimeline- hourly activity and session viewReview- uncategorized items to fixHealth- classification coverage and suggested rulesRules- loaded rule set
Built-in parent categories stay fixed:
studybrowser_funsocialsother
You can add your own categories under those parents from the app. This keeps limits and dashboards stable while allowing more detailed classification.
You can edit:
SettingsCategoriesRulesClassify current
You can also edit settings.json and rules.json manually if you want.
All data is stored locally.
Runtime files are written under data/, including:
- per-day usage files
- browser bridge cache
- summary cache
- exports
- backups
- startup logs
These runtime files are ignored by git and should normally not be committed.
The app already includes:
- per-day storage instead of one huge JSON file
- summary cache for history and analytics
- lighter background refresh behavior
- tray-first workflow
- This repository is intended for Windows users
- No external package installation is required
ScreenTimeTracker.exeis generated locally and is not committed- portable release archives are generated locally under
release/ - Runtime data is generated automatically on first run
- License: MIT
See ROADMAP.md.




