Simon Willison Releases llm 0.32 Alpha Series · history
Version 7
2026-05-02 04:20 UTC · 190 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] The new streaming API exposes responses 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] The CLI 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 lets 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][3]
A fifth search cycle (May 2, 2026) continues the pattern of indexing artifacts and noise with minimal substantive signal. The most notable new items are: Willison's X/Twitter post confirming the 0.32a0 release as "a major backwards-compatible refactor"[4], extending the detected social footprint to a fourth platform (previously: Fediverse, Bluesky, Instagram); plantis.ai, operating under the branding "The AI Conductor Framework," has indexed both 0.32a0 and 0.32a1 releases[5][6], becoming the fourth neutral aggregator alongside Let's Data Science, daily.dev, and myaiguide.co; and GitHub issue #863, a pre-existing feature request for a register_template_loaders plugin hook[7], adds yet another data point to the map of plugin infrastructure complexity that predates the 0.32 refactor. No 0.32a2 or stable release has been detected. Willison's official releases index at simonwillison.net/elsewhere/release/ has been indexed[8], and the llm.datasette.io plugins directory[9] continues to appear in searches, but neither contains new 0.32-specific content. A November 2025 post by Willison on upgrading Datasette plugins using uv and OpenAI Codex CLI[10] surfaced as background context for how he approaches plugin migration workflows, though it predates the 0.32 series.
The overarching pattern across five search cycles is now firmly established: the 0.32 alpha series has attracted indexing services (NewReleases.io, plantis.ai), neutral aggregators (Let's Data Science, daily.dev, myaiguide.co), and isolated social amplification across Bluesky, Fediverse, Instagram, and X/Twitter, but has generated no substantive third-party analysis beyond the single explore.n1n.ai piece[11], no plugin author migration reports, and no Hacker News discussion thread. The accumulating cluster of pre-existing GitHub plugin infrastructure issues — register_models hooks (#53, #1389, #1259), plugin crash-on-load (#1280), plugin loss under uv upgrades (#575), additional model registration (#107), and now register_template_loaders (#863) — illuminates the real-world complexity the 0.32 refactor must navigate, but no plugin author has publicly assessed the impact. Whether the stable release will surface the community reaction the alpha series has not remains the open question.
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][12][13]
- 2026-04-29: LLM 0.32a1 released same day to fix bug where tool-calling conversations were not correctly reinflated from SQLite [2][3]
- 2026-04-29: Willison posts about 0.32a0 on X/Twitter, Fediverse, and Bluesky; third-party aggregators (Let's Data Science, daily.dev) begin indexing the 0.32a0 announcement [4][17][18][14][15]
- 2026-04-30: Dedicated third-party analytical piece on the 0.32a0 refactor indexed from explore.n1n.ai; Hacker News searches confirm no 0.32-specific community discussion; second search cycle returns primarily noise [11][26][27][28][29][30]
- 2026-05-01: Third and fourth search cycles: Instagram post specifically about 0.32 core rewrite indexed; myaiguide.co and NewReleases.io index 0.32a0; cluster of plugin infrastructure GitHub issues (#53, #1389, #1259, #1280, #575, #107) surfaced; no plugin compatibility updates from first-party plugin repos [43][15][14][31][32][33][23][19][35][36][37][38][39][40]
- 2026-05-02: Fifth search cycle: Willison's X/Twitter post about 0.32a0 detected; plantis.ai indexes both 0.32a0 and 0.32a1; GitHub issue #863 (register_template_loaders) adds to plugin infrastructure map; no 0.32a2 or stable release detected [4][5][6][7][8][9]
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. Active across Fediverse, Bluesky, Instagram, and X/Twitter.
Evolution: consistent — X/Twitter post detected for first time in fifth cycle, extending known social platform footprint; no new substantive statements about 0.32 content itself
Third-party tech aggregators (Let's Data Science, daily.dev, myaiguide.co, plantis.ai)
Neutral amplification — republishing Willison's announcement without original analysis or critique.
Evolution: expanding — plantis.ai is a new aggregator in the fifth cycle, extending the neutral-amplifier count to four; it indexed both alpha releases under the 'AI Conductor Framework' branding
Specialized AI content sites (explore.n1n.ai)
Analytical framing of the 0.32a0 refactor as significant for Python-based AI tooling broadly, though no specific claims were extracted.
Evolution: consistent — no new content detected in third, fourth, or fifth cycles
Release tracking services (NewReleases.io)
Passive indexing — cataloguing the 0.32a0 release without commentary.
Evolution: consistent — no new release tracking entries in fifth cycle
Educational content creators (YouTube)
Promotes the llm CLI tool as a productivity enhancer for developers, framed as broadly educational content; none of the video content is 0.32-specific.
Evolution: consistent — additional general LLM tutorial videos indexed in fifth cycle (LLM Full Course 2026), none specific to llm 0.32
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][3]
- Community and third-party plugin reactions to the refactor are entirely absent from five full search cycles — HN searches confirm no notable 0.32-specific discussion, and all substantive content comes from Willison himself and neutral amplifiers. [26][27][28][29][30][31][32][33][34]
- The plugin infrastructure has multiple pre-existing known pain points (register_models hooks firing twice, plugins lost on upgrade, crash-on-load failures, register_template_loaders hook gap) that the 0.32 refactor does not explicitly address — but no plugin author has publicly assessed whether 0.32 helps or worsens any of these. [35][36][37][38][39][40][7]
- The broader Python LLM tooling ecosystem (e.g., pydantic-ai) is independently wrestling with the same streaming-plus-tool-call problem that llm 0.32 addresses, raising the question of whether llm's approach will converge with or diverge from emerging community conventions. [41][42]
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.32a1 — reactive:simon-willison-llm-032
- [4] LLM 0.32a0 is a major backwards-compatible refactor — reactive:simon-willison-llm-032
- [5] Release: llm 0.32a1 - The AI Conductor Framework — reactive:simon-willison-llm-032
- [6] Release: llm 0.32a0 - The AI Conductor Framework — reactive:simon-willison-llm-032
- [7] simonw/llm - register_template_loaders plugin hook - GitHub — reactive:simon-willison-llm-032
- [8] Releases — reactive:simon-willison-llm-032
- [9] Plugins - LLM — reactive:simon-willison-llm-032
- [10] Video + notes on upgrading a Datasette plugin for the latest 1.0 alpha, with help from uv and OpenAI Codex CLI — reactive:simon-willison-llm-032
- [11] LLM 0.32a0 Refactor: A Major Step for Python-Based AI Tooling — reactive:simon-willison-llm-032
- [12] llm 0.32a0 — Simon Willison (2026-04-29)
- [13] LLM 0.32a0 is a major backwards-compatible refactor — reactive:simon-willison-llm-032
- [14] Simon Willison: "The LLM Python library support…" — reactive:simon-willison-llm-032
- [15] Post by @simonwillison.net — reactive:simon-willison-llm-032
- [16] Simon Willison on python — reactive:simon-willison-llm-032
- [17] llm CLI package releases version 0.32a0 - Let's Data Science — reactive:simon-willison-llm-032
- [18] LLM 0.32a0 is a major backwards-compatible refactor — reactive:simon-willison-llm-032
- [19] LLM library releases 0.32a0 alpha with backwards-compatible refactor — reactive:simon-willison-llm-032
- [20] n1n.ai: Enterprise Unified LLM API Gateway (One Key for All Models) — reactive:simon-willison-llm-032
- [21] ai-agents — reactive:simon-willison-llm-032
- [22] LLM Library | Enterprise Unified LLM API Gateway (One Key for All ... — reactive:simon-willison-llm-032
- [23] simonw/llm 0.32a0 on GitHub - NewReleases.io — reactive:simon-willison-llm-032
- [24] Become a command-line superhero with Simon Willison's `llm` tool — reactive:simon-willison-llm-032
- [25] LLM Full Course 2026 | LLM Tutorial For Beginners - YouTube — reactive:simon-willison-llm-032
- [26] Yet Another LLM Rant - Hacker News — reactive:simon-willison-llm-032
- [27] LLMs can be exhausting | Hacker News — reactive:simon-willison-llm-032
- [28] Im genuinely blown away by llms. I'm an artist who've ... - Hacker News — reactive:simon-willison-llm-032
- [29] LLMs are bullshitters. But that doesn't mean they're not useful — reactive:simon-willison-llm-032
- [30] This is frankly one of the most frustrating things about LLMs — reactive:simon-willison-llm-032
- [31] Ability to "reply" to a tool-response with a prompt carrying those tool ... — reactive:simon-willison-llm-032
- [32] Documentation on how to implement tool usage for model plugins — reactive:simon-willison-llm-032
- [33] c" should automatically include tools from "llm -T" in the initial prompt ... — reactive:simon-willison-llm-032
- [34] Issues · simonw/llm - GitHub — reactive:simon-willison-llm-032
- [35] Plugin hook: register_models #53 - simonw/llm - GitHub — reactive:simon-willison-llm-032
- [36] register_models(model_aliases=) parameter · Issue #1389 - GitHub — reactive:simon-willison-llm-032
- [37] [Performance] llm prompt calls register_models hooks twice #1259 — reactive:simon-willison-llm-032
- [38] Handle plugins that crash during load · Issue #1280 · simonw/llm — reactive:simon-willison-llm-032
- [39] llm loses track of plugins when upgraded (with uv and others) #575 — reactive:simon-willison-llm-032
- [40] OpenAI default plugin should support registering additional models — reactive:simon-willison-llm-032
- [41] Streaming Tool Calls · Issue #640 · pydantic/pydantic-ai - GitHub — reactive:simon-willison-llm-032
- [42] How streaming LLM APIs work | Simon Willison’s TILs — reactive:simon-willison-llm-032
- [43] LLM 0.32 just rewrote its core — and everything still ... - Instagram — reactive:simon-willison-llm-032