macOS time tracker comparison 2026
Six Mac time trackers: Toggl Track, Clockify, TimeCamp, ActivityWatch, drifty and Dial. I built Dial, so treat this the way you’d treat a chef reviewing the restaurant next door. I’ll try to be fair and you should still discount me.
The sheet
You came for this, so here it is first.
Now the part the sheet cannot tell you. A comparison table is how a maker wins an argument they set up themselves, by picking the columns, and I picked these columns. Prices are checkable and I would not dare get them wrong. The two middle columns are not neutral: they are the question I think decides this, and I chose them because they are the ones Dial has a good answer to.
So read them as a claim rather than as a fact. The claim is that the thing you live with at 4pm on a Thursday, when you realise you haven’t touched the tracker all morning, is not a feature. It is who writes your day down, and who the record is written for. Every tracker here has answered that, most of them without ever saying so out loud.
If you want the features anyway, here they are. Four states, because two would have meant guessing: a blank dot is a thing I did not check rather than a thing the tool does not do.
Three answers
There are three answers. You write it. The machine writes it. Or something in between.
you confirmed itwritten without youno record at all
You write it: Toggl Track
The manual timer is the oldest answer and the one most people actually mean when they say time tracker. You start an entry, you name it, you stop it. Toggl does this about as well as it can be done. Starting and naming an entry there is genuinely pleasant, and if you’re going to do a thing eight times a day, pleasant is not a small property.
Its strength is one nothing else here can claim. A manual record is the only kind that is certain to mean something. Nothing guessed, nothing inferred. You were there, you named it, so the entry is true by construction. When you send those hours to a client you can stand behind every line.
The honest cost is the one I’d want you to test rather than take from me. Work a normal Tuesday with a manual timer and count two things: how many times you started an entry, and how many stretches you later had to type in from memory. The second number is the bill. Not money, attention, paid in small amounts all day and then again in a lump on Friday when you reconstruct what you can.
This is not a flaw Toggl could fix by trying harder. It’s the deal the shape makes.
The record is for someone else: Clockify and TimeCamp
These are built on the assumption that the time becomes an invoice, a timesheet, or a payroll line. Clients, rates, approvals, exports an accountant will accept. All of that is real and well made and I’m not going to be snide about it.
If your hours have to survive contact with another person’s finance process, one of these is probably your answer, and Dial isn’t in the running. It exports hours. It doesn’t bill anyone, doesn’t know what a rate is, and has no concept of a second user.
The thing to notice is who the record is for. In a billing tool the record’s customer is the person receiving it. That’s why there’s an approval step, why entries have a client field, why the reports look like documents. If you are one person trying to understand your own week, you’re using a tool whose audience is somebody who isn’t in the room, and the admin is still there when the team isn’t.
The machine writes it: ActivityWatch
The automatic answer. Something watches what’s in front on your screen and files it, and you never have to remember anything. ActivityWatch is the version I’d point you at, because it’s open source, it runs locally, and no company can change its mind about your data later.
The strength is obvious and it’s the one I most respect: you cannot forget. The record is complete because you were never part of writing it.
The cost is that the record answers a different question than the one I usually have. It can tell you that you had Figma in front for three hours. It can’t tell you which of your projects those three hours were, because that isn’t a fact about your screen, it’s a fact about your intent.
Take a day that will be familiar if you design and ship your own things. The feature starts in Figma. Then there is a call about it, because somebody had a question about the empty state. Then it gets built in Cursor. The client landing page runs through exactly the same three, and so does the refactor you did instead of either.
What the screen saw · certain, and not what you asked
Which project it was · the row you actually need
every project used all three, so no rule about apps can tell them apart
An automatic tracker sees that day perfectly and can tell you nothing useful about it. Figma is not a project. Cursor is not a project. The forty five minutes in Meet is the clearest case of all: it is unambiguously work, it unambiguously belongs to one of the three, and the only record of which one is in your head and in a calendar invite the tracker never looked at.
The thing you want back on Friday is “the checkout took eleven hours”, and the checkout is not an application. It is a decision you made about what those hours were for.
You can write rules until it guesses well. App plus window title plus a repository name gets you a surprising distance, and then you change branch, or open the client’s file in the same editor, or take the call from the kitchen, and the rules are a thing you maintain forever. That maintenance is the real price of never having to remember anything.
If free is the requirement rather than the preference, use this. I mean it.
Somewhere in between: drifty, and Dial
Both of us sit in the middle, and the difference between us is the most interesting disagreement in the category.
drifty records automatically and then has a model sort the activity into categories like focus and drift. It’s good, and the thing I’d actually pay attention to when trying it is how you feel about the verdicts. Some people find it clarifying to be told the shape of their day by something that was watching. I found that I didn’t want my hour classified for me, and I noticed I trusted it least in exactly the cases where it was probably right.
Dial takes the same raw material and stops one step earlier. It’s a clock in the menu bar. Click a project to start, click another to switch. It watches the day well enough to notice the gaps, the meeting, the call, the stretch where you walked away, and then it hands those back as proposals. Cards you accept or reject. Nothing enters the record unless you said yes.
That extra tap is the whole argument. A record you confirmed is a record you still believe on Friday. A record that was written for you is one you end up auditing, which is the work you were trying to avoid.
Switching projects arms the start button rather than starting the clock, for the same reason: deciding what a stretch of work is and deciding to begin it are two different decisions, and collapsing them produces entries you don’t mean. And the block you just finished sits under the button with draggable edges, for the very normal case of having started half an hour late.
There’s no account and no server. Projects and sessions are one JSON file on your Mac, and there’s a button in settings that opens it in the Finder.
Where Dial is worse
The confirmation step is a real weakness and I’d rather say it than have you find it. If you ignore Dial’s proposals for three days, you have a worse record than a fully automatic tracker would have given you, because the automatic one just wrote it down. Consent costs something. On a bad week it costs you the week.
The rest of the list is shorter and blunter. No team. No invoices or approvals. Mac only, menu bar only, no phone and no web, so there’s nothing to check from a train. The reporting is thinner than Toggl’s, deliberately, but thinner is thinner. And the paid tier is $3.99 a month or $79 once, against several genuinely good free options, three of which are in the sheet above. That is a real thing to justify and I am not going to pretend the free column is not there.
Short answers
If the hours become an invoice or a timesheet somebody else approves, use Clockify or TimeCamp, and Dial is not in the running.
If you want every entry to be certain and you don’t mind paying attention for it, use Toggl. It is the best version of the manual timer.
If free is the requirement rather than the preference, use ActivityWatch. I mean that, and it costs nothing to find out.
If you want the day sorted into categories for you and you like being told the shape of your week, try drifty. Notice how you feel about the verdicts.
If you want to confirm a day rather than audit one, and it’s you, one Mac, and nobody to bill, that is the case I built Dial for.
How to settle it in a week
Don’t decide from a post. Including this one. Install a tracker, work normally for five days, and on Friday read the record against what you actually remember about the week.
You are looking for the two failures in the first drawing above. Holes, where the tracker asked more of you than you had to give. And entries you don’t recognise, where it filled the day in on your behalf. Every tool here trades one for the other, and which trade you can live with is not something I can tell you from here.
The tool that produces a record you still believe on Friday is the right one. It won’t be the same tool for you as for me, and it isn’t always the cheapest.
Honestly, if the answer turns out to be ActivityWatch and a calendar, that is a fine answer and I will live.
Dial is at dial.software. There’s a free tier, and fourteen days of the whole thing with no card and no account if you want to see the rest. If it hasn’t earned it by then, delete it, and the record was never anywhere except your Mac anyway.
Toggl Track
Clockify
TimeCamp
ActivityWatch
drifty