LLM digest: September 2026
Sent
I published 57 posts on my blog in September. Here's your sponsors-only summary of the most important trends and highlights from the past month.
As always, this issue and previous issues are archived in my simonw-private/monthly GitHub repository.
More Fable class models
The frontier model wars, already hot, got even hotter in September.
We got our first upgrade to Fable, Fable 5.1, on the 1st of September. It drew me a very nice animated pelican - the best I've seen from any Claude model. Fable 5.1 was also accompanied by an update to the Claude.ai system prompt which made it very clear that Claude should not reproduce song lyrics or copyrighted characters.
I've started to define "Fable class" as models which can do the following:
Given a clear goal, unambiguous criteria, access to the necessary tools, and sufficient time, solve any problem by brute force.
Providing the model with all of that still takes significant skill and experience! There's hope for us software engineers yet.
In September the original Fable 5 was joined by more models that I consider to be Fable class: Fable 5.1, GPT-6 Astra, Claude Opus 5.5, and GPT-6.1 Sol. It's possible that GPT-5.6 Sol (from July), and Claude Sonnet 5.5 may warrant that label as well.
Fable 5's capabilities went from the best available to a reasonable expectation for new models in about three months!
Will the new Gemini 4 Argon fit this label as well? We should find out pretty soon once they start rolling it out beyond their initial trusted partners.
A pricing war
Now that OpenAI and Anthropic once again have models within spitting distance of each other in terms of quality, we are seeing increased competition in terms of price.
OpenAI cut the price of GPT Sol and GPT Luna in half for the GPT-6 family, compared to GPT-5.6.
GPT-6 Luna in particular is a fantastic deal. It's one of OpenAI's cheapest models ever, and is extraordinarily capable. It's my new default for building user-facing features.
Anthropic's Claude Opus 5.5 saw a 20% price reduction compared to Opus 5, and a 60% drop in cost for cache reads - important for longer-running agentic sessions. Opus 5.5 appears to be almost as capable as the 2.5x more expensive Fable 5.1. Opus 5.5 is my new default for much of my coding work.
GPT-6 Luna is currently 1/10th of the price of Claude Haiku 4.5, Anthropic's most recent "cheap" model. Haiku 5.5 is promised in the next few weeks - I really hope that becomes price-competitive with Luna again.
One of the announcements at OpenAI DevDay on September 29th was a new "Pro 500" subscription account for $500/month. This provides access to their new Ultrafast mode - up to 8x faster Astra. This is currently the most expensive monthly subscription tier from any of the labs.
3D graphics, Blender, and pixel art
The most exciting new model capability to emerge in the last two months concerns 3D graphics.
Forget 2D pelicans riding bicycles... give Claude Fable 5+, Claude Opus 5.5 or GPT-6 Astra tools for creating 3D models and the results are astounding.
I've been exploring this with both the Three.js JavaScript library and the Blender 3D modeling app. I've seen examples using Unity as well.
Here's my TIL on Using Blender with coding agents on macOS - it's pretty simple: you install the Blender desktop app and tell Claude Code or Codex to start using it. Blender has a Python-based scripting feature so they don't even need to open the GUI; they can write scripts, render them, and iterate on the results entirely via the command line.
This also means that using coding agents to build 3D computer games with decent graphics is now possible. Building games that are actually fun remains a significant challenge!
I've been enjoying watching Thariq from the Claude Code team document his own game experiments in this thread on Twitter.
A fun related note is that, while Claude doesn't have access to a dedicated image generation model (like ChatGPT Images), it's now capable of creating compelling visual images in other ways. Opus 5.5 has a knack for pixel art, and I had it generate me a pixel art Kākāpō party for a closing slide.
Claude is also getting very good at motion graphics and video editing. I've tried asking Claude Code to create a video and watched it use HTML, CSS, and SVG to produce the animation, then Playwright to convert that into a video file.
My favorite experiments so far have concerned Fabergé eggs. I had the new ChatGPT Images 2.5 create 2D concept art of a Fabergé egg themed after the Apple TV show Widow's Bay, then pasted the resulting image into both Claude Code and Codex and had them model it using Blender.
Here's Opus 5.5's egg, and here's an attempt by GPT-6 Astra. They are way better than I had expected them to be! The linked Blender viewer app is something I vibe coded using GPT-6 Astra and Claude Opus 5.5.
LLMs come for mathematics
A complicated fight broke out in the world of mathematics this month.
OpenAI announced that one of their models had solved key parts of the Navier-Stokes problem - one of the most famous open Millennium Prize Problems, with a million-dollar prize attached to it.
This quickly resulted in accusations of skulduggery. Two mathematicians, one of whom worked for Anthropic (but was not working on the problem on company time), were close to announcing their own solution to parts of Navier-Stokes. Rumors of their efforts had reached OpenAI, who then threw tens of millions of dollars of compute at the Millennium problems to race them to publishing a result.
Since the mathematicians had been using OpenAI models to help investigate these problems for the best part of the year, when challenged, OpenAI could not rule out the possibility that their earlier work had contributed to OpenAI's result.
Some commentators saw this as OpenAI clearly stealing the solution based on those prior logged conversations. I don't think that certainty is justified, but the fact that OpenAI can't rule it out helps illustrate the complexity of the issue of training on user input, no matter how anonymized.
From my write-up of the situation:
This also highlights one of my ongoing frustrations about how all of this works. When an AI lab says that my data is “used to improve model performance”, what does that actually mean?
My two favourite hypothetical questions regarding this used to be:
- If I’m running Codex and one of my API keys accidentally gets consumed in the context, what are the chances that someone else might ask for an API key in the future and get mine back? (I asked someone at OpenAI once and they called this the “regurgitation” problem and assured me that they take great pains to prevent that... but wouldn’t describe how.)
- If I brainstorm with ChatGPT about potential new directions for my company, what’s the chance that information might be exposed to a competitor in six months’ time who asks “what might company X plan to do next”?
My new preferred hypothetical for this is:
- If I use ChatGPT to help me partially solve a Millennium Prize problem, what are the chances that my work will influence training such that a later model helps someone else solve it first?
The aftershocks of this and other similar incidents are still being felt across the world of academic mathematics. A Severe Misalignment of AI in Mathematics is an open letter about this issue headlined by 28 Fields Medal winners, including Terence Tao. It complains that:
Often these solutions are announced in a rush, leaving no time for a proper writeup, the isolation of new methods and ideas, and citing relevant previous work of others.
A lot of mathematicians are suffering a justified episode of Deep Blue.
So many more accidental cyberattacks
It's now clear that, for several months earlier this year, AI labs were woefully behind on the security measures needed to prevent their models-in-training from running riot on the public internet.
Thanks to research by some independent researchers we learned that OpenAI's rogue agents were caught communicating via public wikis - in particular a 20-year-dormant German-language gaming wiki which got thousands of edits from OpenAI's agents. That same research team later uncovered that OpenAI agents attacked RubyGems back in May, causing RubyGems to temporarily suspend new user registrations.
Felony Bench lists 11 such incidents for OpenAI, 9 for Anthropic, 1 for Meta, and 3 for Gemini - Google confessed their incidents to the WSJ a few weeks ago.
OpenAI keep on making the headlines. The prime minister of Australia spoke at the United Nations about an incident where OpenAI research agents had compromised an Australian health statistics portal. This appears to be part of the wider problem of research agents exploiting websites to bypass bot protection and authentication walls. On Friday, October 2nd, OpenAI revealed they had accessed non-public Australian fire statistics as well. OpenAI's own timeline of incidents is having trouble keeping up!
The vulnapocalypse comes for Datasette
It's now undeniable that coding agents can identify security holes, at enormous scale. If your project hasn't been audited yet it's very likely there are some nasty issues lurking under the surface.
I experienced this myself in September with Datasette. We ran several different models against the codebase, and then spent a full week fixing the issues that came up - take a look at the release notes for 1.0a39 and 0.65.4 for details.
Since we were working extensively with coding agents to apply the fixes, Alex Garcia proposed a useful process to help keep us honest. We split the vulnerability reports in half and worked independently creating tests to illustrate each issue. Then we swapped over and implemented fixes against each other's work. This agent-assisted pair programming ensured that at least two human brains had worked to understand each issue as part of fixing it.
What I'm using right now
At the start of the month I was spending most of my time in the Codex Desktop app using GPT-5.6 Sol and then GPT-6 Astra in "Ultra" mode, which spins off extensive pools of subagents to help work on complex problems.
Claude Opus 5.5 got me excited about Claude Code again, so I'm currently balancing my work across Codex and Claude Code.
For security work I've found that having Claude review GPT's work, and vice-versa, really does work surprisingly well.
According to AgentsView I got $2,738 of total value out of my $200/month Anthropic and $200/month OpenAI subscriptions. That doesn't measure sessions in Claude Code for Web though, which I continue to use extensively from my phone.
I'm getting a lot of useful work done with Codex Remote at the moment. I have it rigged up on my laptop and my DGX Spark, allowing me to control them both from my phone. I frequently have the DGX Spark try out new models by telling Codex to install them and get them working via my phone.
I'm also experimenting with Meta's Muse and OpenAI's new Dot "personal agents". I'll write more about these soon.
My software releases this month
- 1st: datasette-mcp 0.2 - Returns SQL result rows as objects instead of arrays.
- 2nd: llm-gemini 0.34 - Gemini 3.8 Flash.
- 2nd: llm-anthropic 0.28 - Claude Fable 5.1, enables reasoning traces by default, records thinking token usage.
- 2nd: llm 0.34 - Adds response durations to logs.
- 2nd: llm-openrouter 0.7.1 - Performance improvement for loading models.
- 7th: llm 0.35 - GPT-6 Astra.
- 11th: datasette 1.0a39 - Security fixes.
- 11th: datasette 0.65.4 - Backports security fixes.
- 11th: github-to-sqlite 2.9.1 - Upgrade to sqlite-utils 4.x.
- 11th: datasette-publish-fly 1.4 - Forces HTTPS in Fly configuration, fixes a missing-volume error.
- 13th: shot-scraper 1.12 - WebP screenshots.
- 14th: commit-rewriter 0.1 - Web app for rewriting repository commit messages.
- 16th: datasette 0.65.5 - Fix for a permissions bypass.
- 16th: datasette 1.0a40 - Plugin background tasks.
- 19th: datasette-auth-github 1.0 - Better cookie expiry.
- 20th: datasette-explain 0.2.2 - Explain for read-only stored queries.
- 20th: llm-keys-ui 0.1 - New web UI for setting LLM API keys.
- 22nd: llm-typesafe 0.1a0 - LLM plugin for Jev by TypeSafe.
- 22nd: llm-anthropic 0.29 - Claude Opus 5.5.
- 22nd: llm 0.36 - GPT-6 Sol and Luna, fixes for async logging.
- 24th: datasette 1.0a41 - OpenTelemetry traces and metrics, a JavaScript modal API.
- 24th: commit-rewriter 0.2 -
--branchoption for rewriting commit messages on branches.
2026 in LLMs (so far)
I gave the closing keynote at the WeAreDevelopers World Congress North America in San Jose: 2026 in LLMs (so far). The video, slides, and annotated transcript are now available. You can consider this a talk-formatted preview of my annual review of 2026, which I'll be publishing at the very end of the year.
That's it for September!
If this newsletter was useful feel free to forward it to friends who might find it useful too, especially if they might be convinced to sign up to sponsor me for the next one!