New launch of LLM provides help for reasoning traces, OpenAI Responses, server-side instruments, and smarter logging
4th August 2026
I launched LLM 0.32 this morning, probably the most vital new model of LLM because the preliminary launch of the challenge. The brand new model contains help for seen reasoning traces, server-side supplier instruments, redesigned content-addressable SQLite logs, new fashions, and new options enabled by the OpenAI Responses API. I additionally launched a brand new model of the llm-anthropic plugin with substantial updates of its personal.
Headline options for LLM CLI customers
Operating LLM in opposition to reasoning fashions now shows their reasoning traces to plain error, so you’ll be able to see what they’re “pondering” with out that info being included in the usual output that you simply would possibly pipe to a different software. Add -R/–hide-reasoning to show this off.

LLM contains help out-of-the-box for the GPT-5.6 mannequin household, and the brand new default mannequin used with llm “immediate” is now the cheap however succesful GPT-5.6 Luna.
LLM calls can now use server-side instruments from numerous suppliers. OpenAI present a code execution surroundings as a server-side software; LLM can now run prompts that profit from that like so:
OpenAI additionally will get a WebSearch software.
The llm-anthropic plugin provides WebSearch, WebFetch, CodeExecution, and AnthropicMCP, which seems to be like this:
‘what number of rows within the blog_blogmark desk?‘
That causes Anthropic to execute MCP calls in opposition to my new datasette-mcp plugin as a part of a single request/response interplay with their API.
The brand new llm openai endpoint command gives a software for executing prompts in opposition to any OpenAI appropriate endpoint as a one-liner. These aren’t logged, which makes this a helpful software for working one-off prompts in opposition to something that speaks the lingua franca of the LLM API world.
Right here’s how I exploit that to run prompts in opposition to Gemma 4 12B working in my localhost LM Studio API, through uvx (no LLM set up required) and mixing within the llm-tools-quickjs software plugin for good measure:
llm openai endpoint http://localhost:1234/v1 -m google/gemma-4-12b
-T QuickJS ‘Use QuickJS to multiply 3434 * 2434‘ –td

New options within the Python API
LLM’s Python API beforehand required you to create a dialog after which ship messages to it one by one. This was an abstraction over the true nature of LLMs, the place every request carries a whole historical past of the messages that got here earlier than it. That abstraction began to get in the way in which for some extra superior instances, so the brand new launch introduces a mannequin.immediate(messages=[]) parameter that can be utilized like this:
import llm
from llm import consumer, assistant, system
mannequin = llm.get_model(“gpt-5.6-luna”)
response = mannequin.immediate(messages=[
system(“You are a helpful pirate.”),
user(“What is the capital of France?”),
assistant(“Paris, matey.”),
user(“And Germany?”),
])
print(response.textual content())
LLM beforehand returned an iterable sequence of strings from every immediate. This labored nice when fashions returned a string response, however did not predict the bizarre form that fashions would evolve in direction of. At this time many fashions return a mixture of reasoning textual content, output strings, software calls, and even picture attachments. With LLM 0.32 you are able to do this as a substitute:
for occasion in mannequin.immediate(“Clarify cats”).stream_events():
if occasion.kind == “reasoning”:
print(f”[thinking] {occasion.chunk}“, finish=“”, flush=True)
elif occasion.kind == “textual content”:
print(occasion.chunk, finish=“”, flush=True)
else:
print(f”Different occasion: {occasion}“)
Mix these options and we will lastly present a strong implementation of the semi-standard OpenAI chat completions API, which I’ve now launched because the llm-chat-completions-server plugin:
llm chat-completions-server –port 9000
# Server is now working on http://127.0.0.1:9000/v1
Now you’ll be able to run prompts in opposition to LLM through that server, utilizing the brand new llm openai endpoint command!
The larger problem with that type of API considerations logging. If we’re going to help the sample the place the message sequence is appended to on each request, ideally we will keep away from logging all of that duplicate JSON for each flip.
The answer is the brand new content-addressable message retailer, modeled after Git. You possibly can see the brand new schema for that within the documentation, however the llm logs and llm logs –json instructions have each been upgraded to transform that format again into one thing that’s simple to devour.
And the remainder
There’s a complete lot extra on this launch. The 0.32 launch notes are fairly complete, and the notes for 0.32rc2, 0.32rc, 0.32a3, 0.32a2, and 0.32a0 ought to fill in any gaps.
Present LLM plugins ought to all proceed to work, however plugins that present further fashions will have to be upgraded to 0.32 so as to take part totally within the new streaming occasions system. There’s a information to implementing plugins with Structured messages and streaming occasions within the documentation.
I’ve up to date a few of my very own plugins:
I suppose LLM is an agent framework now
Fairly a number of of the lower-level instruments adjustments on this launch had been pushed by the wants of Datasette Agent. Once I began work on LLM, the time period “agent” had such a imprecise definition that I refused to make use of it. In September 2025 I got here round to the concept that “An LLM agent runs instruments in a loop to realize a purpose” is properly established sufficient now that I may cease avoiding the time period fully.
Device chains can now pause for human approval and resume from a saved message historical past—each wanted by Datasette Agent.
LLM at present it’s starting to look very agent-shaped to me. There’s one thing neat about having a CLI utility that may combine and match totally different instruments from totally different sources with totally different fashions all as a one-liner, and that features a Python library highly effective sufficient to construct methods like Datasette Agent and llm-coding-agent.
Possibly the following model of LLM will bake the idea of an “agent” into the core library. I’m nonetheless attempting to determine what that might seem like.

