Simon Willison's Avatar

Simon Willison

@simonwillison.net

Independent AI researcher, creator of datasette.io and llm.datasette.io, building open source tools for data journalism, writing about a lot of stuff at https://simonwillison.net/

44,260
Followers
1,443
Following
4,332
Posts
25.04.2023
Joined
Posts Following

Latest posts by Simon Willison @simonwillison.net

Screenshot of a Claude mobile app conversation using Opus 4.6 Extended. The user message reads "pip install sqlite-utils and read the package metadata long description". A collapsed tool use step reads "Prepared to execute package installation and me…". Claude's response reads "Here's the long description for sqlite-utils (v3.39), by Simon Willison:" followed by an expanded tool use detail panel titled "Read the package metadata long descri…" showing an Input section with a bash code block containing "python3 -c " from importlib.metadata import metadata m = metadata('sqlite-utils') print(m.get('Description', 'No long descrip" and an Output section with a json code block containing { "returncode" : 0, "stdout" : "# sqlite-utils\n\n[![PyPI](ht", "stderr" : "" }.

Screenshot of a Claude mobile app conversation using Opus 4.6 Extended. The user message reads "pip install sqlite-utils and read the package metadata long description". A collapsed tool use step reads "Prepared to execute package installation and me…". Claude's response reads "Here's the long description for sqlite-utils (v3.39), by Simon Willison:" followed by an expanded tool use detail panel titled "Read the package metadata long descri…" showing an Input section with a bash code block containing "python3 -c " from importlib.metadata import metadata m = metadata('sqlite-utils') print(m.get('Description', 'No long descrip" and an Output section with a json code block containing { "returncode" : 0, "stdout" : "# sqlite-utils\n\n[![PyPI](ht", "stderr" : "" }.

You can tell the coding agent to read the README - most of them know how to do something like this:

06.03.2026 18:13 👍 2 🔁 0 💬 1 📌 0

I'm leaning pretty hard into "agentic engineering" right now to describe what happens when professional software engineers use coding agents in a responsible way

(not just LLMs - a coding agent has the ability to run and test the code it's producing which makes all the difference)

06.03.2026 17:34 👍 6 🔁 0 💬 0 📌 1
Agentic manual testing - Agentic Engineering Patterns Agentic manual testing - Agentic Engineering Patterns

New chapter: Agentic manual testing - about how having agents "manually" try out code is a useful way to help them spot issues that might not have been caught by their automated tests simonwillison.net/guides/agent...

06.03.2026 16:50 👍 61 🔁 6 💬 3 📌 1

I get a version of that by saying "write a plan for what you're going to do and wait for me to review it"

06.03.2026 14:38 👍 1 🔁 0 💬 1 📌 0
Preview
HYSTERIA - MUSE I think I could make an EP covering all of Muse's hits, Sewing-Gurdy style ✨🙌 #sewinggurdy #hurdygurdy #bardcore #electronicmusic #coversong TikTok video by SingerSoundSystem

He's doing Muse now www.tiktok.com/@singersound...

06.03.2026 08:47 👍 9 🔁 0 💬 0 📌 0

Many of my prompts start with me feeding in the entirety of my existing code - hard to see how that decision relating to image generation applies to LLMs for code

06.03.2026 01:21 👍 3 🔁 0 💬 1 📌 0

I'm very frustrated at how little useful discourse there has been over that issue though - how much do you need to prompt Claude Code before you can claim copyright over the result? Has anyone even tried to answer that question yet?

05.03.2026 17:30 👍 6 🔁 0 💬 3 📌 0

I think that affects images generated from a single prompt, I haven't seen anything that suggests it affects LLM generated code that's had any hint of human interaction with the coding process at all

05.03.2026 17:29 👍 4 🔁 0 💬 2 📌 0

That was a total miss, I'm sorry! Spent the whole 2.5 days in Manhattan

05.03.2026 03:04 👍 1 🔁 0 💬 1 📌 0
Preview
The New York Earth Room On the second floor of 141 Wooster Street in New York's SoHo district there is a 3,600 square foot room filled with earth - 280,000 pounds of it, first installed in 1977 and maintained there ever sinc...

I went to the New York Earth Room! It's 280,000 pounds of soil in a loft in SoHo that's been there mostly unchanged since 1977
www.niche-museums.com/117

04.03.2026 23:00 👍 62 🔁 1 💬 6 📌 0
Anti-patterns: things to avoid - Agentic Engineering Patterns Anti-patterns: things to avoid - Agentic Engineering Patterns

I started a new chapter of my Agentic Engineering Patternw guide about anti-patterns - things NOT to do

So far I only have one: Inflicting unreviewed code on collaborators, aka dumping a thousand line PR without even making sure it works first simonwillison.net/guides/agent...

04.03.2026 18:19 👍 169 🔁 20 💬 6 📌 5
Something is afoot in the land of Qwen I’m behind on writing about Qwen 3.5, a truly remarkable family of open weight models released by Alibaba’s Qwen team over the past few weeks. I’m hoping that the 3.5 …

Published some notes on the situation at Qwen - they released the Qwen 3.5 family (an outstanding family of open weight models) but now their lead researcher and several others all appear to have resigned within the past 24 hours simonwillison.net/2026/Mar/4/q...

04.03.2026 15:53 👍 108 🔁 17 💬 7 📌 3
Preview
UC Santa Barbara Baseball on X: "Happy to report that the pelican did (eventually) fly away safely" / X Happy to report that the pelican did (eventually) fly away safely

It's fine: twitter.com/ucsb_basebal...

04.03.2026 13:04 👍 4 🔁 0 💬 0 📌 0

I hope it's OK!

04.03.2026 13:02 👍 2 🔁 0 💬 1 📌 0
Preview
GIF optimization tool using WebAssembly and Gifsicle - Agentic Engineering Patterns GIF optimization tool using WebAssembly and Gifsicle - Agentic Engineering Patterns

I started a new section of my Agentic Engineering guide for annotated versions of prompts I've used for projects - the first is a prompt I used to have Claude Code for web build me a web UI for compressing GIFs using a WebAssembly build of Gifsicle simonwillison.net/guides/agent...

02.03.2026 17:20 👍 77 🔁 6 💬 7 📌 1
5. "No new chicks for four years (due to a lack of fruiting rimu trees)" The phrasing "lack of fruiting rimu trees" is slightly imprecise. The issue isn't that rimu trees failed to fruit at all, but that there was no mass fruiting (masting) event, which is the specific trigger for kākāpō breeding. Consider "due to a lack of rimu masting" or "due to a lack of mass rimu fruiting."

5. "No new chicks for four years (due to a lack of fruiting rimu trees)" The phrasing "lack of fruiting rimu trees" is slightly imprecise. The issue isn't that rimu trees failed to fruit at all, but that there was no mass fruiting (masting) event, which is the specific trigger for kākāpō breeding. Consider "due to a lack of rimu masting" or "due to a lack of mass rimu fruiting."

Sent the February edition of my sponsors-only newsletter - a summary of my last month of blogging for people who want to pay for a shorter version

I use Claude as a proofreader and fact checker, was delighted that it called me out on this Kākāpō detail: simonwillison.net/2026/Mar/2/f...

02.03.2026 14:58 👍 33 🔁 0 💬 2 📌 0

This is why I'm a heavy user of Claude Code for web, Anthropic's cloud hosted version of Claude

I don't care what happens in the sandbox if it's running on Anthropic's machines and not mine

01.03.2026 11:32 👍 10 🔁 1 💬 0 📌 0
Interactive explanations - Agentic Engineering Patterns - Simon Willison's Weblog

New chapter of my Agentic Engineering Patterns guide. This one is about having coding agents build custom interactive and animated explanations to help fight back against cognitive debt simonwillison.net/guides/agent...

28.02.2026 23:14 👍 165 🔁 11 💬 13 📌 1
{
  "recordWidth": 256,
  "totalRecords": 299382,
  "totalBytes": 76641792,
  "signposts": [
    {
      "idx": 0,
      "cp": 0
    },
    {
      "idx": 37422,
      "cp": 38452
    },
    {
      "idx": 74845,
      "cp": 81958
    },
    {
      "idx": 112268,
      "cp": 150305
    },
    {
      "idx": 149691,
      "cp": 187764
    },
    {
      "idx": 187113,
      "cp": 1001839
    },
    {
      "idx": 224536,
      "cp": 1039262
    },
    {
      "idx": 261959,
      "cp": 1076687
    }
  ]
}

{ "recordWidth": 256, "totalRecords": 299382, "totalBytes": 76641792, "signposts": [ { "idx": 0, "cp": 0 }, { "idx": 37422, "cp": 38452 }, { "idx": 74845, "cp": 81958 }, { "idx": 112268, "cp": 150305 }, { "idx": 149691, "cp": 187764 }, { "idx": 187113, "cp": 1001839 }, { "idx": 224536, "cp": 1039262 }, { "idx": 261959, "cp": 1076687 } ] }

It has a very tiny index to speed up the first few hits, but the point of the exercise was to do a binary search over HTTP ranges so optimizing it further would break that goal!

27.02.2026 23:01 👍 1 🔁 0 💬 0 📌 0
Video thumbnail

When D3 was released in February 2011, it transformed how we build data visualizations for the web and ushered in a new age of unbridled creativity in information design, data journalism, and beyond. Today, it remains the backbone of modern, interactive data viz.

Happy 15th birthday, D3 🎂
d3js.org

27.02.2026 20:38 👍 163 🔁 38 💬 0 📌 7

Go for it!

27.02.2026 21:28 👍 1 🔁 0 💬 1 📌 0

I worry about the crossover with the GOAT acronym, that's what came to mind for me first before spotting the scapegoating equivalence

27.02.2026 18:56 👍 3 🔁 0 💬 2 📌 0
Video thumbnail

Built a fun prototype this morning of binary search using HTTP range requests, in this case to lookup characters in ~77MB of unicode data simonwillison.net/2026/Feb/27/...

27.02.2026 18:02 👍 58 🔁 2 💬 3 📌 0

Yes, that's definitely on the list

27.02.2026 16:16 👍 2 🔁 0 💬 0 📌 0
Hoard things you know how to do - Agentic Engineering Patterns - Simon Willison's Weblog

Today's chapter of Agentic Engineering Patterns is some good general career advice which happens to also help when working with coding agents: Hoard things you know how to do simonwillison.net/guides/agent...

26.02.2026 21:14 👍 86 🔁 5 💬 5 📌 1

"Google says" annoyed me a whole lot more than "Wikipedia says", I think because the Wikipedia one at least gives me enough provenance to save me a click

26.02.2026 20:54 👍 3 🔁 0 💬 1 📌 0

If I wanted to know what ChatGPT thought I'd fucking well ask ChatGPT!

I'm asking YOU because you're a human and you have experience!

26.02.2026 20:37 👍 117 🔁 13 💬 3 📌 3

Nothing to open Xcode /even once/ for my presentation app project was delightful

26.02.2026 18:14 👍 5 🔁 2 💬 1 📌 1

I like Ethan Mollick's perspective on AI outside of just computer programmers, Drew Breunig for deep prompting nerdery, Armin Ronacher for software engineering with AI, Jack Clark for AI policy with an Anthropic angle... most of the rest I get from Hacker News and various Discords

26.02.2026 04:13 👍 6 🔁 0 💬 0 📌 0

No I've not tried that yet - I'm really just using them for my own confirmation right now

26.02.2026 00:26 👍 0 🔁 0 💬 0 📌 0