Timing's core is a small loop: sample the frontmost app, window title and browser tab, merge the samples into blocks, sort the blocks into projects with rules and total them in a report. An agent can write that as a native menu bar app in one long session, with no outside service and a handful of macOS permission prompts. The gaps are around the loop: sync across Macs and the web app, the Screen Time import for iPhone, issue-tracker sync and the team features. The ready-made ActivityWatch already covers the tracking half for free.
Before you buildTry the 30-day trial first, and look at ActivityWatch before building: it does the automatic tracking for free.
Build me a Mac time tracker that logs my work automatically, to replace Timing. Requirements: - Swift 6 with SwiftUI and AppKit, built with Swift Package Manager for macOS 14+. `make app` produces AutoTime.app in ./build/. It lives in the menu bar and opens a Today window from there. - Sampling: every 5 seconds record the frontmost app (NSWorkspace), its window title (AXUIElement) and, for Safari, Chrome, Arc and Brave, the tab URL through AppleScript. Close the open block after 3 minutes without input (CGEventSource) and on sleep or screen lock. - Storage: GRDB over SQLite at ~/Library/Application Support/AutoTime/time.db. Consecutive samples with the same app, title and URL merge into one block (start, end, app, title, url, project). No screenshots, no keystrokes. - Projects: a name, colour, client and hourly rate. Rules in rules.yaml next to the database (bundle id, title or URL regex, domain; first match wins). A "Needs a project" list shows unmatched blocks, each with a button that turns the block into a rule. - Today window: a day timeline with blocks as coloured bars (hover shows title and URL), manual entries for offline work, and a start/stop timer that overrides the rules while it runs. - Reports: choose a date range, group by project or client, round entries up to 5, 15 or 30 minutes, mark entries billed or unbilled, and export CSV and JSON to ~/Documents/AutoTime/. - Single user, one Mac. No accounts, no telemetry, local-first; the app makes no network calls. - Out of scope: sync between Macs, a web app, iPhone Screen Time import, teams, invoicing, calendar and issue-tracker integrations. - README: granting Accessibility and Automation in System Settings (one prompt per browser), signing with a free Apple Development certificate so the permissions survive rebuilds, and that titles and URLs are stored unencrypted.
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 Timing.
Extend the time tracker in this folder. Requirements: - Read events from the macOS calendar through EventKit (ask for permission once) or from an .ics path in settings. - Show events on the timeline as a separate lane and let a rule assign them to a project by title or attendee domain. - When an event overlaps automatic blocks, let me pick which one wins; default to the event. - Update the README.
Add a weekly summary to the time tracker in this folder. Requirements: - A command `autotime summary --week` writes ~/Documents/AutoTime/week-YYYY-WW.md with hours per project and client, the five longest unbroken stretches and unassigned time. - Include totals after the rounding rule chosen for each client. - Run it automatically on Fridays at 17:00 through a LaunchAgent that the app installs from its menu. - Update the README.
Add an away prompt to the time tracker in this folder. Requirements: - When input resumes after 10 minutes or more of idle time, show a small window: discard, keep as a project, or mark as break. - Remember the choice per time of day (lunch hour, evenings) and suggest it first next time. - Store the decision on the block so reports can show it. - Update the README.
Freelancers who bill by the hour need the log to be complete without remembering to press a timer, and Timing has been refined for that on the Mac since 2011. The paid editions add the parts a side project skips: a second Mac that stays in sync, and reports a client will accept.
Estimate · Runs on your Mac with no hosting or API. The build is token usage on your agent plan; a paid Apple Developer account is not needed for personal use.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Professional | $11 | $9 | One Mac per person, automatic tracking, timers, manual entries, sync and cloud backup, basic reports, limited web app access, AI activity summaries. |
| Expert | $14 | $11 | Two Macs per person, full web app, customizable reports, filters, basic scripting, ClickUp and Linear task import. |
| Connect | $20 | $16 | Three Macs per user, team sharing and team times, two-way ClickUp, Linear and Clio sync, full scripting, Web API and Zapier, MCP access for AI agents. |
No free plan. The download comes with a 30-day trial that asks for no credit card.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $11 a month on the Professional plan per seat, $132 a year (checked 2026-10-19).
Sync between Macs, cloud backup and the web app; Import of iPhone and iPad Screen Time and call tracking; Two-way sync with ClickUp, Linear and Clio, and the GrandTotal invoicing link; Team sharing, MCP access for AI agents and the Web API; AI summaries of your timeline and the Entry-O-Matic that drafts time entries. If any of those matter to you, keep paying.
Yes: ActivityWatch (open source), Tockler (open source), Kimai (open source).