TraceMe
Productivity tracker
TraceMe is a productivity tracker. It records application and browser activity, sorts it into 19 categories, and scores focus from 0 to 100 with a weighted algorithm computed on the machine rather than by a model. Apple Health records are joined on date, so sleep, workouts, and step counts can be correlated against focus output. A macOS desktop app, Swift menubar widget, Chrome extension and iOS app sync to one Supabase dashboard.
Problem
Commercial time trackers collect screen time, application usage, and browsing history, then hand back a summary dashboard. The underlying event data — the part that supports real analysis — stays with the vendor.
TraceMe was built to keep that data local and queryable: a personal behavioral dataset dense enough to run trend analysis, correlation, and forecasting against, rather than a set of charts someone else decided were interesting.
Solution
V1 — Nov 2025. Focus was scored by sending periodic screenshots to a hosted model, Grok-4-fast, for categorization. The pipeline worked, but results varied between runs on similar activity, cost scaled with session length, and screen contents left the machine on every capture.
V2 — Jan 2026. Hosted scoring stayed, with a correction layer on top: a training page where mis-categorized sessions were relabeled by hand and folded back into the prompt. Analytics expanded to period-over-period comparison. Accuracy improved, but every correction needed manual input and the score still depended on a remote model.
V3 — Feb 2026. The hosted model came out of scoring entirely. The score is now a weighted combination of four locally computed signals:
- On-task ratio (35%) — share of the last 30 minutes spent on work-tier activity - Focus depth (30%) — confirmed off-task switches per hour, with a 30-second delay so brief glances do not count - Input engagement (20%) — keyboard, click and mouse rates, plus a reading heuristic for low-input attention - Session continuity (15%) — length of the current unbroken on-task stretch
An occupation preset decides which of the 19 activity categories count as work for a given role, so the same formula scores a developer and a salesperson correctly. Because the algorithm keeps changing, a backfill script re-normalizes the full history on each revision, so old sessions stay comparable to new ones.
The same release added a Tauri desktop app reusing the existing React components, a local tracking daemon, forecasting, location tracking and Apple Health integration. Capture is split by source:
- Desktop daemon — application activity, and the analysis layer - Chrome extension — browser activity - Menubar widget — start and stop controls
All of them write to the same Supabase Postgres instance. Three native C++ libraries handle the heavier local work: webcam rPPG for heart rate, Apple Vision OCR for on-screen text, and thermal and power sampling. OCR runs on-device and only derived counts sync — the extracted text never leaves the machine. AI is still in the product, for live-session analysis and the assistant, but not for the score.
Outcome
The tracker has run since November 2025. A July 2026 export covers 147,707 activity samples, 31,186 context switches, 622 focus sessions and 176 scored days — enough history to review focus trends, distraction patterns and day-of-week variation every week. The clearest validation is a negative one: a week spent ill shows up as a visible drop in the focus curve without needing to be annotated.
The dataset feeds a seven-day forecast of daily focus score built on 18 features, including lag terms, rolling windows, sleep hours and step counts. Over a 105-day training window the random forest returns RMSE 6.84 and MAE 3.65, against a linear baseline at 9.94 and 6.73. Both are in-sample — there is no held-out split yet, so the true error is higher than those figures suggest.
Stack
- Frontend: React, Swift
- Backend: Node.js, Python, Rust
- Database: Supabase
- Other: DesktopApp, Menubar, Extension, iOS