# Stress and agents? Garmin data, agent history and transcripts

> Source: <https://morkeeth.substack.com/p/stress-and-agents-garmin-data-agent>
> Published: 2026-10-08 12:12:53+00:00

Antrophic GTM hack over in Paris, Station F 9th of July, wooden tables and sleek venue and I spent the day shipping GTM products with 2 friends. I was running the old prompt machine from 8 in the morning to 6 evening time. I was fixing the last description on the submission and giving the demo one last end-to-end view. Boom, It worked. It made sense, at least I would use it. My pulse was high, the Garmin stress screen showed 80, and I was tunnel visioned, tired and shaky. That’s the kind of day I expected the watch to notice, so I wanted to check the correlation. How stressful is agentic engineering, and can we see it in the health data?

*Visuals of the data pairing, pulse, sleep over agent history from transcripts.*

## it began as a typo straight in the terminal

This is what I wrote to my agent the 7th of October:

would we be able to make a meme about putting Gartner data int omy agentic coding thing?

I meant Garmin. The agent came back with three ideas for a Gartner hype cycle. I tried again:

fun project, garming, health data and agentic enginereing

The meme it pitched was a marathon summary for sitting at a desk. Four hours, fourteen terminals, peak stress 92. That 92 was invented. Outside Station F, I was trying to parallelise three or four projects, fixing and wrapping them at once. I kept feeling overwhelmed, checking my Garmin, and seeing calm. Resting. Gathering up health data and agent data felt beautiful to me: heartbeats, stress levels, token output, the hours I was locked in. So we went to get the real one.

I wear my watch for runs and tennis. To keep track of it, and then you just get used to it. For running, for health and for my love of data.

I also think a lot about [the study where people were told they had slept badly](https://www.smithsonianmag.com/smart-news/you-can-get-placebo-sleep-180949410). They did worse on a thinking test, whatever their night had really been. And I get told that almost every day.

## getting the data out

I had never looked at a Garmin export. I remember the last time I discussed Strava and wondered about the API for my own data. Gave a Python library a shot that logs in as you. Garmin answered with an error twice and that was the end of that.

surely there must be services that can fetch garmin data? to my personal stuff at least?

The answer was already on my phone. The Garmin app writes to Apple Health, and Apple Health exports everything it has as one file, in one click. Reconnecting the watch I had disconnected from Garmin was another matter: four tries and twelve hours. That zip is 385 MB. It holds 144,902 heart rate readings for 2026, one every two minutes, great success.

The other half was easier than it sounds. Coding agents keep a transcript of every session on disk, and every message in it has a timestamp and a token count. The dashboard showed about 43 billion tokens processed across these records when input and cached rereads are included. The 168 million figure counts output alone. I had three sources: Claude Code from 16 July (older transcripts are gone), Codex from 8 March, and Cursor from its usage export.

Then you line the two up on the clock. That is the whole method easy breazy.

## what did the watch say

Average heart rate, 16 July to 5 October 2026, awake readings under 100 beats per minute:

**Asleep: 50.9 (495 hours)**

**Awake, no agents: 66.2 (279 hours)**

**Agents writing: 64.6 (639 hours)**

“Agents writing” means an hour in which the three tools wrote 5,000 tokens or more between them. “No agents” means an hour in which they wrote none.

*Average heart rate asleep, awake with no agents, and with agents writing.*

So my average heart rate during hours with agents writing was about 1.6 bpm lower than in hours with no agent output. Coding makes you drop your heart rate by 1 bpm? Such a nonsense headline. Beautifully simple, and it still cannot answer me why or how I felt. On heart rate alone, Garmin files it under rest.

The five heaviest sessions tell the same story. Each wrote between 2.4 and 4.6 million tokens. My average heart rate during their active hours was between 62 and 69.

My favourite day is Saturday 15 August. The agents wrote 6.4 million tokens that day. Around 17:30 my heart rate goes to 156. That is a 26 minute run, logged by the watch at 17:39. Saturday’s are for the machines.

*Saturday 15 August 2026: heart rate above, tokens per five minutes below.*

The agents did the work. I went for a run.

## the three numbers i got wrong first

The first version of the film said 91 million tokens. That count missed files. Claude Code alone is 102 million once every transcript is read.

It also exposed a bug in a token counter I built last week. A message is written to the transcript several times while it streams. The first copy carries a placeholder count, 5 in the case I looked at. The last copy carries the real one, 1,220. My counter read the first copy. It reported 73.5 million tokens where the files hold about 101 million.

The second one I liked. The first cut said I slept an hour less after heavy days. That used a count of my own turns, and a large share of those records turned out to be machine-written, not typed by me. Counted by tokens across all three tools, the lightest quarter of days is followed by 7.47 hours of sleep and the heaviest by 7.28. Eleven minutes, 68 nights, correlation -0.05.

It was a better story. It is not in the film.

The third one is in the film, and I found it while writing this. The film opens on 168 million tokens and then compares 81 days of heart rate. Those are two different windows. The 168 million output tokens cover everything on record in 2026: Cursor from January, Codex from March, Claude Code from 16 July. Inside the 81 days it is 162 million output tokens (161,588,126). The heart rate numbers already used only the 81 days, so they stand.

## what this does not show

It is one person. Heart rate is a blunt signal, and a flat pulse can hide other things. Heart rate variability is the more sensitive measure and Apple Health does not carry Garmin’s. A “no agents” hour can still be an hour of other screen work. The full Garmin export confirms that on 9 July, outside the 81-day overlap, nine measured minutes between 17:00 and 18:00 scored at least 80; awake stress that day averaged 59 and peaked at 99. Nothing here measures attention or mood.

I did not invent the idea of putting sensors on developers. [A 2025 study in Brain Sciences](https://pmc.ncbi.nlm.nih.gov/articles/PMC12191316/) gave 58 design students with no programming experience a two-day coding task, and the group with an AI code generator showed reduced parasympathetic activity during it. [A doctoral project at ICSE 2025](https://conf.researchr.org/details/icse-2025/icse-2025-doctoral-symposium/20/Interactions-with-Generative-AI-Wearables-to-Measure-Developer-Experience-and-Produc), by Charlotte Brandebusemeyer at the Hasso Plattner Institute, proposes wearables to measure developers’ cognitive load with generative AI tools in daily work. I have read the abstracts, not the papers. Mine is the other kind of data: no lab, one person, 81 ordinary days and a token count for every hour of them.

My resting heart rate also went down, from 47.7 (1 April to 15 July) to 45.5 (16 July on). I would love to credit the agents. I keep an average of 2 runs, 3 gym sessions, tennis, and then runs with my agents. The first three are the likelier cause.

The Apple Health file holds more than heart rate. The full Garmin export has arrived. Before opening the rest, I wrote down six predictions: steps, bedtime, deep sleep, heart rate variability, stress and morning energy, each against tokens per day, each with a pass line. I never approved and froze that document, so these are exploratory checks. None reached the 0.30 line: steps -0.13, bedtime +0.11, deep sleep +0.07, overnight HRV +0.06, daytime stress -0.12, and morning Body Battery +0.01. These are rank correlations over 68 to 82 paired days. The watch caught a day I remember. It did not find a simple pattern in how much the agents wrote.

I went one level closer. I lined up Garmin’s minute-by-minute stress readings with the agent output for each hour. Across 1,114 daytime hours with enough watch readings, stress averaged 36.0 when agents wrote at least 5,000 tokens, and 38.1 when they wrote none. The hourly rank correlation was -0.03. I expected the stress line to climb with the token bars. It didn’t. Zero logged tokens could still be me working on something else, and the watch measures stress when I am inactive. The numbers cannot tell me how that hour felt.

## the prompt

No tool to install. Export your Apple Health data from the Health app (your profile picture, then Export All Health Data), put the zip next to your agent, and give it this:

**Unzip my Apple Health export. From export.xml take every heart rate record and every sleep record for this year. Then read my coding agent transcripts on this machine and sum the output tokens per hour, in local time. Count each message once, at the value in its last record, because the first record is a placeholder.**

**Join the two on the hour. Give me my average heart rate asleep, awake in hours with no tokens, and awake in hours with 5,000 tokens or more. Leave out readings of 100 and over. Then give me sleep that night against tokens that day, with the correlation and the number of nights.**

**Show the hours behind every average. Tell me where the data starts for each tool, and use only the window where all of them overlap.**

That last paragraph is the one I needed and did not have.

*How this was made. A coding agent ran the analysis, built the film and wrote the first draft of these sentences. The quoted lines are mine, typos included. Four claims died on the way: the invented stress peak of 92, the 91 million, the hour of lost sleep, and 168 million as the number for the 81 days.*
