Watch what a certain kind of Mac user did over the last year, and a pattern falls out that's bigger than any one app.

They stopped renting their AI. In March, Ollama swapped its engine for Apple's MLX on Apple Silicon and the local models people run on their own laptops got dramatically faster overnight — reported benchmarks on high-end machines showed decode speeds roughly doubling from a software change alone. Apple shipped its Foundation Models framework right in macOS 26, so an app can call a capable language model that never leaves the device, with no key and no bill. The whole conversation about AI quietly changed verbs. In 2024 it was how do I get access to a model. In 2026 it's how do I own one.

I find this genuinely one of the most interesting shifts in computing right now, and not for the benchmarks. It's that a mainstream group of people looked at the convenient cloud default, did the math on privacy and cost and dependency, and chose to bring the workload home to a machine they control. They already made the hard decision. And then most of them go back to a menu bar full of apps that quietly ship their day to someone else's server.

Your time tracker is almost certainly one of them. That's the gap I want to talk about.

The reasons you moved the model are the reasons you should move the log

Think about why running the LLM locally felt right, because every reason transfers.

Privacy. You didn't want your prompts — which contain your actual work, your half-formed ideas, your company's internals — sitting in a vendor's logs. Fine. Now ask what your activity log contains. Every app you opened, every window title, every site you visited, minute by minute. That's a more complete portrait of your working life than any single prompt. If the prompt was too sensitive to send, the log is the thing you really shouldn't be shipping.

Ownership. The appeal of a local model is that nobody can deprecate it out from under you, rate-limit it, or change the terms next quarter. A cloud time tracker can do all three to your history, and some have — sunset the product and your years of data go with it. Local data is data that doesn't have terms of service.

No dependency. Local models work on a plane, in a dead zone, during an outage. A cloud tracker that can't reach its server either stops recording or buffers into a queue you have to trust. The whole point of bringing work home was to stop asking permission from a server to do your own thing on your own computer.

Every argument that won you over on the model applies, unchanged, to the tracker. Timex is just the version of that argument I decided to build.

What local-first actually buys you here

Timex records into one SQLite file on your Mac and uploads nothing. I've written about that before, but the on-device-AI moment gives it a sharper point: it's the same architecture you already chose for your models, applied to the thing that watches your day. One local file, no account, no telemetry, no server in the loop. You can open it in any SQLite browser, back it up like any document, or delete it and it's gone — no "delete my account" form that pings a database you'll never see.

There's a technical detail I'm proud of that matters more in a local-AI world. Timex reads which app and website you're in through one accessibility permission — the same one it uses for window titles — instead of the old approach of asking each browser over AppleScript, which needed a second permission and which Firefox flat-out ignored. One permission, legible, revocable. That's not just tidier; it's the posture the OS itself now rewards. macOS Tahoe added a permissions panel where you decide, app by app, what may run and what may even appear in your menu bar. An app that asks for one clear thing and does nothing behind your back is built for exactly that world. An app that phones home is fighting it.

The lid-down piece is literally about your local AI

Here's where the two threads braid together, and it's the reason I care about this beyond philosophy.

When you run a local model on a Mac, you hit a dumb physical problem the cloud never had: you want to close the laptop and walk away, but a closed lid means sleep, and sleep means your three-hour fine-tune or your overnight batch of local inference just stopped. So people prop the lid open, buy caffeinating utilities, or leave the machine glaring on the desk all night.

Timex's lid-down mode exists for precisely this. Close the lid; the Mac stays awake and keeps working; Timex keeps recording — so when you open it in the morning, you have an honest local log of when your local model actually finished, reconstructed from the file instead of your memory. Your AI ran on your machine, unplugged from anyone's cloud, and the record of it did too. That's the whole local-first stack, end to end, and it's free forever — lid-down mode, like the break timer, isn't gated behind the license at all.

There's a neatness to it I didn't plan and now can't unsee: the local model does the work with the lid shut, and the local tracker remembers it doing so, and at no point does either one need permission from a server to exist.

Bring the last one home

2026 didn't invent local-first — people have argued for it for years — but this is the year it stopped being a stance and became the obvious default for a lot of us. The models came home. The frameworks came home. The speed showed up. The only thing left running in someone else's data center, for most people, is the boring stuff: notes, tasks, and the quiet log of how they spend their hours.

That log is the one I'd bring home first, because it's the most revealing and the least examined. You already did the hard version of this decision when you chose to run the model yourself. Doing it for a time tracker is the easy version — same principle, no GPU required.

Timex is $49 once, for three of your Macs, and the trial is 100 hours with no account and no card. Download it, or if you already live in the terminal, brew install muvon/tap/timex. Then close the lid on your next long local run and let the file remember it for you.

— DK