Release: llm 0.29
23 Mar 2026
simonwillison.net

Access large language models from the command-line

cover image
Coding agents for data analysis
17 Mar 2026
simonwillison.net

Here's the handout I prepared for my NICAR 2026 workshop "Coding agents for data analysis" - a three hour session aimed at data journalists demonstrating ways that tools like Claude …

cover image
2025: The year in LLMs
1 Jan 2026
simonwillison.net

This is the third in my annual series reviewing everything that happened in the LLM space over the past 12 months. For previous years see Stuff we figured out about …

cover image
GPT-5-Codex
24 Sep 2025
simonwillison.net

OpenAI half-relased this model earlier this month, adding it to their Codex CLI tool but not their API. Today they've fixed that - the new model can now be accessed …

cover image

Christopher Smith ran a mini hackathon in Albany New York at the weekend around uses of my LLM - the first in-person event I'm aware of dedicated to that project! …

cover image

I presented a three hour workshop at PyCon US yesterday titled Building software on top of Large Language Models. The goal of the workshop was to give participants everything they …

cover image
Gemini CLI
25 Jun 2025
simonwillison.net

First there was Claude Code in February, then OpenAI Codex (CLI) in April, and now Gemini CLI in June. All three of the largest AI labs now have their own …

llm-mistral 0.14
29 May 2025
simonwillison.net

I [added tool-support](https://github.com/simonw/llm-mistral/issues/31) to my plugin for accessing the Mistral API from LLM today, plus support for Mistral's new [Codestral Embed](https://simonwillison.net/2025/May/28/codestral-embed/) embedding model. An interesting challenge here is that I'm …

llm-tools-exa
29 May 2025
simonwillison.net

When I [shipped LLM 0.26](https://simonwillison.net/2025/May/27/llm-tools/) yesterday one of the things I was most excited about was seeing what new tool plugins people would build for it. Dan Turkel's [llm-tools-exa](https://github.com/daturkel/llm-tools-exa) is …

llm-github-models 0.15
29 May 2025
simonwillison.net

Anthony Shaw's [llm-github-models](https://github.com/tonybaloney/llm-github-models) plugin just got an upgrade: it now supports [LLM 0.26 tool use](https://simonwillison.net/2025/May/27/llm-tools/) for a subset of the models hosted on the [GitHub Models API](https://docs.github.com/en/github-models), contributed by [Caleb …

Claude as a calculator
28 May 2025
simonwillison.net

Here's a quick demo of the kind of casual things I use LLMs for on a daily basis. I just found out that Perplexity offer their Deep Research feature via …

LLM 0.26 is out with the biggest new feature since I started the project: support for tools. You can now use the LLM CLI tool—and Python library—to grant LLMs from …

cover image
Highlights from the Claude 4 system prompt
27 May 2025
simonwillison.net

Anthropic publish most of the system prompts for their chat models as part of their release notes. They recently shared the new prompts for both Claude Opus 4 and Claude …

cover image
System Card: Claude Opus 4 & Claude Sonnet 4
25 May 2025
simonwillison.net

Direct link to a PDF on Anthropic's CDN because they don't appear to have a landing page anywhere for this document. Anthropic's system cards are always worth a look, and …

f2
24 May 2025
simonwillison.net

Really neat CLI tool for bulk renaming of files and directories by Ayooluwa Isaiah, written in Go and designed to work cross-platform. There's a _lot_ of great design in this. …

llm-anthropic 0.16
22 May 2025
simonwillison.net

New release of my LLM plugin for Anthropic adding the new Claude 4 Opus and Sonnet models. You can see pelicans on bicycles generated using the new plugin at the …

llm-pdf-to-images
18 May 2025
simonwillison.net

Inspired by my previous [llm-video-frames](https://github.com/simonw/llm-video-frames) plugin, I thought it would be neat to have a plugin for LLM that can take a PDF and turn that into an image-per-page so …

Dummy’s Guide to Modern LLM Sampling
4 May 2025
simonwillison.net

This is an extremely useful, detailed set of explanations by [@AlpinDale](https://x.com/AlpinDale) covering the various different sampling strategies used by modern LLMs. LLMs return a set of next-token probabilities for every …

An LLM Query Understanding Service
10 Apr 2025
simonwillison.net

Doug Turnbull recently wrote about how [all search is structured now](https://softwaredoug.com/blog/2025/04/02/all-search-structured-now): Many times, even a small open source LLM will be able to turn a search query into reasonable …

Tracing the thoughts of a large language model
28 Mar 2025
simonwillison.net

In a follow-up to the research that brought us the [delightful Golden Gate Claude](https://simonwillison.net/2024/May/24/golden-gate-claude/) last year, Anthropic have published two new papers about LLM interpretability: - [Circuit Tracing: Revealing Computational …

Function calling with Gemma
26 Mar 2025
simonwillison.net

Google's Gemma 3 model (the 27B variant is particularly capable, I've been trying it out [via Ollama](https://ollama.com/library/gemma3)) supports function calling exclusively through prompt engineering. The official documentation describes two recommended …

cover image
Putting Gemini 2.5 Pro through its paces
26 Mar 2025
simonwillison.net

There’s a new release from Google Gemini this morning: the first in the Gemini 2.5 series. Google call it “a thinking model, designed to tackle increasingly complex problems”. It’s already …

OpenTimes
18 Mar 2025
simonwillison.net

Spectacular new open geospatial project by [Dan Snow](https://sno.ws/): > OpenTimes is a database of pre-computed, point-to-point travel times between United States Census geographies. It lets you download bulk travel time …

Mistral Small 3.1
17 Mar 2025
simonwillison.net

Mistral Small 3 [came out in January](https://simonwillison.net/2025/Jan/30/mistral-small-3/) and was a notable, genuinely excellent local model that used an Apache 2.0 license. Mistral Small 3.1 offers a significant improvement: it's multi-modal …

cover image
Cutting-edge web scraping techniques at NICAR
9 Mar 2025
simonwillison.net

Here's the handout for a workshop I presented this morning at [NICAR 2025](https://www.ire.org/training/conferences/nicar-2025/) on web scraping, focusing on lesser know tips and tricks that became possible only with recent developments …

cover image
Mistral OCR
7 Mar 2025
simonwillison.net

New closed-source specialist OCR model by Mistral - you can feed it images or a PDF and it produces Markdown with optional embedded images. It's available [via their API](https://docs.mistral.ai/api/#tag/ocr), or …

llm-mistral 0.11
4 Mar 2025
simonwillison.net

I added [schema support](https://simonwillison.net/2025/Feb/28/llm-schemas/) to this plugin which adds support for the [Mistral API](https://docs.mistral.ai/api/) to LLM. Release notes: - Support for LLM [schemas](https://llm.datasette.io/en/stable/schemas.html). [#19](https://github.com/simonw/llm-mistral/issues/19) - `-o prefix '{'` …

llm-ollama 0.9.0
4 Mar 2025
simonwillison.net

This release of the `llm-ollama` plugin adds support for [schemas](https://simonwillison.net/2025/Feb/28/llm-schemas/), thanks to a [PR by Adam Compton](https://github.com/taketwo/llm-ollama/pull/36). Ollama provides very robust support for this pattern thanks to their [structured outputs](https://ollama.com/blog/structured-outputs) …

sqlite-s3vfs
7 Feb 2025
simonwillison.net

Neat open source project on the GitHub organisation for the UK government's Department for Business and Trade: a "Python virtual filesystem for SQLite to read from and write to S3." …

cover image

I just released llm-smollm2, a new plugin for LLM that bundles a quantized copy of the SmolLM2-135M-Instruct LLM inside of the Python package. This means you can now pip install …

cover image
My approach to running a link blog
4 Feb 2025
simonwillison.net

I started running a basic link blog on this domain back in November 2003—publishing links (which I called “blogmarks”) with a title, URL, short snippet of commentary and a “via” …

OpenAI o3-mini, now available in LLM
31 Jan 2025
simonwillison.net

o3-mini is out today. As with other o-series models it’s a slightly difficult one to evaluate—we now need to decide if a prompt is best run using GPT-4o, o1, o3-mini …

ChatGPT Operator system prompt
26 Jan 2025
simonwillison.net

Johann Rehberger snagged a copy of the [ChatGPT Operator](https://simonwillison.net/2025/Jan/23/introducing-operator/) system prompt. As usual, the system prompt doubles as better written documentation than any of the official sources. It asks users …

LLM 0.20
23 Jan 2025
simonwillison.net

New release of my [LLM](https://llm.datasette.io/) CLI tool and Python library. A bunch of accumulated fixes and features since the start of December, most notably: - Support for OpenAI's [o1 model](https://platform.openai.com/docs/models#o1) …

cover image

DeepSeek are the Chinese AI lab who dropped the best currently available open weights LLM on Christmas day, DeepSeek v3. That model was trained in part using their unreleased R1 …

New paper from Microsoft describing their top eight lessons learned red teaming (deliberately seeking security vulnerabilities in) 100 different generative AI models and products over the past few years. …

cover image
Things we learned out about LLMs in 2024
31 Dec 2024
simonwillison.net

A lot has happened in the world of Large Language Models over the course of 2024. Here’s a review of things we figured out about the field in the past …

cover image
The killer app of Gemini Pro 1.5 is video
29 Feb 2024
simonwillison.net

Last week Google introduced Gemini Pro 1.5, an enormous upgrade to their Gemini series of AI models. Gemini Pro 1.5 has a 1,000,000 token context size. This is huge—previously that …

cover image
CLI tools hidden in the Python standard library
28 Jul 2023
til.simonwillison.net

Seth Michael Larson pointed out that the Python gzip module can be used as a CLI tool like this:

cover image
Understanding GPT tokenizers
24 Jul 2023
simonwillison.net

Large language models such as GPT-3/4, LLaMA and PaLM work in terms of tokens. They take text, convert it into tokens (integers), then predict which tokens should come next. Playing …

cover image

I figured out how to run a SQL query directly against a CSV file using the sqlite3 command-line utility:

I’m going to describe a way to put together a world-class continuous deployment infrastructure for your side-project without spending any money. With continuous deployment every code commit is tested against …