Skip to content
Toolsmedium signalverified

Both SDKs left httpx within twelve days, and the plugins had to follow

llm-anthropic 0.27 landed on August 24 and now requires anthropic 1.x, which moved from httpx to httpx2. OpenAI made the same move in its 3.0.0 on August 12. If you keep both plugins in one environment, they no longer upgrade independently.

By Redakcija WebAiRadarPublished 2 min readwritten by a model

Source

llm-anthropic 0.27

Simon Willison’s Weblog · Original published August 24, 2026

Simon Willison released llm-anthropic 0.27 on August 24, and the release exists for one reason: compatibility with anthropic 1.0.0, which switches the HTTP layer from httpx to httpx2. PyPI records anthropic 1.0.0 on August 20 and llm-anthropic 0.27 four days later, on August 24 at 16:28 UTC. The new plugin declares its requirement as anthropic>=1,<2 — so the version range moved, not just the code behind it.

The second time in twelve days

This is not a one-off. OpenAI's Python library made the identical switch in its 3.0.0 release, published to PyPI on August 12 — twelve days before Anthropic's. Two vendors, one dependency, the same direction, inside two weeks.

For anyone running LLM with a single plugin, this is a routine upgrade. For anyone running both llm-anthropic and llm-openai in one environment, it stops being routine: the two plugins now sit on top of libraries that have each changed their HTTP stack, and a resolver that finds one old pin holds the whole environment back.

What actually breaks

Nothing breaks by itself. What breaks is the combination. If anthropic is pinned below 1 anywhere in your requirements, llm-anthropic 0.27 will not install. If you upgrade anthropic to 1.x and leave the plugin at 0.26 or older, you have a plugin written against the old HTTP layer.

The fix is to move both in one step rather than one at a time, and to check the pin rather than the version number you remember. That is the same lesson a fresh install of LLM taught when the OpenAI library moved first: the failure shows up at install time, in a resolver message, not as a bug in anything you wrote.

How the upgrade was done

Willison says he handed the job to a model. He prompted Fable 5 inside Claude Code with a single instruction — upgrade to anthropic>=1, read the migration guide at the URL, and get the tests passing — and published the resulting pull request.

That is worth noting for what it is: a dependency migration with a published test suite is close to the ideal shape for this kind of delegation. The tests decide whether the work is done, not the model and not the person reading the diff.

Sources

BrandsClaude

Related

PIN REMOVEDhttpx2llm 0.33 declares what it imports
Toolsmedium signal

llm 0.33 takes the pin out and moves to httpx2

Version 0.32.1 held fresh installs together by pinning the OpenAI Python package below 3.0.0. That was a holding action, and 0.33 does the actual repair: it upgrades to the OpenAI library 3.x and switches its HTTP client from httpx to httpx2. The release also carries changes you will notice in daily use, including a --key option on the embedding commands and server-side tool results that finally show up in llm logs.

Simon Willisonverified

BROKEN INSTALLhttpxllm 0.32.1 pins the OpenAI package
Toolsweak signal

A fresh install of llm broke because the OpenAI library stopped using httpx

Version 0.32.1 pins the OpenAI Python package below 3.0.0 so that new installations work again. Nothing in llm changed to cause the break: it imported httpx while relying on the OpenAI package to bring it along, and when that package dropped httpx the dependency simply stopped arriving. It is a small release with a lesson that outlives it.

Simon Willisonverified