Case study · indie SaaS

How Henry Godnick Woke Up to an $80 Claude Bill

A solo Mac developer left a Claude script looping overnight and woke up to $80.17 he barely remembered spending. The number is small. The mechanism behind it is the same one that bankrupts AI budgets at scale.

Profile photo of Paul Irolla

By Paul Irolla

Founder · AI & developer tools · Tokenade

Ph.D. in AI · builds token-optimization tooling for AI coding agents

View author page
6 min read
Cite this page

A Tuesday morning and a number that did not add up

Most of the exploding-AI-bill stories I write about have a comma in them — five thousand engineers here, half a billion dollars there. This one has a decimal point: $80.17. That is the figure Henry Godnick, a solo developer who builds small Mac apps, stared at on his Anthropic dashboard one Tuesday morning in early April 2026. In his own words: "I stared at it for a solid ten seconds. I'm a solo dev. I build small Mac apps. I do not have $80 floating around for a single month of API calls that I barely remember making." Eighty dollars will not make the news. But I think it is a far more instructive story than the half-billion-dollar one, precisely because it is so ordinary. Nobody at a Fortune 500 reads about a $500M Claude bill and thinks that could be me. Every indie hacker who has ever left a script running reads Godnick's post and feels the floor drop a little.

The script he forgot to turn off

Here is the part that makes it relatable. Godnick was not doing anything reckless. He was iterating on a feature for one of his apps — running Claude back and forth to refine some logic, testing a few prompts. "The kind of session where you think 'this'll be like $3,'" he wrote. Then he left a loop running longer than he realized. A script calling Claude repeatedly to batch-process some test data. He forgot about it, went to bed, and — his phrase — "woke up $80 lighter. No alerts. No cap. No warning. Just a bill." That is the whole crime scene. A while loop, a forgotten terminal tab, and an API that, by default, will cheerfully spend whatever you let it. If this sounds familiar, it is the exact same shape as the $6,000 overnight Claude Code loop I covered earlier — only two orders of magnitude smaller, and therefore the version that actually happens to normal people every week.

Why a "this'll be like $3" session becomes $80

Godnick put his finger on the real problem better than most pricing pages do: "Token usage is the new RAM usage — except RAM was free after you bought the machine. It doesn't cost you per thought." That line is worth unpacking, because it is the entire mechanism. When you run a loop that calls an LLM, every iteration pays the full freight of its context window — the system prompt, the task framing, the test data, the accumulated history — re-sent on the wire every single time. The model is stateless. It does not remember the previous turn for free; you pay to remind it. A batch job that "just runs in the background" is, under the hood, re-transmitting the same prompt scaffolding thousands of times. This is exactly why agentic coding and unattended scripts are structurally more expensive than a chat session, and why the cost is invisible until the invoice lands. You cannot feel tokens the way you feel a slow build. As Godnick put it: "Every little test call costs something. Every loop iteration. Every 'let me just try this one more variation.'" A second indie hacker, posting on Indie Hackers in March 2026, mapped the same mechanism with numbers. Tracking his own Claude Code spend in real time, he found that "context window resets … every new session was eating 8-12k tokens just loading system prompts and file context. Over a day that was 40% of total spend." Same disease, different symptom: the fixed cost of re-establishing context, paid over and over.

What it actually cost — and the rate that drives it

Eighty dollars and seventeen cents, in one month, from a solo dev who "barely remembers" the calls. To see how that accrues, look at the meter. At current Anthropic API rates, Claude Sonnet 4.6 runs $3 per million input tokens and $15 per million output, and Opus 4.7 is $5 / $25. A batch script that re-sends, say, 30,000 tokens of prompt-plus-data on each of a few thousand iterations is moving tens of millions of input tokens before sunrise. On Sonnet, 25M input tokens is ≈ $75 on its own — and Godnick's bill lands right in that neighbourhood. The decimal point is small only because he caught it after one night, not one quarter. (For more on how these rates stack across models, see our LLM API token pricing breakdown and the token cost calculator.) The deeper point: the bill is dominated by input tokens that were never strictly necessary — the same scaffolding, re-sent. That is the lever. It is the same lever that turns up in nearly every AI coding token cost post-mortem I read.

What an efficiency layer would have changed (an estimate)

Let me be precise about what I am claiming, because this is an estimate, not a guarantee. In Godnick's batch job, the expensive part was the repeated, identical prompt prefix — system instructions and test-data framing re-sent on every iteration at full input price. That is the textbook case for prompt caching: mark the stable prefix once, and subsequent calls read it from cache at a steep discount instead of paying full input rate each turn. If the recurring prefix was, conservatively, 50–70% of the input tokens on each call — entirely plausible for a fixed-scaffold batch loop — then caching that prefix alone would cut a large slice of the input spend, which on a script like this is the bill. A conservative 40–60% input reduction would have turned an $80.17 surprise into something in the $32–$48 range, for the identical work. Not zero. But the difference between "huh" and "I stared at it for ten seconds." The Indie Hackers developer is the real-world corroboration here: with nothing more than live visibility plus behaviour changes (deliberate session boundaries, catching runaway sub-agents, using Sonnet for boilerplate instead of Opus for everything), he cut his Claude Code spend from ≈ $18/day to ≈ $8/day in five days — a 55% drop. The savings were not theoretical and they were not from "using AI less." They came from not paying twice for the same tokens. (If you want the full menu of those levers, our guide on reducing AI coding agent token usage lays them out.)

The lesson isn't "stop running scripts"

Godnick drew exactly the right conclusion: "Don't wait for a surprise. Keep an eye on your usage the same way you'd keep an eye on any resource that costs real money." He went and built himself a menu-bar gauge so he could see the meter while he worked — which is the correct instinct, and the same one that drives the entire genre of vibe coding horror stories: you cannot manage what you cannot see. Visibility is step one. Step two is making the meter run slower in the first place. The reason a batch loop or an agent burns so much is that it re-sends tokens it has already paid for — the stable prefix, the unchanged context, the same files. Tokenade sits in front of that traffic and removes the duplicate weight before it hits the API: caching the stable prefix, compressing redundant context, trimming the scaffolding that gets re-sent every turn. On a fixed-prefix batch job like Godnick's, that is precisely the input that drives the bill — which is why our honest estimate above lands on a 40–60% input cut for this shape of workload. We do not promise it for every workload; we promise to attack the exact lever that produced the surprise. Eighty dollars is a cheap lesson. The same mechanism, left unwatched at team scale, is how AI budgets evaporate by April. Watch the meter — and make it run slower. Start free with Tokenade — free up to 10M tokens, no card. See your own savings before you pay anything.

Ranked #1 on the Token-Harness Optimizer Leaderboard.

Tokenade ranks #1 in the Token-Harness Optimizer Leaderboard — an end-to-end benchmark of agent token optimizers measured on real coding sessions. Set it up once, it works on every prompt. Works with Claude Code, Cursor, Codex, Copilot & more.

Profiles are sourced from public statements, podcast interviews, Twitter/X posts, and Indie Hackers / Reddit threads cited inline. No private claims; if you spot a factual error, contact [email protected].