Should I vibe code
Record local app activity privately and convert selected blocks into timesheet entries
Wayland refuses to tell you which window is focused. That refusal is most of what you're paying for.
?
Their verdict, the Basic 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 window and writing a row is an evening, and this site already says SHIP IT to three tools that do exactly that. Memtime's difference is printed on the box: Mac, Windows and Linux, capturing not only the application but the document, the file path and the full URL. That is where the weekend project stops. Reading the active window is a per-platform problem with three unrelated answers, and under Wayland it is not a hard problem but a deliberately unsupported one — the compositor will not tell you, by design, and every Linux tracker that manages it does so through a stack of desktop-specific workarounds somebody keeps alive full time. The other thing Memtime sells is a boundary: the raw timeline never leaves the machine, and the only thing that reaches the project system is a timesheet line the person chose to submit. Your version will hold that line right up until somebody asks to see the team's timeline, and the day you build that sync you have shipped monitoring software to people who agreed to a time tracker.
What actually breaks
not "if". the specific failures.
- Active-window capture on Linux under Wayland, which has no supported API on purpose, so every working answer is a per-compositor workaround with its own breakage schedule
- The Windows path, which is a different API, a different idle model, and a different set of endpoint-protection products that will decide your binary is a keylogger
- macOS permissions, which get reset by OS updates and turn a working tracker into a chart of zeros with no error raised anywhere
- Idle detection, which is the entire difference between an eight-hour day and eight hours of an open laptop
- The timeline file, which holds full URLs and file paths and therefore client names, matter numbers and the document you should not have had open — and which is precisely the wrong thing to leave in a synced folder
- The database, growing at minute resolution forever, with nothing pruning it and no export
- Retroactive edits, if a correction overwrites the sample instead of sitting beside it, because then your memory becomes the record you invoice from
- The boundary, the first time somebody asks for a team view — that is a different product, a different conversation and in most of Europe a different legal basis
Is that you?
the verdict is a default, not a law
- It runs on one operating system, yours, and nothing leaves the machine
- You are the only person being recorded
- The output is something you read on Friday rather than an invoice you send on Monday
- The capture list is app and window title, with an exclusion list written before the first sample
- It records anybody other than you — that is monitoring, and it comes with its own law and its own conversation with the people being monitored
- The timeline database lives in iCloud Drive, Dropbox or any folder that syncs by default
- You need it working on Windows, macOS and Linux, because that is three capture layers rather than one with flags
- Timesheets go straight from raw samples to a client invoice with no review step
If you build it anyway
the checklist, then the prompt that enforces it
- Pick one operating system. The capture layer is the product, and macOS, Windows and Linux share none of it — the second platform is a second project.
- Write the exclusion list before the capture code: bundle ids, process names and window-title patterns that are never recorded, applied at capture time so the sensitive string never reaches disk.
- Capture titles and URLs, never pixels. The moment you take screenshots, the risk profile of the entire project changes and so does the conversation you have to have about it.
- Keep the store local and encrypted, deliberately outside every folder that syncs by default, and print the chosen path and the reason on first run.
- Fail loudly when permissions lapse. Check on every launch and resume, and record the gap in the data — a silent week of zeros is the worst outcome here because it looks like data.
- Raw samples are append-only. Reclassifications live in a separate layer that references them, so what happened survives alongside what you decided it was.
- If anybody ever asks for a team view, treat it as a new project with a new verdict: notice, a lawful basis, retention limits, and an answer to whether a manager can see window titles. Do not let it arrive as a sync feature.
I am building an automatic activity tracker for my own machine. The dataset is
more sensitive than the code, and the boundary around it is the product.
Constrain what gets captured before writing anything that captures.
1. Ask which single operating system this is for and refuse to design for more
than one. Tell me the capture layer is the whole project: macOS uses
Accessibility, Windows uses UIAutomation, and Wayland deliberately provides
no supported way to read the focused window at all.
2. Start with the exclusion list. A config of process names, bundle ids and
window-title regexes that are never recorded, applied at capture time so an
excluded title never reaches disk or a log line.
3. Capture the application, and the window title or URL only where the config
permits. No screenshots, keystrokes, clipboard or camera. If I ask for
screenshots, tell me that turns this into surveillance and make me confirm.
4. Store locally in an encrypted SQLite file placed outside iCloud Drive,
Dropbox and Google Drive. Print the path and the reason on first run.
5. Nothing leaves the machine. No telemetry, no crash reporting, no sync. If I
later ask for sync or a team dashboard, stop and tell me that is a different
product with a different legal basis, and that the people being recorded
have to be told.
6. Check permissions on every launch and resume. When they are missing, show a
persistent warning and record the gap as an explicit hole in the data. A
silent week of zeros is the failure I care most about.
7. Raw samples are append-only. My corrections live in a separate table that
references them, so the original observation is never overwritten.
8. Use the system idle timer, store idle intervals explicitly, and never
attribute idle time to whichever application happened to be in front.
9. Build CSV export and a single command that deletes everything before you
build any chart. Add a retention window with a purge that really deletes.
10. Out of scope, and say so rather than stubbing it: tracking anybody else,
any server component, team reporting, 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
As soon as a second operating system or a second person is involved. Eighteen dollars per person per month is mostly buying three capture layers that somebody else keeps working through every OS release, plus the grouping algorithm that turns thousands of one-minute samples into blocks you can put on a timesheet without sorting them by hand on a Friday. It is also buying a boundary you would have to enforce on yourself: Memtime's design keeps the raw timeline on the user's machine and lets them choose what to submit, and that restraint is worth more than any feature on the page.
It is a local database, so the exit is a CSV and a delete command — but write both on day one, because the version of this that has no export is the version you cannot leave. The columns any commercial tracker will want are start, end, application, title or URL, idle flag and project, so keep those clean and moving to Memtime, Timing or Toggl is an afternoon. The other half of the exit is deletion: a year of minute-resolution window titles is a liability with no remaining upside, and a retention purge that actually removes rows is the feature that lets you stop worrying about the file.
Cross-platform open-source automatic tracker that keeps everything on your own machine, including the per-desktop Linux watchers this problem actually needs.
Mature open-source time tracking with projects, reports and exports, if what you want is the timesheet half rather than the capture half.
Questions
Timing and RescueTime are SHIP IT. Why is this DEMO ONLY?
Because the thing being sold is different. Timing is one operating system and one user, and a homemade version is genuinely competitive by Sunday. Memtime is three operating systems, sold per seat, capturing file paths and full URLs, with the raw data pinned to the device by design. The single-platform, single-user version of this is still a SHIP IT and the entries for Timing and RescueTime say so. What you cannot get to in a weekend is the cross-platform capture layer, and that is the actual product.
Is Wayland really that much of an obstacle?
Yes, and it is deliberate rather than incidental. Wayland's security model exists precisely so that one client cannot observe another, which means there is no portable way to ask what the focused window is or what it says. What working Linux trackers do instead is talk to each desktop environment separately — a GNOME extension here, a KWin script there, X11 fallbacks elsewhere — and keep all of those alive across releases. That is not a bug you fix once.
What changes the moment a second person installs it?
Everything. Tracking your own attention is a personal tool; recording somebody else's document titles is monitoring, which across most of Europe needs a lawful basis, notice, and usually a works-council conversation, and in several US states has its own notification rules. The engineering changes too — you now need accounts, retention limits and an answer to whether a manager can see window titles. That is a product to buy, not a sync feature to add.
How sensitive is the timeline file really?
More than it looks, and it is the reason the tool keeps it local. Full URLs and file paths mean client names, matter numbers, unreleased product names, the address of the document somebody sent you by mistake, and everything you looked at over lunch. It is a minute-by-minute account of a working life in one unencrypted file, and the single most common mistake is leaving it in a folder that syncs.
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.
An automatic tracker is a minute-by-minute diary of your life in a SQLite file. Don't put it in Dropbox.
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.
last reviewed 2026-08-05 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice