Should I vibe code
Track Mac application activity privately and assign blocks to projects
An automatic tracker is a minute-by-minute diary of your life in a SQLite file. Don't put it in Dropbox.
?
Their verdict, the Professional price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.
?
Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.
The honest answer
why the verdict is what it is
Polling the frontmost application every few seconds and writing rows is genuinely one sitting on macOS, and the result is useful the same evening. What deserves a moment's thought is not the code but the file it produces: an unencrypted, minute-by-minute record of every app, document title and URL you touched, which quietly includes client names, unreleased project names and whatever was in the tab you would rather not explain. Keep it local, keep it about you, and this is one of the cleanest builds on the site — a single-user tool where the worst outcome is deleting a database nobody else has. Point it at somebody else's Mac and it stops being a time tracker and becomes monitoring software, with an entirely different set of rules attached.
What actually breaks
not "if". the specific failures.
- macOS permissions. Accessibility and Screen Recording prompts get reset by OS updates, and a tracker that has quietly recorded nothing for a week is worse than no tracker at all
- Idle detection, which is the entire difference between eight hours of work and eight hours of an open laptop
- The database, which grows forever unless something prunes it and is the only copy of whatever you are billing from
- Retroactive edits. You will correct yesterday's blocks, and if corrections overwrite the raw samples, your memory becomes the record
- The window-title log, the moment it lands in a synced folder — 'Redacted Corp acquisition model v7.xlsx' is not a filename you want in somebody else's backup
Is that you?
the verdict is a default, not a law
- It runs on your own Mac and nothing leaves it
- You are the only person being tracked
- The output is a summary you read on Friday, not an invoice you send on Monday
- It tracks anybody other than you — that is employee monitoring and it comes with its own body of law and its own conversations
- The database sits in iCloud Drive, Dropbox or any folder that syncs by default
- You invoice clients straight from it with no review step between the samples and the total
If you build it anyway
the checklist, then the prompt that enforces it
- Keep the store local and encrypted at rest, and deliberately place it outside every folder that syncs by default.
- Write the exclusion list before the reporting: apps and title patterns that are never captured, applied at capture time so the sensitive string never touches disk in the first place.
- Record the application and optionally the window title. Not screenshots — the moment you capture pixels, the risk profile of the whole project changes.
- Fail loudly when permissions lapse. Check on every launch, and surface a visible warning rather than an empty chart.
- Keep raw samples immutable and hold your manual corrections as a separate layer, so you can always see what happened alongside what you decided it was.
- Prune on a schedule and export to CSV. Years of second-resolution samples is a liability with no upside.
I am building an automatic activity tracker for my own Mac. The dataset it produces is more sensitive than the code, so constrain what gets captured before you write anything that captures.
1. Start with the exclusion list. A config file of application bundle ids and
window-title regexes that are never recorded, applied at capture time. An
excluded title must never reach memory-resident storage or disk, not even
briefly.
2. Capture the frontmost application, and the window title only when the
config allows it. No screenshots, no keystrokes, no clipboard, no camera.
If I ask for screenshots, tell me that changes this from a time tracker
into surveillance and make me confirm.
3. Store to a local SQLite database, encrypted at rest, in a path chosen to be
outside iCloud Drive, Dropbox and Google Drive. Print the chosen path and
the reason on first run.
4. Nothing leaves the machine. No telemetry, no crash reporting, no sync, no
cloud backup. If I later ask for sync, refuse until we have discussed what
is in the window titles.
5. Check Accessibility and Screen Recording permissions on every launch and
resume. If they are missing, show a persistent warning and record the gap
in the data — a silent week of zeros is the failure I care most about.
6. Raw samples are append-only and never edited. My reclassifications live in
a separate table referencing them, so the original observation survives.
7. Use the system idle timer, store idle intervals explicitly, and never
silently attribute idle time to whatever app was in front.
8. Build CSV and JSON export, plus one command that deletes everything, before
you build any charts.
9. Add a configurable retention window with a scheduled purge that really
deletes rather than flagging rows.
10. Out of scope, and say so rather than stubbing it: tracking any other
person, any server component, team dashboards, and invoicing.That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.
their build prompt ↗Or don’t build it
the boring option, and the way back out
If the tracking feeds invoices, buy it. Ten dollars a month is mostly paying somebody else to survive every macOS release as Apple keeps tightening the APIs that read window titles, plus a rules engine that turns thousands of raw samples into project blocks without you sorting them by hand on a Friday. The homemade version is excellent at showing you where the day went and mediocre at producing a number a client will accept.
It is a SQLite file on your own machine, so the exit is a CSV export and rm. If you ever want to move to Timing, Toggl or Harvest, what they will ask for is start, end, application, title and project per row — so keep those columns clean and the migration is an afternoon.
Cross-platform open-source automatic time tracker that keeps everything on your own machine.
Mature open-source time tracking with projects, reports and exports, if you want the billing half instead.
Questions
If the risk is low, why is dataSensitivity scored at 5?
Because the sensitivity of a dataset is not the same question as who holds it. A full window-title log contains client names, unannounced product names, the URL of the document you were not supposed to have, and every site you visited at lunch. That is genuinely sensitive material — it is simply sensitive material about you, on your own disk, which is why blast radius is 1 and the verdict is SHIP IT.
What changes if I add it for my team?
Everything. Tracking your own attention is a personal tool; tracking somebody else's is monitoring, which in most of Europe requires a lawful basis, notice and usually a works-council conversation, and in several US states has its own notification rules. It also changes the engineering: you now need accounts, retention limits, and an answer to 'can my manager see the window titles'. Buy that; do not build it.
Why does this need to survive macOS updates at all?
Because reading which app is frontmost and what its window says goes through Accessibility and Screen Recording, and those are exactly the permissions Apple keeps narrowing. A release that revokes them turns a working tracker into a chart of zeros, and it will not tell you. That is the recurring cost the subscription is actually covering.
Every week, someone ships something they shouldn’t have.
New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.
A window-title log is the most revealing file on your machine. The good news is that yours never has to leave it.
A timer and a table. If you bill from it, treat the table like an accounting record.
The timesheet is a Saturday. The eight-sided cube on your desk is the actual product, and it is not made of software.
last reviewed 2026-08-04 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice