Why a time tracker should never need Screen Recording

· 6 min read

A time tracker’s job is to know which app is in front and for how long, and macOS hands that information to every app with no permission at all. When a tracker asks for Screen Recording, it is not asking for what it needs to count your hours; it is asking for window titles (document names, browser tabs, email subjects) and, as a side effect, the ability to capture your screen. That is a different product with a different set of risks, and you should decide about it on purpose rather than clicking through. Here is what the permission buys a tracker, what it costs you, and what tracking looks like without it.

What a tracker actually needs

Automatic time tracking on a Mac comes down to one event: the frontmost app changed. macOS announces it to any app that asks, with the name and bundle identifier of the new app, and no prompt is involved. A tracker that listens to that event and notes the clock has everything it needs to produce “Xcode 4h 05m, Safari 1h 30m, Slack 50m” at the end of the day.

Idle time is the other half, and that is also available without a permission: the system reports how long since the last keyboard or mouse event, as a single number, without revealing what the input was.

So a tracker built only on public information knows app names, the order you used them in, and the gaps. It does not know what you were doing in any of those apps. For most people asking “where did my day go,” that is the whole answer. There is a walkthrough of what the public signal can and cannot tell you in automatic-time-tracking-accuracy-what-it-can-and-cannot-know.html.

What Screen Recording adds

Screen Recording (System Settings, Privacy & Security, Screen & System Audio Recording) unlocks two things for a tracker:

  1. Window titles. The system window list shows names only for apps that hold this permission. With it, “Safari” becomes “Safari: Mortgage pre-approval, Chase,” and “Pages” becomes “Pages: Resignation letter draft.”
  2. Screen capture. The permission’s actual purpose. The app can take screenshots or a continuous stream of any window at any time, with no per-capture prompt.

Trackers that ask for it want the first. Some also use the second, for “timeline screenshots” you can scroll back through. From your side you cannot tell which, because the permission is the same and only a continuous capture shows the menu bar indicator.

The extra detail is real. A tracker with window titles can split a browser into sites, an editor into projects, a mail app into threads. If you need that split, the permission is the price and you should know you are paying it.

What it costs you

The cost is not hypothetical. Consider what a day of window titles contains:

  • Every document you opened, by name, including the ones you did not finish.
  • Every web page title, which often includes search queries, account names, and the subject of whatever you were looking up.
  • Email subjects, chat channel names, calendar event titles.
  • Anything in a window title that was not meant to be a record: a medical portal, a bank, a job listing, a colleague’s name.

All of this lands in the tracker’s database. If the tracker syncs to a server, it lands there too. If the tracker is ever opened on a shared screen, the titles are right there in the timeline. And the capability is broader than the titles: an app granted Screen Recording can capture the full screen, and you are trusting that it does not.

Compare that with the app-name version: “Safari 1h 30m.” Far less detail, and nothing that needs to be kept private.

The objection: “but I need to know which project”

This is the honest case for titles. If you bill three clients and they all live in the same apps, app names alone cannot split the day for you.

Two things are worth saying. First, a tracker that answers this question well usually does so with projects, tags and manual assignment rather than raw titles, and those are a different feature set. Second, the window-title version of project splitting is approximate anyway: titles change mid-task, browser tabs are a mess, and the tracker guesses. If billing accuracy is the need, a timer you start per client, or a daily note, beats inference from titles. See time-tracking-for-freelancers-on-a-mac-without-projects-or-tags.html for how far app-level totals get you before you need more.

If the question is simply “how much of today was in the editor versus in meetings versus in the browser,” app names answer it completely.

What tracking without the permission looks like

Punchcard is a menu bar tracker built on the public signal only. It asks for zero macOS permissions: no Screen Recording, no Accessibility, no Full Disk Access, no Input Monitoring. It records app names and time per app and nothing else, because nothing else is available to it.

At the closing time you set, it prints a paper receipt of the day: one line per app with its time, a day total, a stamp. You tear it off, and you can export it as a PNG or copy the text. The receipt is app-level by design. It will never show “Figma: client-redesign-v4,” because Punchcard has never seen that title and has no code path that could.

What it does not do, plainly: no per-project or per-client tracking, no tags, no manual timers, no billable rates, no screenshots, no timeline you scroll back through. If you need those, you need a different kind of tracker, and that tracker will probably need a permission. If you need to know where the day went, Punchcard answers that without a single switch in Privacy & Security.

How to check what your current tracker has

  1. Open System Settings, then Privacy & Security.
  2. Open Screen & System Audio Recording and look for your tracker. Then open Accessibility and look again (Accessibility is the other route to window titles).
  3. If it is listed in either with the switch on, open the tracker and look at your timeline for today. Read the window titles it has stored. That is the data you are generating every day.
  4. Decide. If the titles are earning their keep, keep the permission and make sure you know where the database lives and whether it syncs. If they are not, switch the permission off and see what the tracker falls back to. Many keep working at the app level.

The relevant test for any tracker is simple: does it ask for more than the job requires? For counting hours by app, the job requires nothing. Anything beyond that is a feature you should be choosing, not a default you accepted on the first launch.

Questions

My tracker says it needs Screen Recording “for accuracy.” Is that true?

Accuracy of time per app does not depend on it; the app switch event is the same with or without the permission. What the permission improves is detail, not accuracy. A tracker that conflates the two is being loose with words.

Can a tracker get window titles without Screen Recording?

Yes, through Accessibility, which is broader still (it can read text fields and send keystrokes). If a tracker avoids one and asks for the other, the detail it collects is the same.

Does app-only tracking count time in a browser as one block?

Yes. “Safari 2h” is the whole story; it cannot split sites. If most of your work lives in a browser, app-level totals are less informative than for someone who moves between a dozen apps. Punchcard and any other permission-free tracker share this limit.

Is there a middle ground, like titles for some apps only?

Not at the permission level. Screen Recording is all or nothing across every app. Some trackers offer to ignore certain apps in their own settings, but the permission they hold still covers everything.