WakaTime now has a Claude Code plugin. That was the missing piece for a lot of developers who had moved most of their work to AI-assisted sessions — the heartbeat-based tracking that works inside VS Code didn't fire when you were prompting Claude Code instead of typing directly into an editor.
Now it does. wakatime/claude-code-wakatime is an open-source plugin that logs how much time you spend in Claude Code sessions, alongside your existing coding activity. It's a real improvement.
But closing that gap exposed the next one.
What Heartbeat Tracking Gets Right
WakaTime's approach — detecting keystrokes and file activity, sending heartbeats to a server that calculates active time — works well for editor time. The data is detailed: time per project, per file, per language, per branch. If you want to know you spent a few hours on the API server in TypeScript this week, WakaTime can tell you that, and now it can include your Claude Code sessions in that count too.
If coding time is what you need to measure — specifically editor and AI-assistant time — plugin-based tracking is the right tool for it.
What Heartbeat Tracking Misses
The Claude Code plugin closes the session-logging gap. It doesn't close the context gap.
Heartbeat-based tracking tells you how many hours you were active in your tools. It cannot tell you:
- Whether those focused hours happened before or after two hours of Slack
- What your computer day looked like around the time you were coding
- How your GitHub output compares to your tracked input hours
- Whether your best coding sessions tend to follow good sleep or short sleep
- What your resting heart rate was during your highest-output week
These are not hypothetical concerns. They're the questions that come up when you look at a month of coding time data and try to understand it. "I coded a lot this week. Why does last week feel more productive?"
The heartbeat data can't answer that. It only tells you what the sessions were, not what surrounded them.
System-Level Tracking: The Second Layer
A system-level tracker sits at the OS layer rather than inside individual applications. Instead of receiving heartbeats from each tool with a plugin, it watches focus events: which application is active, what window has focus, how long that window holds it.
On macOS, this is an Accessibility API call. On Windows, a Win32 foreground window hook. Neither requires plugins in each application. VS Code, Claude Code, Chrome, Terminal, Slack, Figma, Zoom — every app you use gets logged automatically with no configuration.
xeve runs a system tracker alongside a VS Code extension and a Claude Code heartbeat hook. The VS Code extension sends per-project, per-language heartbeat data. The Claude Code hook fires on session events. Behind both of those runs a system-level process that sees everything else: the browser tab open while waiting for a build, the Slack thread that fragmented the afternoon, the terminal session without a dedicated plugin.
Two layers that belong together:
Layer 1 — Heartbeat (inside your tools): You spent three hours in active coding sessions today. Two hours on the API service, one hour prompting Claude Code on the frontend.
Layer 2 — System (your whole day): Those three hours happened inside a nine-hour computer day that also included an hour and a half in Slack, an hour in Zoom, and ninety minutes scattered across browser research and documentation.
Without layer 2, you only know the first sentence. With it, you know the full day.
The Third Layer: Connecting Coding to Everything Else
The second gap in editor-only tracking is external data. How you feel on a given day affects how you work, and that relationship isn't visible inside any single tracker.
xeve connects three external streams to close it:
GitHub activity. Commits, pull requests, and code reviews sync automatically. Overlaying GitHub output onto tracked coding time gives you an input/output ratio: on a day with four tracked hours of coding, how much actually shipped? Over weeks, that ratio reveals patterns that no single session makes obvious.
Spotify listening history. Logged per track, timestamped. The correlation between what you're listening to and when your sessions run is more useful than it sounds — not for anyone else's data, but for yours. Most people have never looked, and the patterns are individual enough that no general rule applies.
Heart rate via Bluetooth. The macOS and iOS apps support standard BLE heart rate monitors — Polar chest straps, Whoop, any standard HRM. Resting heart rate alongside coding sessions lets you ask questions screen time data can't answer alone. The correlation engine computes 19 metric pairs automatically, including sleep against coding output and heart rate against focus time.
None of these replace the heartbeat data. They add context that heartbeat data cannot produce.
Setting Up the Full Stack
The install order that works:
1. System tracker. Download xeve for Mac or Windows. It starts in your menu bar or system tray and begins logging app sessions immediately. No configuration needed.
2. VS Code extension. Install from the xeve dashboard under Settings → Integrations. Adds per-project, per-language breakdowns to your system-level data.
3. Claude Code hook. A shell script, also in Settings → Integrations. It fires on session events rather than keystrokes — the right model for prompting an AI assistant rather than typing into an editor.
4. GitHub sync. Connect from Settings → Integrations. Commits and pull requests sync on a daily schedule.
5. Optional: Spotify and heart rate. Spotify for listening history. A BLE heart rate monitor paired to the macOS or iOS app for health data.
After two weeks, you have enough history that patterns start to surface. The initial observation for most people is that the heartbeat layer and the system layer tell different stories about the same day. The coding hours are there. The surrounding context looks different.
Both are worth seeing. The interesting questions are in the gap between them.
xeve is a personal analytics tracker for macOS and Windows. The VS Code extension and Claude Code hook are free during the current early access period.