LLM CLI Tool 0.32a0 Released: One Interface to Call All Large Language Models

Simon Willison releases LLM CLI tool 0.32a0 preview, offering a unified interface to call multiple LLMs.
Simon Willison has released the 0.32a0 alpha preview of his open-source CLI tool LLM. Through a unified interface and plugin system, LLM lets developers call multiple large language models—including OpenAI, Anthropic, Gemini, and local models—with a single command, supporting conversation management, prompt templates, and text embeddings. This alpha version signals that the stable release will bring new features and is currently in a community testing and feedback phase.
LLM 0.32a0 Release Overview
Simon Willison has released version 0.32a0, the latest preview of his command-line tool LLM. LLM is an open-source CLI tool and Python library that lets developers interact with various large language models—including OpenAI, Anthropic, Google Gemini, and local models—through a unified interface. This alpha release signals that the upcoming 0.32 stable version will bring a batch of noteworthy feature updates.
What Is the LLM CLI Tool?
LLM was built by well-known developer Simon Willison (Django co-creator, Datasette author), with the core philosophy of providing a unified command-line interface for calling various large language models. Whether you're using GPT-4, Claude, Gemini, or local open-source models running through Ollama, you can interact with all of them through the same tool.
Simon Willison is one of the co-creators of the Django web framework—the most popular web development framework in the Python ecosystem, widely used by companies like Instagram, Pinterest, and Mozilla. He later created Datasette, an open-source tool for exploring and publishing data, focused on turning SQLite databases into interactive web interfaces. Since the large language model wave began in 2022, Willison has become one of the most active independent developers in the AI tooling space. His blog simonwillison.net is an essential source for tracking AI tool development, renowned for its detailed technical notes and "annotated release notes."
Core features of the tool:
- Unified calling interface: Supports dozens of LLM providers through a plugin system; switch models with a single command
- Conversation management: Supports multi-turn conversations, history queries, and log management
- Prompt templates: Create and reuse common prompt templates to boost productivity
- Text embedding support: Beyond generating text, it can also call embedding APIs
- Dual usage modes: Works both as a CLI tool and as an integrable Python library
Technical Background on Text Embeddings
Text embedding is the technique of converting text into high-dimensional vectors (typically arrays of hundreds to thousands of floating-point numbers). These vectors capture the semantic information of text—texts with similar meanings are closer together in vector space. Embedding technology is the foundation for applications like semantic search, recommendation systems, and RAG (Retrieval-Augmented Generation—allowing LLMs to answer questions based on retrieved external knowledge). For example, OpenAI's text-embedding-3-small model can convert any text into a 1536-dimensional vector. LLM's embedding support means users can not only generate text but also build local semantic search systems—converting documents into stored vectors and retrieving the most relevant content through methods like cosine similarity.
The LLM Plugin Ecosystem
LLM's most outstanding advantage lies in its active plugin ecosystem. The community has developed numerous plugins covering major model providers:
llm-claude-3— Call Anthropic Claude series modelsllm-gemini— Call Google Gemini modelsllm-ollama— Run local models through Ollama (Llama, Mistral, etc.)llm-mistral— Call Mistral AI's official API
The benefit of this plugin-based architecture is that when new models are released, the community can quickly develop corresponding plugins without waiting for LLM core updates.
Design Principles of the Plugin Architecture
LLM's plugin system is built on Python's pluggy framework—the same plugin mechanism used by the pytest testing framework. pluggy defines plugin interfaces through "hook specifications," and third-party developers only need to implement the corresponding hooks to extend functionality. This architecture is very popular in open-source tools because it decouples core logic from specific implementations—LLM's core only handles universal functions like conversation management and logging, while the actual model-calling logic is independently maintained by each plugin. When a new model provider appears, the community can publish a corresponding plugin within hours without waiting for the core project's release cycle.
Ollama and Local Model Execution
The Ollama tool behind the llm-ollama plugin deserves special mention. Ollama is an open-source project that allows users to run large language models on their local computers without sending data to the cloud. It wraps complex processes like model downloading, quantization (compressing model parameters from high-precision floating-point numbers to lower-precision representations to reduce memory usage), and inference, letting users run open-source models like Llama 3, Mistral, and Phi with simple commands. Advantages of running models locally include: data privacy protection (sensitive information never leaves your machine), no API fees, and offline availability. Ollama uses llama.cpp as its underlying inference engine, supporting both CPU and GPU accelerated inference. The LLM tool integrates with Ollama through the llm-ollama plugin, allowing users to seamlessly switch between cloud and local models using a unified command-line interface.
What's Changed in 0.32a0?
The 0.32a0 release is an alpha preview, and Simon Willison is making final preparations for the stable release. Detailed update content can be found in the annotated release notes on his blog.
As an alpha version, this means:
- New feature testing phase: Contains new features that aren't yet fully stable, suitable for early adopters
- Community feedback window: The developer hopes to collect real-world usage feedback before the official release
- Interfaces may change: Some APIs may still be adjusted before the stable release
Understanding Alpha Versions and Version Control
The 'a0' suffix in software version numbers follows the Python community's version naming convention (PEP 440). Version releases typically progress through alpha (a) → beta (b) → release candidate (rc) → stable release stages. An alpha version means features are basically implemented but known issues may exist, primarily targeting early testers willing to accept risks. In the pip package manager, alpha versions are not installed by default with pip install --upgrade—users must explicitly specify the version number to obtain it. This is a protective mechanism to prevent production environments from accidentally upgrading to unstable versions.
Simon Willison's Tool Design Philosophy
Simon Willison has been consistently pushing for the democratization of AI tools. His design philosophy is reflected in several aspects:
- Lowering the barrier to entry: Users unfamiliar with API programming can call LLMs through simple commands
- Transparency and traceability: All conversations are automatically logged for easy review and auditing
- Open and extensible: The plugin system enables community participation in ecosystem building
Through continuous tool development and blogging, he has tangibly lowered the technical barrier for everyday developers to use AI. This philosophy aligns with the broader "AI democratization" movement—the belief that powerful AI capabilities shouldn't be limited to tech companies with large engineering teams, and that individual developers and small teams should equally be able to leverage these technologies conveniently. LLM's logging feature is particularly noteworthy: it automatically stores all model interactions in a local SQLite database, allowing users to query conversation history with SQL. This is highly practical for tracking prompt iteration processes, calculating API usage costs, and sharing effective prompting strategies within teams.
Installation and Usage
To try the LLM 0.32a0 preview, install directly via pip:
pip install llm==0.32a0
Users with older versions installed can upgrade directly:
pip install --upgrade llm==0.32a0
Basic usage examples:
# Ask the default model a question
llm "用一句话解释什么是向量数据库"
# Specify a model
llm -m claude-3-opus "分析这段代码的性能问题"
# View conversation history
llm logs
For first-time use, you need to configure the API key for the corresponding model provider. For example, configuring OpenAI:
llm keys set openai
# Then paste your API key
Installing plugins is also straightforward:
llm install llm-claude-3
llm install llm-ollama
The complete source code and documentation can be found in the GitHub repository.
Summary
The LLM CLI tool has built a solid reputation in the developer community, and the 0.32a0 release continues the project's rapid iteration pace. For developers who prefer working in the terminal, LLM offers an efficient, unified way to call various large language models. As the stable release approaches, it's worth keeping an eye on the final feature updates—especially if your daily work involves switching between multiple model providers.
In today's rapidly evolving AI tooling landscape, the value of unified abstraction layer tools like LLM becomes increasingly apparent: they free developers from vendor lock-in, allow flexible selection of the most suitable model based on task characteristics, and maintain workflow consistency.
Key Takeaways
- Simon Willison released the 0.32a0 alpha preview of the LLM CLI tool
- LLM is a unified-interface CLI tool that supports calling multiple large language models through a plugin system
- As an alpha version, 0.32a0 signals that the upcoming stable release will include new features; it's currently in a community testing phase
- LLM's plugin ecosystem covers major model providers including OpenAI, Anthropic, Google, and Mistral
- The project embodies the philosophy of AI tool democratization, lowering the barrier to using large language models
Related articles
Tech FrontiersA Rare Quiet Day in AI: Recursive Self-Improvement Stirs Beneath the Surface
A rare quiet day in AI sees multiple sources go silent simultaneously. Behind the calm, Recursive Self-Improvement (RSI) research continues. What this means for the industry.
Tech FrontiersReve 2 vs. Ideogram 4: A Deep Dive into Layout Control in AI Image Generation
A deep comparison of Reve 2 and Ideogram 4's layout control capabilities, covering technical approaches, real-world use cases, and industry trends for designers and creators.
Tech FrontiersIn the Weights: Check Your Influence Score in the AI World
In the Weights is an AI influence search engine that quantifies your presence in the AI world with a score. Explore how it evaluates practitioners and what it means for digital identity.