OpenAI's Python SDK 3.x now needs httpx2, breaking fresh installs
The 3.0.0 major swaps httpx for the Pydantic team's httpx2 fork and drops Python 3.9; pin openai<3 for now — and llm-openrouter 0.7 adds server-side tools.

Copy markdown
httpx is out, httpx2 is in
openai-python 3.0.0 makes the Pydantic team's httpx2 fork its default HTTP client, replacing httpx. Any tool that pulls openai in transitively — or injects a custom httpx transport — breaks on a fresh install until it adapts to httpx2.
It also drops Python 3.9 and certifi
The same 3.0.0 release raises the floor to Python 3.10+ and verifies TLS against the OS certificate store instead of Python's bundled certifi. Old Linux base images, Windows 7 boxes, or anything leaning on certifi's CA set can start failing.
The fix for now: pin openai<3
Simon Willison already shipped the unblock — llm 0.32.1 pins openai<3 after fresh installs of the LLM CLI stopped working, with a 0.33 planned to migrate to httpx2 cleanly. If your stack broke this week, pinning openai<3 buys you time.
Elsewhere: llm-openrouter 0.7 adds server-side tools
Shipped the same day, llm-openrouter 0.7 adds Shell, WebFetch, and WebSearch as server-side tools plus reasoning traces, through OpenRouter's Responses API — you can now run -T WebSearch against any OpenRouter-hosted model.