AIARTICLE

llm-anthropic 0.27 arrives aligned with Anthropic's new SDK 1.0

Simon Willison's LLM tool plugin updates to the anthropic v1.0.0 library and keeps access to Claude straight from the terminal or Python scripts.

llm-anthropic 0.27 arrives aligned with Anthropic's new SDK 1.0
Image: Alan Andrade

If you use llm, Simon Willison's command-line tool for talking to language models, it's worth noting the update to the Anthropic plugin: llm-anthropic 0.27 is out. The main change isn't a new Claude feature, but compatibility: the plugin now works with the recently released Python library anthropic v1.0.0.

What llm is (and why it matters)

For those who don't know it yet, llm is a CLI (and Python library) that gives access to models from multiple providers through a single interface. You install the core and add plugins per provider. llm-anthropic is precisely the plugin that brings the Claude series into that interface.

The flow is simple and runs entirely in the terminal:

bash
# install llm and the Anthropic plugin
pip install llm
llm install llm-anthropic

# save the API key
llm keys set anthropic

# send a prompt to a Claude model
llm -m claude-sonnet-4 "explique o que muda entre httpx e httpx2"

And you can also use it inside Python scripts, which is the path when you want to take this beyond the experiment stage:

python
import llm

model = llm.get_model("claude-sonnet-4")
response = model.prompt("resuma este texto em 3 bullets")
print(response.text())

It's this dual use, CLI for experimenting and library for embedding in code, that makes llm a good entry point for those who want to test AI without tying themselves to a specific provider's SDK.

What 0.27 actually changes

Being honest about the scope: 0.27 is a maintenance release. In Willison's own words, it "mainly provides compatibility with the recently released anthropic Python library v1.0.0".

The technical detail behind this is the swap of the HTTP dependency. Anthropic's official SDK migrated from httpx to httpx2 in its 1.0.0 version. It's not an isolated move: according to Willison, OpenAI made the same change two weeks earlier, in the v3.0.0 release of their SDK. In other words, the Python AI client ecosystem is converging on httpx2 as the transport layer, and llm plugins need to keep up so their dependencies don't lock up.

In practice, the effect for you is avoiding version conflicts. If you updated (or are going to update) the anthropic lib to the 1.x line in an environment that also has llm-anthropic, it's 0.27 that ensures the two coexist without breaking pip's dependency resolver.

The interesting part: the update was done by an agent

What gives this release its color is how it was made. Anthropic published a migration guide for 1.0, and Willison delegated the work to a coding agent. The prompt he gave to Fable 5 running inside Claude Code was direct:

Upgrade to anthropic>=1 - read [MIGRATION.md] and get the tests passing

Translating the pattern: point the model to the official migration guide, and ask it to do the upgrade until the test suite passes. The result turned into a ready PR.

This is a concrete example of an agent use case that already works well today: a well-bounded dependency migration, with an official guide as the source of truth and tests as an objective acceptance criterion. It's not generating a feature from scratch, it's a mechanical, verifiable, tedious task, exactly the kind of thing an agent with access to the repository and the test suite is good at. The "get the tests passing" does the heavy lifting of defining when the agent is done.

What this means for those building in Brazil

Two useful readings here.

The first is operational: if you maintain Python code that talks to Claude or GPT, keep an eye on the wave of major-version bumps in official SDKs (anthropic 1.0, openai 3.0). The switch to httpx2 is the kind of change that goes unnoticed until your build breaks in production. Pinning versions in requirements.txt / pyproject.toml and testing the upgrade in an isolated environment before shipping remains the basics done well.

The second is about working method. The pattern Willison used (agent + official guide + tests as criterion) is replicable in your day-to-day without depending on any new feature. If you have a decent test suite, library migrations stop being an entire afternoon's task and become a well-framed prompt. If you don't have tests, that's one more argument for writing them: they're what gives the agent an objective target and gives you the confidence to accept the PR.

What remains open

An expectation caveat is worth making: 0.27 doesn't bring new models or new Claude capabilities, it's infrastructure. Whoever was expecting model news will be disappointed. And, like every agent-made migration, the PR deserves human review before merging, even with green tests: a passing test proves nothing broke in the covered cases, not that the migration is idiomatic. If you use llm in your daily flow, however, updating to 0.27 is the step that keeps the plugin current with the official SDK, and that's all it needs to do.

Translated from the Brazilian Portuguese original · Read the original

View profile →