Simon Willison's Weblog
- Author
- Simon Willison
- Public lists
-
davewiner/hackerNewsStars
Featured
- Fetched
Fable gets another bump
sqlite-utils 4.1
Quoting Nilay Patel
Quoting OpenAI
[...] Work on web and mobile runs in the cloud. Work in the desktop app can also use local files and desktop apps with your permission. At launch, cloud Work conversations do not appear in desktop Work; desktop Work threads and local files remain on that computer.
— OpenAI, trying (unsuccessfully) to clarify ChatGPT Work
The new GPT-5.6 family: Luna, Terra, Sol
llm-meta-ai 0.1
Release: llm-meta-ai 0.1
Let's LLM run prompts against the new muse-spark-1.1 model.
llm 0.31.1
Release: llm 0.31.1
- Fix for a bug with OpenAI Chat Completion endpoints where a tool call with empty arguments could result in a JSON error from some providers. #1521
This bug came up when I was testing llm-meta-ai.
Tags: llm
Introducing Muse Spark 1.1
Rewriting Bun in Rust
Introducing GPT‑Live
Quoting Kenton Varda
I just declared a moratorium against AI-written change descriptions (e.g. PR and commit messages, also issues/tickets) from my team.
AI was writing change descriptions that were worse than useless to me as I tried to review PRs: outlining details of the code that could easily be seen by looking at the code, but omitting the higher-level framing needed to understand broadly what the code is doing.
Tags: kenton-varda, ai-assisted-programming, generative-ai, ai, llms
sqlite-migrate 0.2
Release: sqlite-migrate 0.2
The version that retires the library, instead implementing a compatibility shim against the new sqlite-utils 4.0 dependency.
Tags: sqlite-utils
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
sqlite-utils 4.0
Release: sqlite-utils 4.0
See sqlite-utils 4.0, now with database schema migrations for details.
Tags: sqlite-utils
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
sqlite-utils 4.0, now with database schema migrations
tencent/Hy3
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
sqlite-utils 4.0rc2
sqlite-utils 4.0rc2, mostly written by Claude Fable (for about $149.25)
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:
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
Better Models: Worse Tools
Open Source AI Gap Map
Quoting Josh W. Comeau
Fable's judgement
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