Simon Willison

llm 0.37

The release of llm 0.37 introduces numerous new features and fixes accumulated over two months, including new GPT-6.1 models, an openai endpoint add command, and a cheaper default model (gpt-6-luna). It enhances embedding support for varied content types and incorporates many AI‑assisted pull requests from multiple authors. The update also highlights the project’s efficient handling of AI‑generated contributions, aided by triage tools like Opus 5.5 and GPT-6 Astra.

Simon Willison
Aug 22

llm 0.33

The release of llm 0.33 introduces several key updates: it upgrades to the OpenAI Python library 3.x and switches the HTTP client from httpx to httpx2, adds comprehensive key handling for embedding functions, allows repeated template usage to combine configurations, and adds a reasoning_summary option for reasoning-capable responses. These changes improve compatibility, flexibility, and usability of the llm tool.

Simon Willison
Oct 6

EmbeddingGemma 2

Simon Willison comments on EmbeddingGemma 2, noting its Apache 2.0 license and expressing preference for open‑weight models over proprietary, hosted‑only options. He argues that embedding models are often used to generate and store large numbers of vectors, and a closed model could force costly re‑embedding if the vendor discontinues service. Willison prefers a hosted solution that allows him to switch to the open‑weight version if needed.

Simon Willison
Sep 22

llm 0.36

The release of llm 0.36 introduces new OpenAI models gpt-6-sol and gpt-6-luna, and adds support for model plugins to declare that they do not support conversations via supports_conversation = False. When such models receive assistant or tool history, llm raises a ConversationNotSupported error and the chat interface rejects them before starting a session. Additional changes include wrapping reasoning traces in Markdown output with <details> tags and bug fixes from five contributors.

Simon Willison
Aug 24

llm-anthropic 0.27

The release of llm‑anthropic 0.27 updates the Anthropic plugin for LLM to be compatible with the newly released anthropic v1.0.0 Python library, which has switched from httpx to httpx2. This mirrors a similar change made by OpenAI in their v3.0.0 release two weeks prior. The update includes a migration guide and a pull request that ensures tests pass after upgrading to anthropic>=1.

Simon Willison
Oct 9

ttok 1.0

Simon Willison announces the release of ttok 1.0 after discovering that the previous version defaulted to the GPT‑4 tokenizer instead of the expected GPT‑5/GPT‑6 tokenizer. He explains that switching the default was a suitable reason to ship the new version. The release notes reference an experiment by William Liu that confirms the tokenizers for GPT‑5 and GPT‑6 models are likely identical, as all seven models report the same token count across 31 test fixtures.

Simon Willison
Sep 8

Introducing ChatGPT Images 2.5

Simon Willison announces the release of ChatGPT Images 2.5, noting that OpenAI’s image generation models have processed over 3 billion images across ChatGPT Images and the GPT‑Image API. The new version improves instruction‑following across multiple turns, speeds up responses, and better preserves subjects from reference photos. Two new API model IDs—gpt‑image‑2.5‑sunburst and gpt‑image‑2.5‑flare—are available, with Sunburst recommended for precision editing and Flare for fast, high‑quality everyday generation. Willison has updated his openai_image.py CLI tool to accept reference images, demonstrating its use with a raccoon scientist prompt.

Simon Willison
Oct 23

Introducing Kimi K3.1 Pro

Simon Willison announces the release of Kimi K3.1 Pro on the Kimi API, noting it is not yet open‑weights but full weights will be available by Nov 4 2026. The model offers a high‑speed variant 2‑3× faster at double the price, with US dollar pricing of $2.00/million input tokens and $10/million output tokens—matching GPT‑6.1 Sol and half the cost of Claude Opus 5.5. Benchmarks from Moonshot show Kimi roughly on par with Opus 5.5 and GPT‑6 Astra, scoring 55 in Artificial Analysis, ahead of several competitors.

Simon Willison
Oct 6

llm-openai-decisions 0.1a0

Simon Willison announces the release of the llm-openai-decisions 0.1a0 plugin, which interfaces with OpenAI’s new Jev-style Decisions API. The plugin, inspired by llm-typesafe, supports image and text input and offers the same three question types (yes/no, choices, scores) as Jev, with pricing at 10¢ per million input tokens. Installation is simple via `llm install llm-openai-decisions`, and an example query demonstrates image-based evaluation.

Simon Willison
Oct 1

pwasm 0.2a0

Release: pwasm 0.2a0 pwasm is one of my folly projects - an entirely vibe-coded pure Python WebAssembly engine that I built in January during my first bout of AI mania. I hadn't touched it sin...

Simon Willison
Sep 2

llm-gemini 0.34

The release of llm-gemini 0.34 introduces the new Gemini 3.8‑Flash model, available in low, medium, and high thinking levels, and fixes an issue where async responses failed to record the resolved model version. The update also notes that Google has released Gemini 3.8‑Flash (and a restricted 3.8 Flash Cyber version) today, with example outputs (pelicans) demonstrating the model’s performance across the different thinking levels. The author highlights Gemini Flash’s speed, low cost, and competence in generating HTML, JavaScript, and Markdown‑SVG content, citing a 13‑second, 1.8‑cent example of an HTML output.

Simon Willison
Oct 28

Quoting Ted Sanders

The article discusses how large language model (LLM) performance varies across many dimensions, noting that a single factor—model size—explains much of the variation. Larger models tend to be more reliable, cost more per token, and recall more obscure facts. It also explains OpenAI’s naming convention, where version numbers indicate release order, relatedness to other models, and the scale of improvement, using examples like Luna, Terra, Sol, and Astra.