Simon Willison

llm-openrouter 0.7.1

The article announces the release of version 0.7.1 of the llm-openrouter library. It highlights a performance fix that improves the loading of OpenRouter models. The release acknowledges a contribution from waveplate.

Simon Willison
Sep 2

llm 0.34

The release of llm 0.34 introduces a new feature that enhances log output by including response duration in both milliseconds and a human‑readable format. The short log view now contains a dedicated duration_ms field. Additionally, the update incorporates multiple bug fixes and a notable performance boost to llm logs, attributed to waveplate integration.

Simon Willison
Sep 7

llm 0.35

The article announces the release of llm version 0.35, which introduces a new OpenAI model named gpt-6-astra for GPT-6 Astra. It highlights the addition of this model to the llm library and tags the release with openai, llm, 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
Sep 11

So you want to use OpenRouter?

OpenRouter advertises automatic fallback and cost‑effective routing to the best backend provider for a single API endpoint. However, Mohamed Moustafa highlights that different providers use varied serving software, optimizations, and capabilities, leading to inconsistent behavior across the same endpoint. Users can mitigate this by specifying a provider with the provider.only option and checking available providers via the /endpoints method.

Simon Willison
11h ago

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
Aug 21

Stop Making TUIs

Stop Making TUIs Thomas Ptacek advocates for building real native user interfaces for even the smallest of personal tools, because coding agents have reduced the cost of getting a usable-enough GUI up and running to almost nothing. I wrote about my vibe-coded bandwidth and GPU monitoring macOS task bar apps back in March , and I'm still using both of those on a daily basis.

Towards Data Science
Aug 20

How to Fine-Tune an LLM: An End-to-End Guide

The article "How to Fine-Tune an LLM: An End-to-End Guide" offers a practical, hands‑on walkthrough for fine‑tuning large language models in real‑world scenarios. It covers the entire process from data preparation to deployment, providing readers with actionable steps to adapt LLMs to specific tasks. The guide is aimed at practitioners looking to implement fine‑tuning in a structured, end‑to‑end manner.

By Sam Black