Hours — Steam-style Time Tracking for Your Browser

2026-07visit
Browser ExtensionSupabaseTypeScriptChrome API

Hours is a browser extension that tracks how much time you spend on websites — think Steamplaytime tracking but for your browser. It runs entirely locally by default, keeping your browsing data on your machine unless you choose to sync it.

The idea came from a simple frustration: I wanted to know where my time actually went during the workday, but existing time-trackers either required manual logging or sent everything to someone else's server. Hours watches the active tab, listens for idle state changes, and logs time per domain — all without ever seeing page URLs or content.

How It Works

The extension uses Chrome's tabs, windows, and idleAPIs to know which tab is focused and whether you're at your desk. A heartbeat alarm ticks every few seconds to accumulate time. When a domain changes or you go idle, the elapsed time is written to chrome.storage.local.

The popup shows breakdowns by day, week, and all-time. I added a simple bar chart and a compact layout so you can see your top sites at a glance.

Privacy by Default

All data stays on your device unless you explicitly opt into sync. No accounts, no sign-ups, no data leaving your machine. I built it this way because browser extensions are in a privileged position — they see every site you visit — and that trust shouldn't be abused.

For the full breakdown of what is and isn't collected, see the privacy policy.

Optional Supabase Sync

If you want your data accessible across devices, you can configure your own Supabaseinstance. The extension syncs time records to a site_time table under your Supabase user ID. This is entirely optional — the extension works fully offline without it.

What's Next

I'm planning a companion dashboard site where you can view detailed analytics, set daily limits, and get alerts when you've spent too long on certain sites. The extension itself will stay lean — the goal is a tool that gets out of your way and quietly answers the question: “where did my day go?”