There's a line on the Timex homepage I wrote myself. It's in the section about everything wrong with the other Mac time trackers, and it says, more or less: you don't need an algorithm telling you that Slack is "low value." You already know. A few paragraphs down, describing what Timex actually is, I wrote: no productivity score.
Timex 1.2.0 has a productivity score.
So before anything else, let me explain why I didn't just lose my nerve.
Two different things wearing the same word
When I said "no productivity score," I meant a very specific thing — the thing RescueTime and Rize sell. An algorithm, running on someone else's servers, that reads your window titles and decides for you that this was focus and that was waste. You pay $96–240 a year for the verdict. The rubric is theirs. The data is theirs. The number is theirs, rendered back to you in a weekly email you didn't ask for.
That's what I built Timex to not be, and 1.2.0 doesn't change that one bit.
What 1.2.0 adds is the opposite object that happens to share a name. A Focus Score that is 0–100, sits at the top of your day, and is computed entirely on your Mac from data that has never touched a network — because you wrote the rubric. You decide what counts. Timex just does the arithmetic.
The difference between "an algorithm scores you" and "you score your own day, and the app totals it up" turns out to be the whole difference. One is a verdict. The other is a mirror you ground yourself.
What it actually is
Open Timex. At the top of Today, next to your hours, there's now a number — say, 73 — with a word under it: Productive, Balanced, or Distracted. The same number rides in the menu-bar popover, so you get it at a glance without opening anything.
Under the hood it's almost embarrassingly simple. Every app and website you use belongs to a category, and every category has a weight from −100% (pure waste) to +100% (deep focus). The Focus Score is just your tracked time, weighted by those numbers, mapped onto 0–100. 50 is neutral. A morning of nothing but coding lands near the top. An afternoon that drained into video lands near the bottom. A normal mixed day lands where a normal mixed day should — in the middle.
It's the same honest log Timex always kept. The score is just a lens you can hold up to it, or ignore. Nothing nags. There's no streak to protect, no weekly insights email, no badge. Close the lens and you're back to "here's where the time went," which is still the product.
A browser is not one thing
Here's the part I actually care about, and the reason app-level scoring was never going to be good enough.
Your browser is a single app. But for most of us it's two completely different lives stacked in the same window. github.com and a pull request is the most focused you get all day. youtube.com and an autoplaying tab is the least. Score the app "Browsing, neutral" and you've thrown away the only distinction that matters.
So 1.2.0 categorizes websites, not just apps. A website rule overrides the browser's category: github.com → Development, docs.google.com → Productivity, youtube.com → Entertainment, reddit.com → Entertainment. The same Chrome window now splits into focused work and wasted time, because that's what it actually was. Timex ships with about sixty of these rules out of the box so the score is meaningful on day one, and every one of them is yours to change.
To make that work I had to fix how Timex reads URLs, and the fix is a small story of its own. The old version asked each browser for its tab over AppleScript — which needs a separate Automation permission, and which Firefox doesn't answer at all. The new version reads the address straight out of the browser's accessibility tree: the same permission Timex already uses to read window titles. No second prompt. And it works for browsers AppleScript never could — Firefox, and the Chromium-based browser I use myself. (Firefox keeps its accessibility tree switched off until something asks; Timex now asks. If you're a Firefox person, your URLs show up where they never did before.)
You write the rubric
Defaults are a starting point, not a verdict. Open Settings → Categories and the whole thing is yours:
- Tune the weights. Drag a slider per category from −100% to +100%. If "Communication" is where your real work happens, push it up. If you think coding at midnight is the problem, not the point, push Development down. The score is a number you defined; of course you can argue with it.
- Make your own categories. Not everyone's life fits six buckets. Add "Design," "Writing," "Learning" — name it, color it, weight it.
- Reassign anything. Every app and the websites you actually visit are listed with a category picker. Right-click an app row in Today to recategorize it on the spot; your whole history updates, because the category is resolved live, not frozen at the moment it was recorded.
- Add website rules. Decide that
news.ycombinator.comis research, or that it's a hole. You're right either way — it's your rubric.
I deleted exactly one thing while building this: there used to be an "Uncategorized" bucket and a "None" option, which were the same idea wearing two hats. Now there's just None. Unscored time still shows up — it's simply unscored, the way it should be.
Why this is a 1.2, not a 2.0
Same reason 1.1 wasn't a 2.0. The productivity weight has been sitting in Timex's database since version 1.0 — every category already carried a number; the app just never showed it to you. 1.2.0 surfaces a value that was always being recorded, adds the website-level precision to make it honest, and hands you the controls. It changed what you can see, not what Timex does. The tracker still just records, second by second, and lets you look.
The version number tracks the shape of the app, not the size of the work.
What's next
- Per-rule history view — see a single website's time and category over a range, not just today.
- Score over time — a sparkline of focus across the week, for people who want the trend without the guilt-trip email. Carefully, or not at all.
- More default rules and app mappings, driven by what you tell me is landing in "Uncategorized" that shouldn't be.
If you're on 1.1, download 1.2 directly — the upgrade keeps everything, and your old browser time quietly gains website detail going forward. If you're new, the trial is still 100 hours, no signup, no email, no card. And if you open it up, set every weight to zero, and decide you never want a number on your day — that works too. It's your rubric. Leaving it blank is a valid entry.
— DK