Claude Opus 5 Lands, and I Pointed It at This Repo
Anthropic shipped Claude Opus 5 on July 24, and the pitch is unusually easy to summarize: close to the frontier intelligence of their top model, Fable 5, at roughly half the price. Pricing sits at $5 per million input tokens and $25 per million output, identical to Opus 4.8, which makes it a straight upgrade rather than a new tier to budget for. It is now the default on Claude Max and the strongest model available on Pro.
Introducing Claude Opus 5
Anthropic's everyday model for developers and knowledge work, at half the price of Fable 5.
Two beta API features shipped alongside it, and both are the kind of thing you only appreciate after you have been bitten. The first is mid-conversation tool changes: you can now add or remove tools partway through a conversation without invalidating the prompt cache. Previously the tool list sat at the very front of the prompt prefix, so editing it re-billed the entire conversation from scratch. The second is automatic fallbacks, where a request flagged by a safety classifier routes to another model instead of simply failing. If you have ever had a benign security question dead-end a production request, you know why that matters.
There is also a Fast mode that runs at roughly 2.5x the default output speed for twice the base price, and an effort parameter (low through max) that trades depth against latency and token spend. The interesting discovery on this repo was that the lower settings are better than the naming suggests. Reflexively reaching for the highest setting is mostly a way to spend tokens.
The thing it turned out to be good at was not writing code. It was reading a codebase and telling me what was actually wrong with it.
I pointed it at this portfolio, and the findings were not the ones I expected. It did not rewrite my components. It noticed that my /finds collection was still full of placeholder posts that had shipped to production, that my sitemap.ts stamped lastModified: new Date() on every static page (which trains crawlers to distrust the whole file), and that the deliberate typescript@^6 pin in package.json is the kind of thing a routine dependency bump would silently break, because npx tsc --noEmit keeps passing while next build's type-check quietly stops working. None of that is code generation. All of it is the sort of thing you stop seeing in your own repo after the fortieth commit.