
LLM 0.32: Simon Willison's CLI Now Surfaces Model Reasoning and Connects to MCP Servers
Agentic AISimon Willison’s llm command-line tool just shipped its most significant release since launch — and the reasoning trace support alone changes how developers can introspect model behavior from a terminal.
What Happened
LLM 0.32 ships four major changes: visible reasoning traces, server-side provider tools, an OpenAI Responses API integration, and a redesigned content-addressable logging architecture.
Reasoning traces are now displayed to stderr while standard output stays clean for piping. The implementation lets developers see what reasoning models like o3 or Claude Sonnet are “thinking” without disrupting the pipe-based workflows that make the CLI useful. A -R/--hide-reasoning flag suppresses the traces when they’re not wanted.
Server-side tools are available for OpenAI (CodeInterpreter, WebSearch) and Anthropic (WebSearch, WebFetch, CodeExecution, and the AnthropicMCP connector for external APIs). These are invoked via command-line flags: llm --tool CodeInterpreter 'Show current python and SQLite versions' runs CodeInterpreter within the prompt without requiring local tool configuration.
OpenAI Responses API support arrives with a new llm openai endpoint command that “executes prompts against any OpenAI compatible endpoint as a one-liner” — useful for querying local models (Ollama, LM Studio) or private deployments without configuring a full plugin.
The logging architecture moves to a content-addressable message store modeled on Git’s design, eliminating duplicate JSON storage across multi-turn conversations while maintaining the readable llm logs output.
Why It Matters
The llm CLI occupies a specific niche: it’s the tool developers reach for when they want to query any model from a shell command, pipe output into another tool, or prototype agentic behavior before committing to a framework. Its value comes from how composable it is — stdin/stdout means it integrates with jq, grep, awk, and shell scripts without any SDK overhead.
Reasoning trace support extends that composability to introspection. Developers building pipelines that use reasoning models can now observe the reasoning output routed to stderr while capturing clean answers on stdout — a concrete improvement for debugging why a model reached a particular conclusion.
The AnthropicMCP connector matters for the same reason the OpenAI Responses API integration does: both let developers call external tools without maintaining local tool definitions in each session. For prototyping agentic workflows, the ability to add WebSearch or CodeExecution to a prompt from the command line without configuration overhead reduces the setup friction for experiments.
The Python API changes (direct message array passing, structured event streaming distinguishing between reasoning, text, tool calls, and attachments) are the less visible but more impactful update for developers building on top of llm programmatically. Tool chains with human approval pauses and resumable conversation history were previously awkward to implement; the structured event API makes them straightforward.
For context on how MCP is evolving as an integration standard across the broader agentic tooling ecosystem, the AgentGateway and MCP governance coverage covers the infrastructure layer these tools are building on.
The So What
LLM 0.32 is a genuine capability expansion for a tool that was already useful. Reasoning traces, server-side tools, and OpenAI-compatible endpoint access solve three distinct problems that have made agentic CLI workflows clunkier than they need to be. For developers who already use llm regularly, this is a clear upgrade. For developers who haven’t looked at it since its earlier versions, 0.32 makes a stronger case for adding it to a standard agentic development environment.
Source: Simon Willison's Weblog
Content created with AI assistance and reviewed for accuracy.
Join the conversation
Stack Insiders is our free community for readers who want to go deeper — share resources, ask questions, and connect with others across every vertical we cover.
Join Stack Insiders →