Blog · Orma · · 5 min read

How to Set Up Automatic Time Tracking on Mac

Automatic time tracking on Mac takes under five minutes to set up. Here is exactly what to install, what permissions to grant, and what you will see in the first week.

Automatic time tracking on Mac means installing a menu bar app that logs every app switch in the background, with no timers to manage and no manual input required. The setup takes under five minutes. After that, you stop thinking about it and the data accumulates on its own.

Here is what to do, step by step.

Install the Tracker

Download the xeve macOS app from xeve.io/download/mac. It is a standard .dmg — drag to Applications, launch it, and it appears in your menu bar immediately.

On first launch, it will ask you to sign in. Google OAuth or email, whichever you prefer. Authentication uses standard OAuth; xeve never sees your Google password.

After signing in, the tracker starts running. You will see a small icon in your menu bar. That is it. Tracking is now active.

Grant Accessibility Access

macOS requires an explicit permission to allow any app to observe which application has focus. When you first launch xeve, it will prompt you to grant Accessibility access under System Settings → Privacy & Security → Accessibility.

This permission is what makes automatic tracking possible. Without it, the tracker cannot see app switches — it can only see itself. With it, every time you switch from VS Code to Slack to a browser to a terminal, the tracker captures that transition and its duration.

The permission feels sensitive because the name "Accessibility" covers a broad category of system APIs. In practice, xeve uses it only to read the frontmost application and window title, nothing else. It does not read window contents, keystrokes, or anything inside the apps you use.

Once you grant the permission, the tracker is fully operational with no additional configuration.

What Gets Logged

From the moment tracking starts, every app switch becomes a data point: which app, which window title, how long. Idle time — keyboard and mouse inactivity — gets stripped out automatically, so the tracked time reflects when you were actually at the computer, not just when your screen was on.

Sessions get assigned to one of nine categories:

The categorization is automatic based on app bundle ID and name. You can add custom rules in Settings, but the defaults cover most developer workflows without any adjustment.

Data syncs to the dashboard every 60 seconds. By the time you have done a few app switches and checked the dashboard, those sessions are already there.

Add Coding-Specific Tracking

The menu bar app tells you how much time you spent in VS Code. It does not tell you which project, which file, or whether you were actively typing or reading. That detail comes from the VS Code extension.

Install it from the VS Code marketplace by searching for "xeve." Once installed, it sends heartbeats as you work — per file, per project, per language — and that data feeds into the Coding page in the dashboard. You get session-level breakdowns across workspaces without any manual logging.

If you use Claude Code, install the shell hook from the xeve dashboard under Settings → Integrations. It is a single curl command that installs a heartbeat hook for Claude Code sessions. After that, time spent in agentic coding sessions shows up as its own tracked activity rather than disappearing into Terminal time.

Connect GitHub

The dashboard can pull in your GitHub activity — commits, pull requests, and code reviews — synced daily. Connect it under Settings → Integrations → GitHub.

This adds a second signal alongside the screen time data. You can see on any given day how much coding time you logged alongside how much output (commits, reviews) that time produced. Some days those two numbers move together. Some days they diverge. The divergence is usually where the interesting patterns are.

What to Look At After the First Week

The first day of data is mostly noise — you are still getting used to having tracking on, your app usage may be atypical. By the end of a week, patterns start to appear that are harder to see in any single day.

A few things worth checking:

The 24-hour chart. The overview page shows a breakdown of your active hours by time of day. This often reveals something that feels obvious in retrospect: there is usually a two- or three-hour window in the morning or early afternoon where your productive activity is noticeably higher than the rest of the day. Protecting that window matters more than adding hours elsewhere.

Category percentages. The split between Development, Communication, and Browsing over a full week is often different from what you would estimate. Research from WakaTime and Microsoft's engineering productivity team consistently shows developers spend 2-4 hours in active coding out of an 8-hour day, with the rest distributed across communication, documentation, and context switching. Your numbers will be your numbers — but having them is the starting point for doing anything about them.

Idle-stripped vs. calendar time. The tracker shows active time, not time your screen was on. The difference between "I had VS Code open for 6 hours" and "I was actively in VS Code for 3.5 hours" is a more accurate picture of where your focus actually went.

Add Health Data (Optional)

The iOS companion app connects HealthKit — sleep, heart rate, steps — and the xeve correlation engine computes relationships between those health signals and your screen time data. If you are curious whether sleep duration correlates with how many hours you actually code the next day, the engine computes that automatically across the last 90 days of data once you have enough history.

The iOS app is available on the App Store. Once you sign in with the same account, HealthKit data starts flowing alongside the Mac tracking data.

After Setup

At this point the tracking is automatic. The only thing left to do is let it run. Check the dashboard at the end of each week, look at where the hours went, and notice what surprises you.

Most people find at least one thing they did not expect in the first month of data. That surprise is usually the useful part — the thing your memory was smoothing over, made visible by the record.