Simon Willison
Open source developer building tools to help journalists, archivists, librarians and others analyze, explore and publish their data. https://datasette.io and many other #projects.
Here’s my review of Qwen 3.8 27B - I can't remember the last time I've had this much fun playing with a local model that runs on my own computers https://simonwillison.net/2026/Aug/16/qwen-38-27b/
The new Qwen 3.8 27B, running as a 17GB GGUF in LM Studio on my M5 Max MacBook Pro, just drew me the best pelican riding a bicycle I've seen from any model that runs on my laptop
It did take nearly 21 minutes to generate, and used 22,276 reasoning tokens to produce 3,223 tokens of output. Here's the full transcript: https://tools.simonwillison.net/markdown-svg-renderer#url=https%3A%2F%2Fgist.github.com%2Fsimonw%2Ffc909bea4fecf752c7bf9bad0e9dbf2a
Big new release of my LLM CLI tool and Python library for talking to hundreds of different LLMs - reasoning traces, OpenAI Responses support, server-side tools, smarter logging and a whole lot more
https://simonwillison.net/2026/Aug/4/new-release-of-llm/
New TIL: Using uvx in GitHub Actions in a cache-friendly way
I finally found a recipe that I like for running `uvx tool-name` in GitHub Actions without downloading a fresh copy of the package every time https://til.simonwillison.net/github-actions/uvx-github-actions-cache
I may have finally found the Python-in-a-sandbox solution I've been looking for... here's my latest experiment, this time running MicroPython in WebAssembly inside my Python applications https://simonwillison.net/2026/Jun/6/micropython-in-a-sandbox/
It's now possible to compile Python extensions (C, C++, Rust etc) to WebAssembly and distribute them through PyPI such that Pyodide can install them directly https://simonwillison.net/2026/Jun/13/publishing-wasm-wheels/
Wrote up my initial impressions of Claude Fable 5 - it has a big model smell: slow, expensive and capable of crunching through pretty much everything I threw at it https://simonwillison.net/2026/Jun/9/claude-fable-5/
After two days with Claude Fable 5 the best way I can describe it is "relentlessly proactive" - here's an example where I dropped in a screenshot of a bug and it span up custom CORS Python servers and used pyobjc-framework-Quartz to capture screenshots https://simonwillison.net/2026/Jun/11/fable-is-relentlessly-proactive/
Notes on GPT-5.6, which includes some interesting new additions to the API (programmatic tool calling and multi-agent in particular) - plus 18 pelicans for the 6 reasoning levels and 3 new models: https://simonwillison.net/2026/Jul/9/gpt-5-6/
New TIL: I figured out how to use my LLM CLI tool in a shebang line, which means you can write executable scripts in English, or hook up more complex scripts with a snippet of YAML template - https://til.simonwillison.net/llms/llm-shebang
Microsoft's MIT licensed VibeVoice speech-to-text model (think Whisper with speaker diarization) is really good - my notes on running the 5.71GB 4bit MLX conversion on an M5 MacBook, using about 60GB of RAM at peak and transcribing 1hr of audio in ~9 mins https://simonwillison.net/2026/Apr/27/vibevoice/
My parallel agent side-project today was having Claude Code port the new Moebius image pinpointing model to ONNX in order to run it entirely in the browser
https://simonwillison.net/2026/Jun/22/porting-moebius/
The new Qwen3.6-27B just gave me definitely the best pelican riding a bicycle I've had from a 16.8GB model file! https://simonwillison.net/2026/Apr/22/qwen36-27b/
I've added video support to my "shot-scraper" browser automation tool - you (or your coding agent) can now create a storyboard YAML file and use that to record a video demo of new web application features https://simonwillison.net/2026/Jun/30/shot-scraper-video/
I came up with a somewhat foolish new benchmark for testing image generation models, to exercise the new ChatGPT Images 2.0:
"Do a where's Waldo style image but it's where is the raccoon holding a ham radio"
I vibe coded a web UI to LiteParse by LlamaIndex, a neat open source library for extracting text from annoying layouts PDFs https://simonw.github.io/liteparse/
More about how I built it on my blog: https://simonwillison.net/2026/Apr/23/liteparse-for-the-web/
Wrote about today's GitLab restructuring / "workforce reduction" announcement, and ended up digging around in version control for both the GitLab and the 37signals public employee handbooks to help illustrate my thoughts https://simonwillison.net/2026/May/11/gitlab-act-2/
Since Anthropic publish their system prompts we can generate a diff between Claude Opus 4.6 and 4.7 - here are my notes on what's changed https://simonwillison.net/2026/Apr/18/opus-system-prompt/
I just released the first release candidate for sqlite-utils v4, adding a migrations system (previously released independently as sqlite-migrate) and support for nested transactions: https://simonwillison.net/2026/Jun/21/sqlite-utils-40rc1/
DeepSeek V4 just dropped - two models, Flash and Pro, both benchmarking well, decent pelicans and prices that put them both as the cheapest in their respective categories by a solid margin https://simonwillison.net/2026/Apr/24/deepseek-v4/
I added a new feature to my blog (built entirely on my phone with Claude code for web) that imports my iNaturalist photos and adds them to my site's overall timeline https://simonwillison.net/2026/May/2/sightings/
This week's edition of my email newsletter features 4 pelicans riding bicycles, 1 possum on an e-scooter, up to 5 raccoons with ham radios hiding in crowds, 5 blog posts, 8 links, 3 quotes and a new chapter of my Agentic Engineering Patterns guide https://simonw.substack.com/p/gpt-55-chatgpt-images-20-qwen36-27b
Today OpenAI announced that "Revenue share payments from OpenAI to Microsoft continue through 2030, independent of OpenAI’s technology progress"
That "independent of OpenAI’s technology progress" fragment appears to mean that the weird AGI clause is now deceased https://simonwillison.net/2026/Apr/27/now-deceased-agi-clause/
Pelicans for Meta's new Muse Spark models - plus I did a bit of a deep dive into the Code Interpreter and fascinating "container.visual_grounding" tools in their meta.ai chat UI https://simonwillison.net/2026/Apr/8/muse-spark/
I released LLM 0.32a0 this morning, a major backwards-compatible refactor of my LLM Python library and CLI tool for working with language models - the new changes should help LLM work better with reasoning models and other new frontier capabilities https://simonwillison.net/2026/Apr/29/llm/
GPT-5.5 is out but not yet in the OpenAI API - but in the ongoing battle with Anthropic over OpenClaw OpenAI made their Codex tool's private backend API a semi-approved mechanism... and that one has GPT-5.5...
So I used it to draw some pelicans https://simonwillison.net/2026/Apr/23/gpt-5-5/
New Datasette release: 1.0a33, which finally brings documents the ?_extra= JSON API mechanism and brings it to the row and query pages in addition to the table pages
(Most of the code in this release was built with the help of Claude Fable 5) https://datasette.io/blog/2026/api-extras/
New TIL on fetching data from a Datasette instance into Google Sheets using importdata(), named custom functions or Google Apps Script https://til.simonwillison.net/google-sheets/datasette-sql
