Sign up

Simon Willison's Weblog

Not verified No WebSub updates Supports Webmention Not yet validated

Author
Simon Willison
Public lists
davewiner/hackerNewsStars Featured
Fetched

Simon Willison's Weblog Supports Webmention

github-code Web Component

Tool: github-code Web Component

An experimental Web Component built using GPT-5.5 and the following prompt:

let's build a Web Component for embedding code from GitHub

<github-code href="https://github.com/simonw/sqlite-ast/blob/437c759129154f05296324a7f82aa1246340dd14/sqlite_ast/parser.py#L9-L18"></github-code>

It takes URLs like that, converts them to https://raw.githubusercontent.com/simonw/sqlite-ast/437c759129154f05296324a7f82aa1246340dd14/sqlite_ast/parser.py, then uses fetch() to fetch them and displays the specified range of lines - with line numbers, no syntax highlighting though

Show me a preview web browser so I can see your work

Here's what it looks like embedded on this page:

Tags: github, web-components, gpt

Simon Willison's Weblog Supports Webmention

sqlite-utils 4.0

Release: sqlite-utils 4.0

See sqlite-utils 4.0, now with database schema migrations for details.

Tags: sqlite-utils

Simon Willison's Weblog Supports Webmention

sqlite-utils 4.0rc4

Release: sqlite-utils 4.0rc4

The last RC before the 4.0 stable release. Mainly implements feedback from a detailed review by Claude Fable 5.

Tags: sqlite-utils, claude-mythos-fable

Simon Willison's Weblog Supports Webmention

sqlite-utils 4.0, now with database schema migrations

This morning I released sqlite-utils 4.0, the 124th release of that project and the first major version bump since 3.0 in November 2020. In addition to some small but significant breaking changes (described in this upgrade guide), this version introduces three major features...

Simon Willison's Weblog Supports Webmention

tencent/Hy3

tencent/Hy3 New Apache 2.0 licensed model from Tencent in China: Hy3 is a 295B-parameter Mixture-of-Experts (MoE) model with 21B active parameters and 3.8B MTP layer parameters, developed by the Tencent Hy Team. Following the Hy3 Preview launch in late April, we gathered fe...

Simon Willison's Weblog Supports Webmention

sqlite-utils 4.0rc3

Release: sqlite-utils 4.0rc3

I hoped to release sqlite-utils 4.0 stable this weekend, but as I worked through the backlog of issues and PRs with a combination of Claude Fable 5 and GPT-5.5 the changelog since rc2 kept getting bigger.

The biggest new feature is support for introspecting and creating compound foreign keys - a feature that involves a subtle breaking change to table.foreign_keys and hence needed to land for the 4.0 stable release.

sqlite-utils also now follows SQLite's convention for case insensitive column names, which turned out to touch a bunch of different places at once.

Tags: projects, sqlite, sqlite-utils, annotated-release-notes, gpt, claude-mythos-fable

Simon Willison's Weblog Supports Webmention

sqlite-utils 4.0rc2

Release: sqlite-utils 4.0rc2

See sqlite-utils 4.0rc2, mostly written by Claude Fable (for about $149.25).

Simon Willison's Weblog Supports Webmention

sqlite-utils 4.0rc2, mostly written by Claude Fable (for about $149.25)

I wrote about the sqlite-utils 4.0rc1 release a couple of weeks ago. Since we only have Claude Fable on our Max subscriptions for a few more days, I decided to see if it could help me get to a 4.0 stable release that I felt truly comfortable about, since I try to keep to Sem...

Simon Willison's Weblog Supports Webmention

Building a World Map with only 500 bytes

Building a World Map with only 500 bytes

Iwo Kadziela (assisted by Codex) figured out a way to generate a credible ASCII world map using 445 bytes of data:

A map of the world rendered as black asterisk ASCII characters, it looks very good

The key trick is to use deflate compression, which is then wired together using this neat snippet of JavaScript. I didn't know you could use fetch() with data: URIs like this:

fetch('data:;base64,1ZpLsgIxCEXnrM...==').then(
  r => r.body.pipeThrough(new DecompressionStream('deflate-raw'))
).then(
  s => new Response(s).text()
).then(
  t => b.innerHTML = '<pre style=font-size:.65vw>' + t
)

Via Hacker News

Tags: ascii-art, javascript

Simon Willison's Weblog Supports Webmention

Better Models: Worse Tools

Better Models: Worse Tools Armin reports on a weird problem he ran into while hacking on Pi: The short version is that newer Claude models sometimes call Pi’s edit tool with extra, invented fields in the nested edits[] array. And not Haiku or some small model: Opus 4.8. The...

Simon Willison's Weblog Supports Webmention

Open Source AI Gap Map

Open Source AI Gap Map Current AI is "a global partnership building a public option for AI", founded as a non-profit at the AI Action Summit in Paris in February 2025 and backed by serious capital ($400m already committed). They launched their Gap Map a couple of days ago - ...

Simon Willison's Weblog Supports Webmention

Quoting Josh W. Comeau

I just launched my third course, Whimsical Animations, and so far, it’s on track to sell roughly ⅓ as many copies as a typical course launch. It’s a similar story with my two existing courses. Sales are down significantly from last year. There are likely a lot of reasons fo...

Simon Willison's Weblog Supports Webmention

Fable's judgement

One of the most interesting tips I got from the Fireside Chat I hosted with Cat Wu and Thariq Shihipar from the Claude Code team at AIE on Wednesday was to let Fable (and to a certain extent Opus) use their own judgement rather than dictating how they should work. The exampl...

Simon Willison's Weblog Supports Webmention

June 2026 newsletter

The June edition of my sponsors-only monthly newsletter is out. If you are a sponsor (or if you start a sponsorship now) you can access it here.

This month:

  • Claude Fable 5, GPT-5.6, and US export restrictions
  • GLM-5.2 is the new best open weights model
  • Tokenmaxxing is so over
  • Datasette Apps
  • sqlite-utils and shot-scraper and Datasette
  • Miscellaneous WASM projects
  • Other model releases
  • What I'm using

Here's a copy of the May newsletter as a preview of what you'll get. Pay $10/month to stay a month ahead of the free copy!

Tags: newsletter

Simon Willison's Weblog Supports Webmention

llm-coding-agent 0.1a0

Release: llm-coding-agent 0.1a0 Another Fable 5 experiment. Now that my LLM library has evolved into more of an agent framework it's time to see what a simple coding agent would look like built on it. I started a new Python library using my python-lib-template-reposi...

Simon Willison's Weblog Supports Webmention

Using DSPy to evaluate and improve Datasette Agent's SQL system prompts

Research: Using DSPy to evaluate and improve Datasette Agent's SQL system prompts One of this morning's AIE keynotes covered dspy, which reminded me I've been meaning to see if it could help me improve the system prompt used by Datasette Agent - so I fired off an asy...

Simon Willison's Weblog Supports Webmention

Understand to participate

I saw Geoffrey Litt speak at AIE yesterday, and one framing he used particularly resonated with me: Understand to participate Geoffrey was talking about the challenge of collaborating with coding agents as they construct increasingly large and sophisticated changes, and the ...

Simon Willison's Weblog Supports Webmention

Quoting Anthropic

We’ve received notice that the Department of Commerce has lifted export controls on Claude Fable 5 and Mythos 5.

We'll begin restoring access tomorrow, and will share an update soon.

Anthropic, on Twitter

Tags: anthropic, claude, generative-ai, claude-mythos, ai, llms

Simon Willison's Weblog Supports Webmention

Nano Banana 2 Lite

Nano Banana 2 Lite

Also known as Gemini 3.1 Flash Lite Image (gemini-3.1-flash-lite-image in their API), this is the "fastest and cheapest Gemini image model, engineered for velocity and scale".

I used AI studio to run this prompt:

Do a where's Waldo style image but it's where is the raccoon holding a ham radio

Densely illustrated "Where's Waldo"-style cartoon of a woodland festival filled with anthropomorphic animals (bears, foxes, badgers, rabbits, squirrels, owls) under a banner reading "FOREE'S FESTIVAL" and another reading "FOREST FIVAL," with bunting flags strung between trees, a Ferris wheel on the right, market stalls including one labeled "ACORN FAIR," signs reading "BANDSTAND," "HAM RADIO MEET" (appearing twice), and a stage where a bear plays guitar, a raccoon uses a ham radio, a badger plays drums, an owl looks on, and a fox plays trumpet, with crowds of animals wandering forest paths between trees and mountains in the background.

I like that one better than the results I got from the other Nano Banana models when I tried this back in April. It spelled Forest Festival wrong in two different ways though.

Via Hacker News

Tags: google, ai, generative-ai, llms, gemini, text-to-image, llm-release, nano-banana

Simon Willison's Weblog Supports Webmention

What's new in Claude Sonnet 5

What's new in Claude Sonnet 5 Claude Sonnet 5 came out this morning. I always head straight for the "what's new" developer docs because they tend to have more actionable information than the official announcement post. Anthropic say of Sonnet 5 that "its performance is close...

Simon Willison's Weblog Supports Webmention

The AI Compass

The AI Compass

This political compass style quiz by bambamramfan is pretty neat - answer 29 questions about AI and AI ethics to see which of the 30 archetypes you best fit.

I'm impressed that my answers on my first time through the quiz categorized me as "The Garage Tinkerer", patron saint myself!

Screenshot of a quiz result screen on a dark background. The top half shows a square scatter-plot quadrant chart with axes labeled GOOD (top), BAD (bottom), OVERHYPED (left of center) and TRANSFORMATIVE (right of center), filled with colored regions and scattered dots; a glowing white-ringed teal dot marks the user's position in the upper-right (good/transformative) area. Below, a card reads: "YOU ARE..." / "The Garage Tinkerer" / "patron saint: Simon Willison" / "You're running local models, building little tools, and having a genuinely great time. You don't care about the discourse — you care about making the thing do cool stuff. The technology is interesting and everyone arguing about it would be happier if they just opened a terminal."

It's implemented as a single page React app using the <script type="text/babel"> trick to avoid the necessary build step. Here's the code.

Via @erisianrite.com

Tags: ai, generative-ai, llms, ai-ethics

Simon Willison's Weblog Supports Webmention

Have your agent record video demos of its work with shot-scraper video

shot-scraper video is a new command introduced in today's shot-scraper 1.10 release which accepts a storyboard.yml file defining a routine to run against a web application and uses Playwright to record a video of that routine. I've written before about the importance of havi...

Simon Willison's Weblog Supports Webmention

shot-scraper 1.10

Release: shot-scraper 1.10

The big new feature is shot-scraper video storyboard.yml, described in detail in Have your agent record video demos of its work with shot-scraper video.

Tags: shot-scraper

Simon Willison's Weblog Supports Webmention

HTML table extractor

Tool: HTML table extractor

Yet another in my growing collection of paste-conversion tools. This one accepts pasted rich text from browsers (with embedded HTML tables) and converts them to HTML, Markdown, CSV, TSV or JSON.

Try it out by selecting everything on the Wikipedia List of cities and towns in the San Francisco Bay Area page and pasting it directly into the tool:

Screenshot of a web interface for converting table data between formats. A row of tabs labeled HTML, Markdown, CSV, TSV, and JSON sits below the bottom edge of a styled data table, with the TSV tab currently selected. The TSV tab displays the table's contents as tab-separated plain text in a monospaced font inside a bordered panel, with a "Copy" button in the upper right of that panel.

On a similar note, I recently rebuilt my Rich text to markdown tool to add support for tables and generally improve the UI.

Tags: html, tools

Simon Willison's Weblog Supports Webmention

Count the number of Safari tabs

Tiniest TIL, using AppleScript to count the number of open browser tabs in Safari:

osascript -e 'tell application "Safari" to count tabs of every window'

I ran it in a terminal window and got back 370.

Tags: safari, til, applescript

Simon Willison's Weblog Supports Webmention

Ornith-1.0: Self-Scaffolding LLMs for Agentic Coding

Ornith-1.0: Self-Scaffolding LLMs for Agentic Coding This is an interesting new open weights (MIT licensed) model, the first model release from DeepReinforce. [...] with variants including 9B Dense, 31B Dense, 35B MoE, and 397B MoE. Built on top of pretrained Gemma 4 and Qw...

Simon Willison's Weblog Supports Webmention

Quoting Jon Udell

Human Agent in the loop

I dislike the phrase “human in the loop” because it cedes authority to the machines. Let’s flip the narrative. It’s our loop, we work the same way we always have, now we recruit agents to join the team. An agent-assisted process need not be a black box that takes in prompts and emits features. [...]

Let’s do agentic software development like that. Not as a loop we’ve been excluded from, instead as one we invite agents into.

Jon Udell, “Doctor, it hurts when agents create unreviewable PRs.” “Don’t do that.”

Tags: jon-udell, coding-agents, generative-ai, agentic-engineering, ai, llms

Simon Willison's Weblog Supports Webmention

Hack Your Summer

Hack Your Summer I learned about this initiative from DJ Patil this morning: It’s a 4-week, high-velocity production sprint for undergraduate students, graduate students, and recent graduates who want to build something real this summer. You’ll learn how to identify a proje...

Simon Willison's Weblog Supports Webmention

Quoting Dean W. Ball

This is a bad state of affairs. Consider, in particular, some industry dynamics: Frontier models are trained at an enormous cost, and a significant fraction of that cost is recouped in the few post-release months that they are broadly available. After that period elapses, ...

Simon Willison's Weblog Supports Webmention

Quoting Timothy B. Lee

This is like saying there's no learning curve to being a manager because your employees will just do whatever you tell them to do.

Timothy B. Lee, on the idea that LLMs take no skill and have no learning curve

Tags: llms, ai, generative-ai