LLM 0.33 Adds Repeatable Templates, OpenAI Library 3.x Support
Simon Willison released LLM 0.33 on 22 August 2026, bringing repeatable prompt templates, per-call API key support for embedding models, and an upgrade to the OpenAI Python library 3.x.

👁 120 reads
Simon Willison released LLM 0.33 on 22 August 2026, updating his command-line tool for accessing large language models with several practical improvements for developers who use it daily.
- LLM 0.33 upgrades to the OpenAI Python library 3.x and switches the HTTP client dependency from httpx to httpx2
- The -t/--template flag can now be repeated to combine templates in order, letting users stack a model-configuration template with a prompt template
- Embedding methods now accept a per-call key= argument, matching the pattern already used by regular LLM models
The most significant dependency change is an upgrade to the OpenAI Python library 3.x, which also switches the underlying HTTP client from httpx to httpx2. Willison had already shipped a 0.32.1 patch the day before to address the same issue, but describes 0.33 as the more comprehensive fix.
The release extends template handling so that the -t/--template flag can now be repeated to combine templates in order. Model configuration and options from one template can be merged with a prompt from another. Willison illustrates the pattern with a two-step example: first saving a template called lhigh that bundles a specific model with reasoning_effort high, then saving a separate prompt template, and finally invoking both together with llm -t lhigh -t pelican.
Embedding models have been brought into line with regular LLM models on API key handling. The llm embed and llm embed-multi commands now accept --key, and the corresponding Python methods - EmbeddingModel.embed(), EmbeddingModel.embed_multi(), Collection.embed(), and Collection.embed_multi() - accept a key= argument that passes a resolved per-call key to embedding plugins without altering shared model state. Existing plugins that read self.key continue to work through a compatibility fallback. The change is credited to contributor ChrisJr404.
Reasoning-capable Responses API models gain a reasoning_summary option with auto, concise, and detailed values, accessible via llm openai endpoint --responses. Willison notes this is particularly useful for testing models that provide their own imitation of the OpenAI Responses API.
For anyone building pipelines with LLM, the composable template system is the most immediately useful addition: it removes the need to duplicate model configuration across every saved prompt, and makes it straightforward to swap models in and out of an existing workflow by changing a single template reference.
Google · Your sourcesQuantslant higher in your Google - one clickAdd to preferred sources →More on this from QUANTSLANT
news·OpenAI Reverses Course, Urges California to Toughen Its AI Safety LawOpenAI, which previously opposed California's SB 53, is now calling on the state legislature to expand the law's safeguards around frontier model development.

