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
Text

Quoting Calif Research

Today, we're releasing a demo of WeWorm, the first zero-click worm to spread through WeChat calls across iOS and Android. [...]

The victim does not need to answer the call, or interact with their phone at all. Even if they do answer, they hear nothing, and the exploit still succeeds. [...]

Working with AI, our team found the bug and wrote the first remote code execution (RCE) exploit in about two days. Building the worm took one more week.

A worm at this scale used to be the kind of thing that took a larger team months. AI can already do most of the work here. Our team provided the judgment about what to target and how to test it safely.

Calif Research, WeWorm

Tags: ai-security-research, ai, llms, security, generative-ai

Simon Willison's Weblog Supports Webmention
Text

.blend URL Viewer

Tool: .blend URL Viewer I'm continuing to have a lot of fun with GPT-6 Astra and Blender (see my TIL). As a big fan of the Imperial Fabergé Easter eggs, I've always thought it would be fun to make some new ones that celebrate popular culture. Yesterday I decided to t...

Simon Willison's Weblog Supports Webmention
Text

Quoting Terence Tao

I wrote recently about how the collection of good, fruitful open problems is now being mined in a non-renewable fashion, leading to the potential scenario of these problems becoming scarce. [...]

We have now seen that even the rumor of someone working on a problem can trigger a massive amount of AI-powered effort to flatten it before the original research project has time to reach its full potential. The incentives may now be pointing in the direction of no longer sharing any promising research directions with the broader community, which would reverse centuries of traditions of open science and do serious long-term damage to the future of the field.

Terence Tao

Tags: ai-ethics, mathematics, ai

Simon Willison's Weblog Supports Webmention
Text

On the Navier–Stokes Millennium Prize Problem

On the Navier–Stokes Millennium Prize Problem Impressive result from OpenAI, who used an unreleased model to produce a resolution to the Navier–Stokes existence and smoothness problem, one of the seven Millennium Prize Problems that have been subject to a $1,000,000 prize si...

Simon Willison's Weblog Supports Webmention
Text

Introducing ChatGPT Images 2.5

Introducing ChatGPT Images 2.5 OpenAI's image generation models are apparently used "more than 3 billion images across ChatGPT Images and the GPT‑Image models in the API". This latest release improves their instruction-following ability across multiple turns, responds faster...

Simon Willison's Weblog Supports Webmention
Text

llm 0.35

Release: llm 0.35

Tags: openai, llm, gpt-6-astra

Simon Willison's Weblog Supports Webmention
Text

Creepy crawlies

Creepy crawlies

Konstantin Ryabitsev discusses how bad the "background radiation" of abusive crawlers has become from the perspective of git.kernel.org, the official Git repository for the Linux kernel:

TL;DR: we spend more CPU cycles rendering commits for scrapers than we spend on all other kinds of legitimate access, including git clones. At any one time, across 5 geo-distributed nodes, there are 14 CPU cores doing nothing but rendering git commits as html.

I worry about this a lot from the perspective of Datasette, which serves a huge number of crawlable web pages.

Via Hacker News

Tags: crawling, git, linux, datasette, ai-ethics

Simon Willison's Weblog Supports Webmention
Text

Quoting Jakub Pachocki

The strongest argument I see for continuing to train much smarter models quickly is the need to build defensive systems against the dangers posed by other AI. [...]

We will need powerful, aligned AI for defense; to secure infrastructure, to protect against rogue agents in real time, and to invent entirely new protective measures. This will be a primary focus of OpenAI’s deployment efforts.

At the same time, even with the uncertainty that comes from anticipated broad AI progress and the need to build defensive systems, we must not let that become an excuse for recklessness. The idea of racing forward at all costs seems absurd once one internalizes the seriousness of the stakes.

Jakub Pachocki, Chief Scientist at OpenAI

Tags: ai-ethics, openai, ai

Simon Willison's Weblog Supports Webmention
Text

Video compressor

Tool: Video compressor

I recorded a short demo video of my Equal Earth animation on my phone and wanted to publish an optimized version of that video (using FFMPEG) on my blog, so I had Claude Fable 5.1 in Claude Code for web build me this tool using the WebAssembly build of FFMPEG.

Tags: ffmpeg, video, webassembly, claude, claude-code, claude-mythos-fable

Simon Willison's Weblog Supports Webmention
Text

Mercator ↔ Equal Earth

Tool: Mercator ↔ Equal Earth

I got curious about the Equal Earth map projection that was recently voted on at the UN so I had GPT-6 Astra (medium) in ChatGPT Work build me this animated transition between Mercator and Equal Earth using D3.

Tags: geospatial, d3, vibe-coding, gpt-6-astra

Simon Willison's Weblog Supports Webmention
Text

Research acceleration: The view inside OpenAI

Research acceleration: The view inside OpenAI

Apparently today is RSI day at OpenAI, for Recursive Self-Improvement - I think it's their new AGI. Both this piece and the new essay An Alien Mind (by Chief Scientist Jakub Pachocki) talk about it, and this one doesn't even bother to expand the acronym.

Included are details on how OpenAI's own research team are using coding agents. Like pretty much everyone else 2026 has been the year that agentic engineering really took off at OpenAI, best illustrated by this chart:

Screenshot of a line chart from a report, headed "1. Coding agents are reshaping daily work for OpenAI researchers" with a partially visible chart title ending "significantly—Median researcher". Y-axis: "Daily $ / researcher" from 0 to 700. X-axis labels: "Feb 2026", "Apr 2026", "Jun 2026", "Aug 2026". A blue line stays near 0 through February, rises slowly to about 50 by April and 150 by June, plateaus around 150–165 into July, then climbs steeply to roughly 600 by late August 2026.

I'm intrigued at what caused that significant acceleration in AI spend per researcher in late July - my best guess is that's when internal employees gained access to the model later released as GPT-6 Astra.

Tags: ai, openai, generative-ai, chatgpt, llms, coding-agents, november-2025-inflection, recursive-self-improvement

Simon Willison's Weblog Supports Webmention
Text

There's No Limit to How Bad Code Can Get

My comment on There's No Limit to How Bad Code Can Get — Lobste.rs. [In reply to a comment about burning it down to start from scratch when technical debt becomes overwhelming] In my experience it's so rare for that to work. You announce the old thing is irrecovera...

Simon Willison's Weblog Supports Webmention
Text

The purpose of DNS is to spread scams

The purpose of DNS is to spread scams

Terence Eden shares some daunting statistics in support of his take that "the Domain Name System's purpose seems to be a vector for criminals to run scams on people at a terrifyingly high rate".

On this Interisle report (via Andrew Campling), Terence says:

It says 85 million new registrations of gTLDs were made in 2025. Of those 8.5 million were added to blocklists by May 2025. It reckons that a 10% abuse rate is the likely floor for these numbers and it's probably closer to 20%. One in five newly registered domains with a gTLD are scams. That's a bloody crisis.

I had no idea. Apparently ICANN have been discussing this problem for years.

Tags: dns, scams, terence-eden

Simon Willison's Weblog Supports Webmention
Text

Quoting Zach Kehs

If you continue to add floors and rooms to a building forever, it will collapse. Software faces no such constraint. The code can always get worse. There can always be a new layer of indirection or a reduction in performance.

Zach Kehs, There's No Limit to How Bad Code Can Get

Tags: technical-debt

Simon Willison's Weblog Supports Webmention
Text

Introducing GPT-6 Astra for developers

Introducing GPT-6 Astra for developers

Blink and you'll miss it, but there's a familiar creature at 1m59s:

Across the board, Astra has more attention to detail, better understanding of the user's prompt, and can build more sophisticated outputs. In particular, it excels at building 3D models. I've seen it make incredible renderings of gardens, shipyards, animals, cityscapes, even Dyson spheres.

astra-video-pelican.webp

Astra really does believe in putting a red neckerchief on a pelican riding a bicycle.

Via Hacker News comment

Tags: ai, openai, generative-ai, llms, pelican-riding-a-bicycle, gpt-6-astra

Simon Willison's Weblog Supports Webmention
Text

Using Blender with coding agents on macOS

TIL: Using Blender with coding agents on macOS

I've been having fun with Blender in ChatGPT Codex on my Mac recently. Getting it to work with coding agents is really easy: install the full Mac application from blender.org and run a prompt like this:

Use the already install /Applications/Blender to render a scene of a pelican riding a bicycle

In this case I followed that up with these two prompts:

OK add a background and a lot of flair

Then:

OK make it a whole lot better

And got this image, generated using Blender's Python API:

A 3D illustration of a white pelican cycling along a seaside boardwalk at sunset. It wears a cream boater hat and a coral scarf, with wings on the handlebars and long orange legs reaching the pedals of a turquoise bicycle. A wicker front basket holds pink and white flowers, and three balloons float behind. Pastel bunting stretches overhead between palm trees. Striped beach huts stand beside a teal sea with a small sailboat, beneath a large peach-colored sun. The scene has a softly lit, toy-like style.

Tags: ai, generative-ai, llms, blender, pelican-riding-a-bicycle, coding-agents, gpt-6-astra

Simon Willison's Weblog Supports Webmention
Text

The Pelican comparison grid for Astra is pretty interesting

I got access to GPT-6 Astra this afternoon, so naturally I used it to generate SVGs of pelicans riding bicycles - at low, medium, high, xhigh and max reasoning levels (Astra doesn't support reasoning=none). Then I rendered those pelicans in a comparison grid with GPT-5.6 Sol...

Simon Willison's Weblog Supports Webmention
Text

OpenAI's rogue agents were caught communicating via public wikis

Here we go again... Discovery of a new OpenAI agent message board by Sydney Von Arx, Cormac Slade Byrd, Spencer Kitts, and Thomas Larsen describes the latest accidental cyberattack by models being trained by OpenAI. This time it was agents engaged in some sort of web researc...

Simon Willison's Weblog Supports Webmention
Text

August newsletter is out

The August 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:

  • We got more details on OpenAl's accidental cyberattacks
  • One-shotting Raccoon Heist games with Fable 5 and Sol 5.6
  • Claude auto mode
  • Understanding ChatGPT Work
  • Model releases
  • Miscellaneous bits and bobs
  • My projects
  • What I'm using at the moment

Here's a copy of the July 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
Text

GPT‑6 Astra

GPT‑6 Astra GPT-6 Astra is "rolling out today to a limited set of organizations and over the coming days will become available to all ChatGPT Plus, Pro, Business, and Enterprise users, as well as through the OpenAI API and AWS" - I've not tried it yet myself, so I don't have...

Simon Willison's Weblog Supports Webmention
Text

llm-openrouter 0.7.1

Release: llm-openrouter 0.7.1

  • Performance fix for loading OpenRouter models. Thanks, waveplate. #59

Tags: llm, openrouter

Simon Willison's Weblog Supports Webmention
Text

llm 0.34

Release: llm 0.34

One new feature:

  • llm logs --usage Markdown output now includes the response duration in milliseconds and as a human-readable duration. llm logs --short includes a new duration_ms field. #1653

Plus several contributed bug fixes, and a significant performance improvement to llm logs thanks to waveplate on GitHub, see also llm-openrouter 0.7.1.

Tags: llm

Simon Willison's Weblog Supports Webmention
Text

llm-gemini 0.34

Release: llm-gemini 0.34

Tags: llm, gemini

Simon Willison's Weblog Supports Webmention
Text

llm-anthropic 0.28

Release: llm-anthropic 0.28

Claude Fable 5.1, reasoning traces are now displayed by default for models that support them, plus a new llm_anthropic.ClaudeRefusal exception for when Claude throws a refusal.

Tags: llm, anthropic, claude, claude-mythos-fable

Simon Willison's Weblog Supports Webmention
Text

Claude's new system prompt really doesn't want to reproduce song lyrics

Anthropic publish the system prompts for their Claude consumer applications (Claude.ai and the Claude mobile apps - sadly not for Claude Cowork or Claude Code). I love that they do this, and that they share not just the current prompts but historic changes to their prompts a...

Simon Willison's Weblog Supports Webmention
Text

Quoting Rick Brewster

Direct2D has always been the biggest hurdle for Paint.NET on WINE, and it's clear that it will never be completed enough for Paint.NET's use. And I can't just "disable" the use of Direct2D. So, instead, Paint.NET now has an internal, from-scratch, clean-room reverse-en...

Simon Willison's Weblog Supports Webmention
Text

GeoJSON Map Viewer

Tool: GeoJSON Map Viewer I was helping Natalie gather some maps of local political boundaries (for the Granada Community Services District and the Midcoast Community Council) and found a need to display some GeoJSON files on a map and export that as a PNG. I asked GP...

Simon Willison's Weblog Supports Webmention
Text

datasette-mcp 0.2

Release: datasette-mcp 0.2

  • "rows" from execute_sql is now an array of objects. Previously it was an array of arrays. This should help weaker models avoid losing track of which positional array element maps to which column. #1
  • Now depends on mcp>=2.1.1.

This is the first non-alpha release of the plugin. I'm confident it's ready as I've been using it quite a bit myself.

Tags: datasette, model-context-protocol

Simon Willison's Weblog Supports Webmention
Text

Claude Fable 5.1 made me a really nice animated pelican

Today is Claude Fable (and Mythos) 5.1 day. Anthropic say that Fable 5.1 "sets a new standard for coding, knowledge work, and long-running problem-solving tasks". Their announcement spends a notable amount of time on scientific research, boasting of a 52.6% score on the bran...

Simon Willison's Weblog Supports Webmention
Text

Codex bundles LibreOffice

I was poking around in my ~/.cache/ folder using OmniDiskSweeper when I spotted something interesting. The OpenAI Codex desktop app (since rebranded to just ChatGPT) has 1.7GB of stuff in there in a folder called codex-primary-runtime, including a full Python installation, a full Node.js installation, and native binaries for Poppler, git, and the LibreOffice open source office suite (which forked from OpenOffice.org in 2010):

Screenshot of a macOS disk usage app window in column view, titled "/Users/simon/.cache - 442.1 GB". First column: 356.8 GB huggingface, 82.5 GB uv, 1.7 GB codex-runtimes (selected), 609.0 MB datasette-sqlite, 298.8 MB rod. Second column: 1.7 GB codex-primary-runtime (selected). Third column: 1.7 GB dependencies (selected), 6.3 MB plugins, 4.1 kB runtime.json. Fourth column: 771.0 MB native (selected), 446.4 MB node, 440.6 MB python, 28.7 kB bin. Fifth column: 429.7 MB libreoffice-headless (selected), 187.9 MB poppler, 148.1 MB git, 4.7 MB libheif, 679.9 kB jxrlib.

The ~/.cache/codex-runtimes/codex-primary-runtime/plugins/openai-primary-runtime/plugins/documents folder includes skills which tell Codex how to find and use those binaries.

Tags: codex, generative-ai, openai, ai, llms, openoffice, open-source