AIwave
Three Claude Code Billing Traps (And How to Avoid Each One)

Three Claude Code Billing Traps (And How to Avoid Each One)

Three billing surprises are sitting inside your Claude Code setup right now. The first is structural — Opus models now require a separate purchase even if you’re on the Pro plan. The second is a ghost in your git history — a specific filename in a commit message silently routes usage to extra billing instead of your plan quota. The third is the slow drift of API costs against a competitive landscape that moved fast. None of these are obvious, none are well-publicized, and at least one has cost users real money before they knew what hit them.

Here’s every landmine, exactly how each one works, and what to do about it.

What you need

A Claude Code install tied to a Pro plan account, access to claude.ai/settings/usage, and a terminal. No extra tooling required — the audit steps here are plain bash.


Landmine 1: Opus is now a paywall inside your paywall

The Anthropic support documentation for Claude Code model configuration now includes this language: “When using a Pro plan with Claude Code, you will only be able to use Opus models after enabling and purchasing extra usage.”

That sentence is doing a lot of work quietly. When Pro launched, the reasonable assumption was that your $20/month subscription bought you access to the flagship model tier. The Opus models still appear in the Claude Code model selector — they’re visible, selectable-looking, present in the list — but attempting to use them without the extra-usage add-on either fails or routes you into additional charges depending on your account state.

The announcement didn’t arrive as a blog post or a changelog entry. It arrived as an update to a support article. The community thread surfaced well over 100 comments from users who discovered the restriction the hard way, mid-session.

What to do: Navigate to your account settings and check whether extra usage is enabled. If you’ve been using Claude Code’s default model selection without pinning a specific model, audit whether any sessions recently escalated to Opus automatically. The usage dashboard at claude.ai/settings/usage will show a line item for extra usage charges if this happened.

If you don’t actively need Opus for a given task, pin a model explicitly in your Claude Code config (more on that in the protection checklist below).


Landmine 2: The HERMES.md git history trigger

This one is stranger and more damaging in practice. A user isolated a billing bug where a git commit message containing the uppercase string HERMES.md causes Claude Code to route that session’s usage to extra-usage billing rather than the plan quota. The lowercase version — hermes.md — does not trigger the behavior.

The user who discovered this lost around $200 and spent hours narrowing down the trigger before Anthropic support acknowledged the bug. A refund was declined.

Before you open any project in Claude Code, run this check:

git log --oneline | grep 'HERMES\.md'

If the output is empty, you’re clean. If you see matches, those commits may be silently flagging sessions for extra-usage billing. You can also broaden the search for any variant:

git log --oneline | grep -i 'hermes'

The minimal repro: create a commit with the message "update HERMES.md docs" and then open Claude Code in that repo. The billing path diverges from a commit with the message "update hermes.md docs". Same file, different casing in the commit message, different billing outcome.

This is a bug, not a feature. But until it’s patched, it’s your problem to defend against. If you have a long-running project with substantial git history, run the audit before your next Claude Code session.


Landmine 3: API cost creep in a competitive market

The third issue is less dramatic and more structural. API costs for Claude models have drawn increasing community friction as alternatives have emerged offering comparable benchmark performance at substantially lower price points. This isn’t a reason to abandon Claude — the tooling, the context window behavior, and the agentic capabilities are genuinely differentiated. But it does make model selection a real decision rather than a default.

The core frustration: if you’re building on Claude Code and letting it choose models freely, costs scale in ways that are hard to predict. Long-context tasks, complex reasoning chains, and iterative debugging loops all consume tokens at rates that add up fast at Opus-tier pricing.


Cost math: which tier for which task

Here’s a rough framework for thinking about model selection in Claude Code sessions:

Task typeRecommended tierWhy
Quick edits, single-file changesDefault (Sonnet-tier)Token count is low; quality difference is marginal
Multi-file refactorsDefault or mid-tierContext matters more than raw reasoning; Sonnet handles it well
Complex architectural decisionsOpus (extra-usage)Long-context coherence and reasoning quality justify the cost
Debugging obscure multi-system failuresOpus (extra-usage)The cost of a wrong answer is higher than the model premium
Documentation generationDefaultHigh volume, low stakes; Haiku-tier is often sufficient

The key discipline: don’t let Claude Code escalate to Opus silently. Pin the model for the session type you’re running. The extra-usage cost only makes sense when you’ve decided the task demands it — not when it happens automatically in the background.


Protection checklist

Run through this before starting any new project, and weekly for active ones:

1. Audit the HERMES.md trigger in your git history

git log --oneline | grep 'HERMES\.md'

Clean output means you’re safe. Any matches warrant caution until the bug is patched.

2. Check your usage dashboard for unexpected extra-usage charges

Go to claude.ai/settings/usage. Look specifically for extra-usage line items. If you see them and can’t account for them, cross-reference the dates against your Claude Code session history.

3. Pin a model explicitly in your Claude Code config

Avoid implicit model escalation by being explicit in your configuration:

{
  "model": "<your_preferred_model_id>"
}

Check Anthropic’s docs for the canonical model ID and replace with your intended tier. This prevents Claude Code from silently selecting Opus when it judges a task to be complex — which it does more often than you’d expect.

4. Understand the Opus extra-usage requirement before enabling it

The Anthropic support documentation for model configuration covers the Pro-plan Opus restriction explicitly. Read it before enabling extra usage — you want the decision to be intentional, not reactive after a large bill.

A set of four interlocking shield shapes arranged as a protection grid, rendered in cool blues and greens with a subtle mechanical texture, no labels

Next steps

The three landmines here — the Opus paywall-within-a-paywall, the HERMES.md git history trigger, and API cost drift — aren’t individually catastrophic, but they compound. A user who doesn’t know about any of them, running Claude Code against a repo with a flagged commit, on a task that escalates to Opus, is looking at charges well beyond what the Pro subscription implies. The audit script and the model-pinning config are both quick wins. The usage dashboard check is a habit worth building. None of this requires abandoning Claude Code — it requires treating billing as an explicit part of your setup rather than an afterthought.


← Back to blog

Get new posts in your inbox

New posts plus the occasional curated note on what's working with Claude and the agent stack.

No spam. Unsubscribe anytime.

Comments