For one person the core is small: a timer, an agent that notes the active app, window title and idle time, a screenshot every few minutes and a daily timeline. An agent writes that for one operating system in a weekend. The time goes into the fussy parts: macOS screen-recording and accessibility permissions, Windows differences, Wayland blocking screenshots, and deciding what to hide. What you can't copy is the manager side: attendance, approvals, payroll and benchmarks across a team. Tracking other people's screens also has consent rules in many places, so the prompt covers only your own machine.
Before you buildTime Doctor has no free plan, only a 14-day trial. If you only need your own hours, ActivityWatch records app and window time for free, without screenshots.
Build me a personal work tracker with activity logging and screenshots to replace Time Doctor. Requirements: - Python 3.12 + FastAPI. `python -m worklog` starts a background agent and serves a local page on http://127.0.0.1:4860 with a day timeline and reports. Target macOS first and keep the capture code behind a Platform interface, with a Windows implementation as the second file. - Storage: SQLite (sqlite3 module) in ~/WorkLog/worklog.db: projects, tasks, sessions (start, end, project, task) and samples taken every 10 seconds (app name, window title, idle seconds). Screenshots are JPEGs in ~/WorkLog/shots/YYYY-MM-DD/, with the file path stored on the sample. - Capture: `pyobjc` (NSWorkspace) for the active app, `pywinctl` for the window title, `pynput` for idle time and `mss` for one screenshot every 5 minutes while a session runs. Pause on screen lock. - Privacy list in config.yaml: apps (password managers, banking) whose screenshots are skipped and whose window titles are stored as "hidden". - Sessions: start, stop and switch project from the page or a global hotkey. After 5 idle minutes, stop the session at the last activity and ask whether to keep or discard the idle stretch. - Ratings: ratings.yaml maps app names and title regexes to productive, neutral or unproductive; the day view shows a coloured timeline, hours per project and the share of each rating. - Reports: a week view, CSV export of sessions, a screenshot gallery with a delete button, and a retention setting that deletes screenshots older than N days (default 30). - Single user, local-first. No accounts, no telemetry, no uploads; the server binds to 127.0.0.1 only. - Out of scope: other users, approvals, payroll, a cloud dashboard, Linux and Wayland capture. - README: granting Screen Recording and Accessibility permissions on macOS, what is stored where, and a reminder that tracking anyone but yourself needs their written consent.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Time Doctor.
Extend the work tracker in this folder. Requirements: - Add a clock-in and clock-out button and a break timer; store them as attendance rows in SQLite. - A day view shows first activity, last activity, break minutes and a note when a session ran past a daily limit set in config.yaml. - Weekly CSV export of attendance with one row per day. - Update the README.
Add a daily digest to the work tracker in this folder. Requirements: - At 18:00 local time (set in config.yaml) write ~/WorkLog/digests/YYYY-MM-DD.md with hours per project, top five apps, share of productive, neutral and unproductive time, and the longest idle gap. - Optionally send the same text to an SMTP address from .env. - A command `worklog digest --date 2026-10-14` regenerates any day. - Update the README.
Add rating suggestions to the work tracker in this folder. Requirements: - A page listing apps and window-title patterns seen in the last 14 days that match no rule in ratings.yaml, sorted by total minutes. - A button per row writes a productive, neutral or unproductive rule back into ratings.yaml, keeping comments in the file. - Re-rate past samples after a rule changes without touching the screenshots. - Update the README.
Companies pay for one view of a distributed team: who worked when, which apps were open and a payroll export that matches the hours. A tracker on your own laptop answers none of that, and the company, not the individual, usually carries the bill.
Estimate · Runs on your machine; screenshots are the only growth, so keep the retention setting on. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Basic | $8 | $6.67 | Automatic tracking, projects and tasks, timeline report, screenshots, online and offline tracking, groups; 3 months of history. |
| Standard | $14 | $11.67 | Basic plus schedules, attendance, time approvals, web and app usage reports, productivity ratings, leave and break tracking, payroll, 60+ integrations; 6 months of history. |
| Premium | $20 | $16.70 | Standard plus Benchmarks AI, an Unusual Activity AI report, video screen recording, SSO, open API, executive dashboard and a success manager; 2 years of history. |
| Enterprise | custom | — | Everything in Premium plus private cloud deployment, custom BI dashboards, guided onboarding and professional services. |
No free plan: a 14-day trial gives every Premium feature, and the page says no credit card is needed.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Dashboards, schedules and attendance across many people, Time approvals, payroll and 60+ integrations.
About $8 a month on the Basic plan per seat, $96 a year (checked 2026-10-20).
Dashboards, schedules and attendance across many people; Time approvals, payroll and 60+ integrations; Benchmarks and unusual-activity reports built on team data; A central server where managers open screenshots, with desktop clients managed from one place; Support and a vendor who answers for the data when a client asks. If any of those matter to you, keep paying.
Yes: ActivityWatch (open source), Cattr (free), Ever Gauzy (open source).