TL;DR: Vibe coding (riffing with an LLM at high speed) feels productive, but it runs your brain at a sprint pace for marathon hours. The dopamine-fast feedback loop drains glucose, spikes cortisol, and wrecks your sleep. Here's the physiology, plus concrete habits and a few scripts to slow the loop down.
The war story
Last month I shipped a side project in a weekend. Fourteen hours on Saturday, twelve on Sunday, mostly prompting Claude and accepting diffs. Monday morning I couldn't remember variable names in my day job codebase. My resting heart rate was up 8 bpm for a week. I wasn't "tired" — I was cooked.
I thought I was being lazy. I wasn't. I was experiencing the cost of sustained high-velocity cognitive flow with almost zero rest cycles.
Why vibe coding hits different
Traditional coding has natural pauses: you read docs, you think, you type, you debug. Those gaps are micro-recovery windows for your prefrontal cortex.
Vibe coding collapses all of that:
- Prompt → diff → accept/reject → prompt again. Cycle time: 10–30 seconds.
- Every accepted diff = small dopamine hit (variable reward schedule, like a slot machine).
- Every rejected diff = micro-frustration + immediate retry.
- No natural "I need to go read the docs" break.
Your brain runs on ATP, and the prefrontal cortex is expensive. Sustained decision-making depletes glucose and increases glutamate buildup in the anterior cingulate cortex — which is literally what "mental fatigue" is, per Wiehler et al., 2022 (Current Biology).
Translation: fast decisions × high volume = neurotoxic byproducts faster than your brain can clear them.
The symptoms, ranked
From my own logs and conversations with other devs doing a lot of AI-pair work:
- Eye strain + tension headaches (you stopped blinking, you stopped moving)
- Decision fatigue leaking into non-coding life ("what do you want for dinner?" → paralysis)
- Poor sleep despite exhaustion — elevated cortisol from extended focus
- Reduced code comprehension when reading non-AI-generated code
- "Shallow mastery" — you shipped it but couldn't re-derive it
What to actually do
1. Enforce a hard cycle timer
The pomodoro is fine but too long for vibe coding. I use 25-on / 5-off minimum, but for heavy LLM sessions I drop to 20/7. Here's a dead-simple terminal timer:
import time, subprocess
def notify(msg):
# macOS; use notify-send on Linux
subprocess.run(["osascript", "-e", f'display notification "{msg}"'])
while True:
notify("Code block: 20 min")
time.sleep(20 * 60)
notify("BREAK. Stand up. Look at something 20ft away.")
time.sleep(7 * 60)
The break rule: leave the chair. If you stay seated you will "just finish this one thing" and the break is gone.
2. The 20-20-20-20 rule (I added one)
Standard: every 20 minutes, look at something 20 feet away for 20 seconds.
My addition: 20 slow breaths before starting a new prompt chain. This resets your sympathetic nervous system from "slot machine" mode.
3. Separate "generate" and "understand" sessions
The mistake I made: accepting code and immediately prompting for the next thing. Instead, batch it:
Session A (30 min): Vibe, generate, accept diffs fast.
Session B (30 min): Read every line. Rename things. Add comments.
No AI. No generation.
Session B uses a different cognitive mode (analytic vs. generative) and actually feels restful compared to pure vibe mode. It also catches the bugs you'd ship otherwise.
4. Pre-commit friction
Add a pre-commit hook that makes you summarize what you did. This forces consolidation into long-term memory:
#!/bin/sh
# .git/hooks/prepare-commit-msg
echo "# What did this change actually do? (3 bullets)" >> "$1"
echo "# Why? (1 sentence)" >> "$1"
If you can't fill it out, you didn't understand the code. Back to Session B.
5. Hydrate and fuel for the actual workload
Your brain burns ~20% of your resting calories. When it's sprinting, more. Dehydration of even 2% measurably reduces cognitive performance (Adan, 2012).
My desk rules during vibe sessions:
- 500ml water within reach, refill every break
- Protein + fat snack every 2 hours (nuts, cheese) — not sugar
- Caffeine cutoff 8 hours before sleep (not 6, not 4 — 8)
6. Body > mind tricks
The cheapest stress dump I've found: box breathing between prompts.
4s inhale → 4s hold → 4s exhale → 4s hold
Repeat 4 times.
Sounds stupid. Works. Navy SEALs use it, and it directly lowers cortisol via vagal activation. Do it while the LLM is streaming its response — free time.
7. Log your sessions
This one surprised me. I started logging vibe sessions:
date: 2024-11-08
duration: 3h20m
prompts: ~85
subjective_fatigue (1-10): 8
quality_of_output (1-10): 5
sleep_that_night: 6h, fragmented
After two weeks the pattern was obvious: anything over 2.5 hours of continuous vibe coding gave me negative ROI. Quality dropped, fatigue spiked, sleep tanked. I now cap it.
The takeaway
Vibe coding isn't free velocity. You're borrowing focus from tomorrow to ship today. That's fine occasionally — it's a disaster as a default.
Treat high-speed AI coding sessions like sprinting, not jogging: short, intense, with real recovery between. Your 40-year-old self will thank you, and honestly, your code next Tuesday will too.
Top comments (0)