Simon Willison Releases llm 0.32 Alpha Series · history
Version 1
2026-04-30 04:32 UTC · 31 items
Narrative
On April 29, 2026, Simon Willison released two alpha versions of his popular llm CLI tool and Python library in rapid succession, marking a significant architectural overhaul. The headline change in 0.32a0 is the replacement of the previous prompt/response model with a message-sequence API that allows full prior conversations to be injected without requiring SQLite as an intermediary.[1] This is a backwards-compatible refactor, but a major one that reshapes how the library models both inputs and outputs.
The new streaming API is perhaps the most technically ambitious aspect of the release: responses are now exposed as typed event parts — text, tool_call_name, tool_call_args, and reasoning — enabling downstream consumers to handle the mixed-type outputs increasingly common from modern models like Claude.[1] Willison frames this as a direct response to the reality of contemporary LLMs: "Many of today's models return mixed types of content. A prompt run against Claude might return reasoning output, then text, then a JSON request for a tool call, then more text content." The CLI immediately leverages this by rendering reasoning/thinking tokens in a distinct color and routing them to stderr, keeping piped output clean.[1] A new to_dict/from_dict serialization mechanism rounds out the release, letting Python API users store and restore responses in any storage layer rather than being coupled to SQLite.[1]
The 0.32a1 patch followed the same day, fixing a bug in which tool-calling conversations were not correctly reinflated from SQLite storage — a regression introduced by the architectural changes in 0.32a0.[2] The release sequence (alpha → same-day bugfix alpha) is consistent with Willison's iterative, public development style. The broader reference material surfaced by searches (background on prior releases, YouTube talks, the llm.datasette.io docs) provides historical context but no new substantive claims about 0.32 specifically.[3][4]
Timeline
- 2026-04-29: LLM 0.32a0 released: major backwards-compatible refactor replacing prompt/response model with message-sequence API, adding typed streaming event parts and to_dict/from_dict serialization [1][5]
- 2026-04-29: LLM 0.32a1 released same day to fix bug where tool-calling conversations were not correctly reinflated from SQLite [2]
Perspectives
Simon Willison
Advocates for the architectural refactor as a necessary response to modern LLMs' mixed-type outputs (reasoning, text, tool calls). Treats the alpha series as iterative public development, shipping a fix the same day as the initial alpha.
Evolution: consistent — this is the initial synthesis
Tensions
- The 0.32 series is explicitly alpha: it is unclear how many breaking changes plugin authors face and whether the new message-sequence API will stabilize before a stable release. [1][2]
- The new to_dict/from_dict mechanism decouples the library from SQLite, but the same-day SQLite bug fix in 0.32a1 suggests the two storage paths are not yet equally exercised. [1][2]
- Community and third-party plugin reactions to the refactor are entirely absent from current coverage — all substantive content comes from Willison himself.
Sources
- [1] LLM 0.32a0 is a major backwards-compatible refactor — Simon Willison (2026-04-29)
- [2] llm 0.32a1 — Simon Willison (2026-04-29)
- [3] Release: llm 0.31 — reactive:simon-willison-llm-032
- [4] LLM 0.26a0 adds support for tools! - Simon Willison's Weblog — reactive:simon-willison-llm-032
- [5] llm 0.32a0 — Simon Willison (2026-04-29)