We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Write less prompt and more verification
Addy Osmani says most people over-prompt Claude. For Opus 5.5, give one prompt that states the goal and how Claude should verify it reached that goal. Start with /effort medium and adjust from there . If the goal is still fuzzy, ask Claude to interview you until it can write a spec, then start a fresh session to build from that spec . Claude can run unattended when it has a pass/fail check or a number to beat, with reports it can read. For long background tasks, /goal has a separate model check a condition after every turn .
His other recommendations:
-
Trim your instructions for each new model. Over 80% of the Claude Code system prompt was removed for Opus 5 and Fable 5 with no measurable drop on coding evals. Cut your own instructions, add back only what the model misses, and use
/doctor prompt-auditto flag instructions written for older models . - Subagents: ask for them only for large standalone jobs such as audits or migrations. On small jobs they add cost and latency, and they don't make the agent smarter by default .
-
Cloud sessions run in a VM with a fresh clone of your repo, so push your commits before starting one (
claude --cloud). Parallel sessions only pay off once a single session can finish without you. Projects, in beta on Pro and Max, track which threads are done, which PRs are ready and what needs your input . -
Review: on the Claude Code team, Claude reviews and fixes most changes at least once before a human looks.
/code-reviewruns the review in a subagent that hasn't seen the conversation .
In a talk with Sonar, Osmani said Claude does the first-pass review and has to try the change the way a user would: browser checks, end-to-end tasks, linting. Hooks rerun on every edit . Write your team's standards in Claude.md/agents.md. Humans then check the agent's evidence, such as videos or screenshots of the UI working . The tests he relies on to merge automatically are end-to-end, property and visual-verification tests .
Theo's new video turns the same idea into a hill-climbing recipe. For TS Rust, he told the model to run real projects against a pinned TypeScript version and keep going until the outputs matched exactly. Once they matched, he told it: "Do not stop until you're two times faster", with existing tests still passing . Some goals are hard to check. For a Skate clone, he had the agent screenshot its builds and send them to a panel of LLM judges for comparison with real footage. He calls this crude, and says it burned at least $800 in tokens on the skybox . His main point is to keep asking the agent what is blocking it. Moving builds to snapshotted VMs on Boat, a company he has invested in, cut gate time from up to 70 minutes to 353 seconds . He warns against doing this at API prices .
Automate the PR "last mile"
Brent Traut's Codex setup:
- Install a PR-babysitting skill that addresses feedback, fixes merge conflicts and CI failures, and alerts you only when it needs you. He points to the one in the openai/codex repo.
- Create a "🚢 Outbound" section in the ChatGPT app.
- Create a "🤖 PR Shepherd" Codex thread scheduled every 15 minutes. It runs the skill on each Outbound thread until the PR is green, merges it, then archives the thread .
After requesting review, he drops the thread into Outbound and walks away .
Gemini 4 Carbon: strong coding scores, limited access
Artificial Analysis reports that Carbon (high), running in Antigravity CLI, scores 59 on its Coding Agent Index. That is 3 points behind Claude Code with Opus 5.5 (max, 62). It ranks second on Terminal-Bench 4.0 (64%) and FrontierCode v1.1 (51%) . It is only available to selected users so far, with a 50% launch discount and no confirmed end date . Access starts with cyber defenders, and Logan Kilpatrick says Google is working to make it more widely available soon . Kilpatrick says Carbon cut successful cheating on Terminal-Bench 4.0 to 0.0%, unsupported claims by about 2× versus Argon, and overreach by 26% . Matthew Berman reports pricing of $2/$10 per million input/output tokens during an introductory period of unspecified length, then $4/$20 .
T3 Code: one MCP server controls a fleet of machines
Theo showed T3 Code starting 8 threads on different machines through one MCP server, driven from Grok Bot . It works over the internet, not through computer use, so it still runs with his laptop off . To try it, enable it under Labs on the latest nightly. Theo calls it "VERY early" . Also new: cmd+k → "triage" clones T3 Code's source for your exact version, gives your agent a debugging playbook, and files an issue if the bug is T3 Code's fault .
Building games that are fun
Simon Willison says Opus 5.5's sense of fun beats GPT-6 Astra's . His recipe is to start in plain chat with Build a mobile-friendly three.js game where... and switch to Codex or Claude Code once the proof of concept works . Two prompts did a lot of work. One prompt that included "Think hard about how to make sure it is both fun and beautiful" produced a game in one shot . "Make it a LOT more fun" turned a dull 2D RTS into Battle Drones .
Memory and scheduled agents (LangChain)
- LangChain says over 70% of Managed Deep Agents runs come from schedules, not from someone typing a message . Its blueprint is a cron server that takes a prompt plus the skills or permissions the run needs, adds random jitter so runs don't fire all at once, and gives agents a controlled way to create and edit their own schedules .
- OpenWiki is an open-source CLI that builds a wiki of your codebase so coding agents don't rediscover the architecture on every task. Each claim in the wiki is tied to a hash of its source lines, so a claim gets flagged as stale without a model call when those lines change . LangChain then added an evidence graph and tested it on cross-document questions. It reports 27% higher accuracy, 2× citation consistency and 58% lower cost per correct answer .
Short notes
- Kent C. Dodds ties each Kody feature flag to metrics. A "Rerank" flag showed 7.6× more executions and a 5× lower error rate, so he will enable it. The same system led him to delete another feature .
- Riley Brown uses a Claude Project as a coordinator. It sends work that needs his computer to local sessions and research and artifacts to cloud sessions, and he runs it from his phone . He keeps 30 apps and 20 skills in Composio so any agent platform can use them. Shared memory across platforms is still unsolved for him .
- OpenAI: eligible ChatGPT Pro and Business subscribers can claim up to $500/month in API credits .
- GitHub Octoverse: merged PRs tripled in under a year to 220M per month. Willison reads this as the effect of agentic engineering .
- Riley Brown uses Claude Projects as an orchestrator, with separate projects for apps and editor/designer work; it delegates to local Claude Code sessions or cloud sessions, which he can launch and monitor from his phone. From an app-specific project, he can describe UI changes in natural language on his phone; the project routes the work to a local session, which updates the app and can deploy the result.
- Brown says Claude Opus 5.5 is strongest for his front-end-focused app work; he uses Claude for creating apps and assets, while Codex handles computer use and business coordination. His voice workflow uses Dot to launch a Codex session on his Mac to inspect Native Note, extend a background change to list and calendar pages, and push it to production; in the update shown, the session was running and the production push was still pending.
- He centralizes 30 connected apps and 20 skills in Composio, including a custom Native Note tool created by an agent so connected agent platforms can reuse it rather than repeat integrations. Cross-platform memory remains an unresolved gap: he says agent memories do not persist when switching platforms, and his Supermemory-through-Composio setup did not update frequently enough for seamless handoffs.
- For Twitter research, he has Claude Code call Grokbot through a configured webhook skill; Grokbot’s Twitter access lets him delegate the research while continuing to work through his preferred agent platforms.
- For long-running coding work, make progress machine-checkable: run real projects against a pinned reference compiler, inject errors, compare exact outputs, and set a speed target while keeping existing tests. Theo reports TS Rust began working in a day and improved over the following weeks; after setting a 2× speed target, the agent iterated until it met it.
- For harder-to-verify outputs, use an explicit proxy: the Skate 3 Bench agent captured screenshots of specific states, compared them with Skate references through an LLM judge or panel, and iterated. The result was a playable browser-based 3JS skate clone, but Theo calls the screenshot approach crude and says it spent at least $800 in tokens trying to improve the skybox.
- Treat agent orchestration as repeated unblock work: provide the tools and compute the task needs, then keep asking what is slowing the agent down instead of reviewing every code change. For TS Rust, Theo used Boat VMs and snapshots to reuse a prebuilt environment across multiple workers; he reports build-gate time dropping from 40–70 minutes to 353 seconds and daily code throughput more than doubling, closer to tripling. He also says he invested in Boat, an important caveat to his endorsement.
- This is an extreme setup, not a default recipe: Theo advises against replicating it and says not to run these experiments at API prices.
- Google presented Gemini 4 Carbon as its strongest model, claiming gains in coding and agentic tasks; it cited an 82.2% BenchPro result for finding vulnerabilities.
- The presenter questioned benchmark representativeness and noted that models appeared inconsistently across comparisons, raising cherry-picking as a possibility rather than a conclusion.
- General release was still pending: Google said Carbon was coming soon to developers, businesses, and consumers, and referred to an initial cohort of cyber defenders; the presenter had not tried it and planned to test it when released.
- The quoted price matched Argon: $2 per million prefill tokens and $10 per million generated tokens.
-
For a low-friction game proof of concept, start in regular ChatGPT or Claude chat with
Build a mobile-friendly three.js game where...; Willison says a full coding agent is not needed at this stage. His games used HTML/JavaScript and static hosting, and he recommends moving to Codex or Claude Code once the project is past proof of concept. - Make the desired experience explicit in the prompt: for Tree Appreciator, he asked Claude chat for two algorithmically generated trees in a spot-the-difference game and to think hard about making it fun and beautiful; it produced a mobile-friendly game in one shot, with no follow-up prompts.
- When a prototype works but lacks appeal, iterate on the experience directly: after a workable-but-not-great 2D RTS made with Claude Fable 5, Willison prompted Opus 5.5 to “Make it a LOT more fun” and then “Port this game to three.js.” Battle Drones later supported 2–4-player multiplayer and model-versus-model play, where the game advances five seconds before pausing for models to inspect the state and issue commands.
- Plan to playtest complex generated games and correct state-related problems: Emberwick needed substantial playtesting and follow-up prompting because story changes could leave a character in the wrong location to complete a quest; the finished story takes about 15 minutes to play.
- In Willison’s comparisons, Opus 5.5 had a stronger sense of fun than GPT-6 Astra; a GPT-6 Pro version of Emberwick looked great to him but played less well.
-
Supabase’s CLI exposes an instance as a local
supabasefolder and virtual filesystem. The announced PG Delta library provides a declarative file representation of a Postgres database’s tables, policies, and comments, and works with any Postgres database; the aim is for agents to read schema files rather than reconstruct the database by replaying large migration histories. - Supabase Compute was presented as long-running serverless container compute on the database’s private network, supporting Rust, Python, agents, and direct Postgres connections. The team described it as the missing primitive for durable workflows, which community members could not run on Edge Functions because of their timeout.
- Lovable’s database-specific agent skills prevented mistakes such as putting image data in Postgres or disabling RLS; the interview notes that models had since improved on those behaviors.
- Supabase largely lets teams choose their own AI coding tools and policies, while consolidating some cost decisions; it reported spending about $300,000 per month across 450 employees. Its stated effectiveness focus is end-to-end processes solved and reducing human-in-the-loop work, not spend alone; it uses its async company documentation as an AI harness for surfacing company principles and historical decisions.
- DHH says he ran “Kimmy K25” as his primary driver for over a month in spring and liked its speed: about 200 tokens/second versus 30–40 tokens/second for frontier models at the time.
- His Linux distro project integrates agents for making themes, apps, and plugins. For the China-oriented setup, he aims for a preconfigured developer machine ready in 30 seconds rather than requiring half an hour or half a day of setup; this is a stated target.
Factory describes a multi-agent workflow for larger projects: Missions assign separate parts of the work to droids, a validator clicks through the working application and sends failures back to builders, and Factory Router selects a model as work progresses. Factory claims its Router cut costs 63% versus frontier models in production, with 84% of routed sessions saving at least half.
Google announced Gemini 4 Carbon High but had not made it generally available: rollout was to start with cybersecurity partners, expand to trusted partners, and reach developers, businesses, and consumers later; the presenter says he had not tried it. In the announced benchmarks, Carbon scored 65 on Terminal Bench 4.0 versus Argon’s 57; Google also reported 0% successful cheating and 4% attempts to cheat on that benchmark, and about half as many unsupported claims as Argon. Announced pricing was $2 per million input tokens and $10 per million output tokens during an introductory period, then $4/$20; Google did not specify the introductory period’s length.
- For low-stakes browser-game prototypes, start in regular Claude or ChatGPT chat rather than a full coding agent: prompt for a “mobile-friendly three.js game,” build in HTML/JavaScript for static hosting, then move to Codex or Claude Code after the proof of concept; if the game is not fun enough, try “Make it a LOT more fun.”
- A concrete one-shot approach: ask for a specific core loop and aesthetic, then explicitly ask the model to think about fun and beauty. A prompt for a three.js spot-the-difference game using procedurally generated trees produced a mobile-friendly game in regular Claude chat with no follow-up prompts.
- For a larger game, build in stages—prototype the engine and world, add requested features, then expand into mechanics and plot—and playtest between stages. Emberwick needed repeated playtesting and prompts to fix quest problems caused by characters moving to the wrong location; the completed story took about 15 minutes to play.
- In Willison’s comparison, Claude Fable 5 made Battle Drones a workable but unfun 2D RTS; Opus 5.5’s “Make it a LOT more fun” prompt and subsequent port to three.js transformed it. The project grew to support 2–4-player multiplayer through a vibe-coded WebSockets relay, and its Apache 2.0 release was followed by Panache, a French steampunk-themed fork.
- Model caveat: Willison found GPT-6 Astra could build games but did not match Opus 5.5’s sense of fun; a GPT-6 Pro version of Emberwick looked good but, in his view, played less well.
-
For Opus 5.5, use one prompt stating the goal and how Claude should verify success; start with
/effort mediumand adjust. If the task is unclear, ask Claude to interview you until it can write a spec, then start a new session to build from it. For unattended work, provide a pass/fail check or numeric target with readable reports;/goalcan have a separate model check a condition after each turn on long background tasks. -
For models like Opus 5 and Fable 5, over 80% of the Claude Code system prompt was removed without measurable degradation on coding evals. For a new model, try trimming your own instructions and add back only what it misses;
/doctor prompt-auditflags instructions written for older models. - Let Claude delegate to subagents by default; explicitly request them for substantial standalone work such as audits or migrations, not small jobs where they add cost and latency. Subagents can parallelize work or provide a second opinion, but do not inherently make the agent smarter. For custom agents, a single agent with skills can often outperform a subagent design at lower cost and latency, based on the author's experience.
- Use Claude Code cloud sessions for work you want to continue away from your laptop: they run in a separate VM with a fresh repo clone, so push commits first; check in, answer questions, then review the diff and open a PR. Keep work local if it needs machine-only resources. Parallel sessions pay off only once a single session can finish without you; Projects can organize issues into parallel threads, apply shared instructions, and track completed tasks, ready PRs, and pending input. Projects were in public beta on Pro and Max when the article was written.
-
Keep human review in the loop:
/code-reviewreviews a diff in a subagent that has not seen the conversation, or use a new session with the spec and instructions to ignore stylistic issues. The author reports that Claude Code team changes are usually reviewed and fixed by Claude at least once before a human looks.
- At Anthropic, Claude Code performs a first-pass PR review and can test changes more like a real user: run end-to-end tasks, open the experience in a browser, and run tools, linting, and other checks. Hooks rerun on edits and inspect diffs to help correct PRs quickly.
-
Put team standards and “taste” in shared
Claude.mdoragents.mdfiles for the review agent to consult; have people check the agent’s evidence, such as browser-tested UI and generated videos or screenshots. Addy says end-to-end, property, and visual-verification tests are useful for building confidence in changes and enabling automatic merges.
- For functional reimplementations of familiar software, Sanfilippo says decompilation is often unnecessary: use the working program as an oracle, probe it with functional tests, turn observed behavior into a description, and reimplement from that description; he also describes this as a route to clean-room implementations.
- Reserve decompilation for cases where exact behavior matters, such as proprietary file formats, peculiar algorithms, or hardware drivers. For a narrow reverse-engineering question, a frontier model may be able to inspect assembly directly; in one example, Sanfilippo used binaries from a 1990s system to reconstruct its simulator and says it worked well.
- In a decompilation test, Sanfilippo gave Opus a binary and compared its reconstruction with Ghidra output using another agent. He reports that Opus recovered runtime exceptions and meaningful function and variable names, going beyond mechanical decompilation.
GitHub activity surged in 2026: merged pull requests tripled in under a year to 220 million per month, commits more than tripled to 7.38 billion per month (with most of the increase in the second half), and new repositories doubled to 30.3 million per month. Willison presents these figures as evidence of agentic engineering’s impact.
Swyx said Gemini’s Artificial Analysis lead prompted him to reopen Antigravity and that he was getting an early review. On the Artificial Analysis Coding Agent Index, Gemini 4 Carbon (high) via Antigravity CLI scored 59, three points behind Claude Code with Claude Opus 5.5 (62); it ranked second on Terminal-Bench 4.0 and FrontierCode v1.1. Carbon was rolling out to selected users and was not yet publicly available.
In a sponsored Hyper Agent demo, Fireship’s presenter used a Slack-like “room” for work on a V4 date-library release, bringing agents and human co-maintainers together. Separate agents triaged incoming issues, drafted feature PRs, and wrote the changelog in parallel, handed work off, and contacted a human when approval was needed; teammates could also ask questions or make changes directly. The presenter said users could sign in with an existing ChatGPT plan rather than set up another AI subscription.
Kent C. Dodds puts Kody features behind flags linked to metrics, using the results to decide whether to enable them for everyone or delete them; he says the same system led him to reject and delete another feature. For Kody’s “Rerank” feature, he planned to enable it after the comparison reported 7.6× more executions and a 5× lower error rate among enabled users.
Terk Terkowitz’s guidance for engineers: if current AI tools do not help with your work, document why, share the finding with peers and your manager, and work to find solutions; being able to explain where AI falls short demonstrates the judgment expected of engineers .
For choosing models in coding-agent workflows, Ted Sanders says capability is multidimensional, but larger models generally offer better performance and reliability and better recall of esoteric facts, at higher per-token cost; this is a broad tendency, not a coding-specific benchmark. Model version numbers can signal release order, relationships between releases, and the scale of improvement—for example, 6.1 could follow 5.6 without representing a leap large enough to warrant a new major number.
- Riley uses Claude Projects as a phone-accessible coordinator that routes work to local computer sessions or cloud sessions; he runs computer-dependent editing locally while delegating research and artifact creation to the cloud, including while the local session is working. Local sessions require his computer to be on.
- His reported tool split is Claude Code/Projects for building apps and creating designs, slides, and video edits; he prefers Opus 5.5 for front-end work and visualizing information. He uses Codex through Dot for computer-use and business workflows: by voice, it can inspect a video transcript, prepare a YouTube upload with details and sponsor links, and save it as a draft for him to review before publishing.
- Riley uses Composio to centralize integrations and skills—including custom tools—so they can be reused across agent platforms. Cross-platform memory remains an unresolved gap for him: he has not found a simple way to keep agent memory current when switching platforms, and his Supermemory setup did not update it frequently enough.
- For Twitter research, he delegates from Claude Code to Grokbot through a webhook skill, using Grokbot’s Twitter access without working in its UI.
Simon Willison identifies October as another inflection point for coding-agent capabilities, saying Claude Opus 5.5 can build video games that are “actually fun.”
Addy Osmani argues that, as execution becomes cheaper, engineers should demonstrate judgment by prototyping an idea that moves the business internally or building a portfolio of small prototypes externally; both should show taste and judgment. He cites Claude Code Desktop as an example: two newer engineers started it as a weekend prototype.
The October inflection point for vibe game development
In this newsletter:
- The October inflection point for vibe game development
Plus 8 links, 3 quotations, 1 release, 1 research report, and 2 tools
Thanks for reading Simon Willison’s Newsletter! Subscribe for free to receive new posts and support my work.
Sponsor message: An agent’s job isn’t known until runtime, so permissions written in advance end up too tight or too loose. WorkOS Airlock derives them from the task instead. Each tool call is allowed, sent for approval, or denied based on the intent and your plain-English rules, and every verdict is logged. Request early access (opens in new tab).
I’ve written before about how November 2025 was an inflection point for coding agents (opens in new tab) - the point where Opus 4.5 and GPT-5.1 crossed a tipping point that meant their respective coding agents became reliable daily drivers for software engineers. I think we’ve reached a new inflection point in October 2026, and this time it’s for vibe coding computer games.
Claude Opus 5.5 in particular exhibits meaningful improvements in several areas needed to build a compelling game:
3D modeling
Music generation (see Scrimshaw Jukebox (opens in new tab))
Game design (!)
That last one is particularly important. Models have been able to create something that lookslike a game for quite a while now, as seen in my previous experiments (opens in new tab). The challenge has been getting to a game that’s actually fun to play.
Game design is a deep subject area. I won’t pretend to be well versed in it - I know enough to have respect for it as a craft. Creating a novel, compelling gameplay loop which challenges players at the right level and provides a satisfying learning curve is a fine art. I didn’t think the models could do it.
Then I tried telling Claude Opus 5.5 to “Make it a LOT more fun”… and it did (opens in new tab).
In the past few weeks I’ve vibe coded (in the classic sense of the term (opens in new tab) - no looking at the code at all) four games that I’ve genuinely enjoyed playing.
I attended Foo Camp (opens in new tab) in Berkeley over the weekend and met several people who were having similar experiences. Building games that play well is shockingly easy now. The new challenge is coming up with concepts for games that are novel and delightful and that wouldn’t exist without AI assistance.
I haven’t done an exhaustive study, but my current impression is that GPT-6 Astra isn’t quite there yet. It can absolutely build a game, but its sense of fun doesn’t match that of Opus 5.5. I expect OpenAI will get there by the end of the year.
Here are the four game projects that have convinced me that the models are now capable of producing fun games with very little guidance. All four are built in HTML and JavaScript and run entirely in the browser.
Tree Appreciator
The smallest game I found to be genuinely delightful is Tree Appreciator (opens in new tab). I used the regular Claude chat interface for this - it didn’t even need Claude Code.
I built this on a whim while we were driving along Skyline Boulevard (opens in new tab) looking at trees. My prompt was:
Build a three js game called "Tree appreciator" - it shows you two algorithmically generated trees and the game mechanics is about appreciating the differences between them. Think hard about how to make sure it is both fun and beautiful.
I’ve found that telling models to use three.js (opens in new tab)works really well. Claude doesn’t have its own image generation model but is capable of building full-color 3D models that look and feel excellent.
This game required no iteration or follow-up prompting at all - I got the game in a single shot. It gave me back a charming little mobile-friendly spot-the-difference game. You can play that here (opens in new tab). Here’s the chat transcript (opens in new tab) that built it.

It’s pleasingly relaxing. The graphics are fun, and collecting trees that you have completed in a “herbarium” provides a nice, cosy sense of accomplishment.
Emberwick
This was a more ambitious project that I again built using regular Claude chat. I started out by building an experimental prototype of an engine for a top-down fantasy RPG:
Build a demo game engine three.js which is a top down (but at an angle) RPG - the player gets to move through the world with one or two companions. Create a fantasy village setting that demonstrates walking around outside and then shows how when the player enters a building the wall between the player and the camera goes transparent so the user can see what is happening
Add some NPCs and plenty of furniture and different types of building some with an upstairs - be creative, make it look great
Here’s that first version (opens in new tab). It worked really well!

I was inspired to increase my ambitions:
Make it not so flat - the buildings are great but the landscape itself is completely flat at the moment, fix that
Add basements to two of the buildings with a tunnel system joining them below the village
Add the start of a rocky mountain on one side of the village containing a cave with a sleeping troll
Here’s that version (opens in new tab).

When that produced a good result, I decided to push it all the way:
Now turn this into an actual game - quadruple the size of the playable area, introduce fun game mechanics, add a plot that isn't too cliche, some twists, a magic system, make it really good
We’re back to prompts like “make it really good” here! Asking for a plot that “isn’t too cliche” seemed to work too - it’s a bit cliché, but still novel enough that I enjoyed following the story.
Unlike Tree Appreciator, this took quite a bit of additional playtesting and prompting to get to a finished version. This was mainly due to gameplay problems - things like a character not being in the right place to complete a quest because a different story element had caused them to move to another location.
Here’s that final game (opens in new tab). It has a full story that takes about 15 minutes to play through.

There’s even an experimental level editor if you want to drop in your own houses, furniture, and landscape features.
Once it was all working (and I’d iterated through some gameplay bugs), I played it through from start to finish and found myself emotionally affected by the ending! I’m somewhat embarrassed by this, because everything in this game - the graphics, the plot, the characters, the music, the dialog - came from the model. My creative input was pretty much just “it’s a fantasy village and there’s a troll asleep in a cave”.
Here’s the full shared Claude chat (opens in new tab) in which I built this game.
I also fed that same initial sequence of prompts through ChatGPT GPT-6 Pro. Here’s the transcript (opens in new tab) and the finished game (opens in new tab) for comparison. It looks great, but I don’t think it plays nearly as well.
Battle Drones
This is by far my most successful project, which I wrote about last week (opens in new tab). It’s a Command & Conquer-style Real-Time Strategy game where two robot armies (or four as of Saturday (opens in new tab)) build units, harvest scrap, and battle over territory.
This is also the project that convinced me that Opus 5.5 knows what “fun” is.
The first versions were built back in July using Claude Fable 5. It got me to a workable 2D Command & Conquer-style game, but it wasn’t great to play.
I prompted Opus 5.5 to “Make it a LOT more fun” and then later to “Port this game to three.js” and the game was transformed. There’s a blow-by-blow account (prompts included) in my write-up (opens in new tab).
Today, Battle Drones has 2-4 player multiplayer (via a vibe coded WebSockets relay server), medals, replays, seven maps, a random map generator, and a set of “mutators” that add variants of the rules.
It also lets different LLMs play against each other, using a mode where the game advances five seconds and then pauses to give different models time to interpret the new game state and line up their next set of commands. Here’s a replay of Claude Haiku 5.5 vs. GPT-6 Luna (opens in new tab):

Battle Drones is a particularly good example of Opus 5.5’s ability to create 3D models. This page lets you browse all of the models in the game (opens in new tab).
I released Battle Drones under the Apache 2.0 License last Tuesday. On Wednesday Gabriel Turpin released Panache (opens in new tab) (screenshots here (opens in new tab)), a fork of Battle Drones that reimagined the game for steampunk 1900s Belle Époque France, with new models and music and an animated intro sequence. Open source at work!
Pumpkin Farmer, aka Quarter Sun Cove
I live in Half Moon Bay, California (opens in new tab), home of the annual Half Moon Bay Art and Pumpkin Festival (opens in new tab), which includes a giant pumpkin weigh-off competition.
I decided to try building a game that wasn’t just a cheap imitation of something that already existed, so I set out to create a game about farming pumpkins, growing giant pumpkins, and handling the rush of the October pumpkin season.
I called it “Quarter Sun Cove”.
I’m still iterating on this project, but it’s shaping up quite nicely. It’s a cosy farming simulator where you spend the year tending to your giant pumpkin and planting out regular-sized pumpkins for sale in October, then sell pumpkins during pumpkin season and enter your giant pumpkin in the weigh-off.
Every character in it is a (vegetarian) animal. The mayor of the town is a pelican. You can be a pelican, skunk, raccoon, possum, beaver, coyote, fox, owl, sea otter, or harbor seal. Those species all later show up (accompanied by their children) to buy pumpkins from you.
It’s absurdly cute.

You can play the latest version here (opens in new tab). I’m not convinced by the game mechanics yet - it’s actually quite complicated: you have to decide when to plant pumpkins such that they will become ripe at the weekends in October with the most visitors.
Here’s the initial brainstorming session (opens in new tab), which resulted in this spec file (opens in new tab). Then I had Opus 5.5 Ultracode burn millions of tokens and nearly two days building it.
I told Claude to “surprise and delight the user frequently” and the result is so many little details and easter eggs. There are mischievous raccoons, an elephant seal that runs the weigh-off, harbor seals that roll their pumpkins back into the ocean, a wandering goat, and superstitions about growing giant pumpkins that sometimes come true.
This isn’t my best game yet - it’s not as fun to play as Battle Drones - but it represents the kind of game I want more of: weird, fun, uniquely personal - something that wouldn’t have been built in the before-times.
Four times as insulting
If you are offended by AI-generated art, AI-generated music, AI-generated writing, and AI-generated code, I have bad news for you: vibe coded games combine all of those at once.
The wider games community already has an aversion to AI-generated assets in games. This has been a growing issue over the past few years as tools like Midjourney have enabled developers to generate assets for their projects. This IGN story (opens in new tab) covering complaints about slop in Valve’s Steam Next Fest is a good recent example.
We now have games where everything - code, assets, dialog, and even the game design itself - can be outsourced to the models. And the results don’t suck!
Building a computer game used to be one of the most challenging projects in all of software development, combining a diverse range of skills and requiring intense focus and effort over many months or even years. And now here I am spitting out a playable multiplayer RTS by prompting on my phone!
I expect that, as we’ve already seen with programming, this will result in a split. Some players will refuse to have anything to do with games that were built in this way. Others may embrace this as opening up game development to a much wider audience. I lean in that direction!
I certainly won’t be entering any of my vibe coded games in traditional game jams or competitions - I don’t feel like I’ve earned that right. We’ll likely see new avenues emerge for vibe game developers to compare their projects.
What happens if someone actually puts the work in?
The thing I find both exciting and shameful about this is that I have got interesting results from so little creative input. The projects I’ve described here are loosely ordered by how much effort I’ve put into them. Not a single project represents more than four hours of my work (plus many more hours of Claude Code churning away by itself).
Now imagine what could be achieved by anyone who takes this seriously, invests significant creative time, applies better taste in game design, and then playtests and iterates on the result until it’s as good as they can make it.
I want to see games that wouldn’t have existed without these new tools.
You should build a game!
Building games in this way is so much fun. It’s the perfect application for vibe coding because it’s so low stakes: how much damage can you cause with a bug in a personal vibe coded game project?
(OK, you can do some damage… my attempt at audio-based multiplayer gave my wife Natalie a nasty headache (opens in new tab)!)
All of my games so far have been HTML and JavaScript using static hosting (generally GitHub Pages or Cloudflare Pages). Modern browsers - including mobile browsers - are incredibly capable. Frontier models already know libraries like three.js (opens in new tab) and Phaser (opens in new tab). I’m finding these mobile web games to be indistinguishable from the native experience, at least for the kinds of games I’m trying to build.
I suggest starting with a prompt like this:
Build a mobile-friendly three.js game where...
This works on both chatgpt.com (opens in new tab) and claude.ai (opens in new tab)- you don’t even need to fire up a full coding agent. As one last example, here’s “Build a mobile-friendly three.js game where a mouse has to hide from a cat” by Claude Opus 5.5 Extra (opens in new tab) and by GPT-6 Extra High (opens in new tab).
Switch to Codex or Claude Code once your project passes the proof-of-concept phase.
And if the game isn’t fun enough, add this:
Make it a LOT more fun
Link 2026-10-20 eMudhra Intermediate CA Compromise (opens in new tab):
This is very, very bad news:
The private keys of eight eMudhra intermediate CA certificates have been compromised. They chain to roots trusted by the Mozilla, Microsoft, Apple and Chrome root programs and by many downstream trust stores.
Any software that bundles a list of trusted certificates needs to be updated. This site is tracking software updates via this GitHub repository (opens in new tab) - Linux distros need to update their ca-certificates packages.
In Python world uv 0.13.4 (opens in new tab) and pip 26.2.2 (opens in new tab) and certifi 2026.10.19 (opens in new tab) have been released with upgraded certificate lists.
There’s a very informative thread (opens in new tab) about this on the official Python forum.
Link 2026-10-21 Panache — RTS Belle Époque pour mobile (opens in new tab):
Well this is delightful: I released Battle Drones (opens in new tab)yesterday under an Apache 2.0 License and there’s already a French language fork by Gabriel Turpin which reskins the game to take place in steampunk 1900s France and adds an animated intro!
Panache est un jeu de stratégie en temps réel pour mobile et navigateur, dans la France de la Belle Époque (vers 1900) : dirigeables, Fardiers à vapeur, Creusot cuirassés, automates en képi, Gargantua la forteresse marchante — et beaucoup de panache.
You can play Panache here (opens in new tab) - it’s worth clicking that link just to experience the new intro video.
So far it’s mostly just aesthetic updates as opposed to gameplay changes. The music has had a French twist added to it as well.
The new steampunk models are so cool!

Here’s a page with the original Battle Drones models (opens in new tab) and that same page with the new Panache alternatives (opens in new tab).
This is a comparison of the original and the new design for the Goliath:

Link 2026-10-21 Today’s PHP Security Release, and How We’re Strengthening PHP Security (opens in new tab):
If you’re running anything on PHP it’s vital you upgrade - today’s updates (across the entire PHP 8.x line) address two remote code execution holes, and there have been exploits circulating since last night, thanks to a leak in the coordinated disclosure process.
This post from the PHP Foundation explain what went so wrong:
On Tuesday, October 20th, at around 15:00 UTC, the two CVE IDs began circulating on online forums and social media. They came with a wrong release time and a wrong CVSS score of 10.0 (the actual score is 9.2). No technical details leaked. In response, the PHP project brought its pre-announcement forward and published it at 19:30 UTC (opens in new tab). It also moved the release from October 22nd, 14:00 UTC, to October 21st, 14:00 UTC […]
As a result of the leak and pre-announcement around 20:00 UTC, Calif, one of the security firms that had reported the issues mistakenly published a video. It showed their proof of concept working against a number of targets and revealed a few additional, though limited, details about the vulnerabilities. Copies of the deleted video started circulating on social media soon after. The video contributed to accelerated development of various PoCs (exploitation proof of concepts), which then increased circulation on October 21st.
This article (opens in new tab) from the team that discovered the original vulnerability includes a more detailed timeline of the original intended responsible disclosure:
August 19, 2026: Wiz Research discovers the first PHP vulnerability using Wiz Atlas, Gemini 4 Argon, and GPT-5.6 Sol.
August 20, 2026:Unauthenticated RCE is confirmed against Drupal.
August 21, 2026:Unauthenticated RCE is confirmed against WordPress.
August 24, 2026: Wiz Research reports the vulnerabilities to the PHP security team.
September 21, 2026: PHP acknowledges the reports and begins developing a coordinated fix.
October 21, 2026: Patched PHP releases become available.
October 21, 2026: Public disclosure.
Quote 2026-10-22
As fun as AI is, we built so much bad software over the last 30 years, and now the universe is punishing us for our sins.
News today from Anthropic:
We’re committed to keeping Agent Skills open, community-driven, and vendor-neutral. Today, we are donating the standard to the Agentic AI Foundation (AAIF) under the Linux Foundation, which we co-founded (opens in new tab) with Block and OpenAI last year, and to which we donated the Model Context Protocol (MCP).
I’m pleased to note I called this one last December (opens in new tab), when Anthropic first declared skills to be an “open standard”:
I wouldn’t be surprised to see this end up in the AAIF (opens in new tab), recently the new home of the MCP specification.
Fun side note: since my blog content is available to Claude via the datasette-mcp (opens in new tab) plugin I found that post by prompting Claude (opens in new tab) to “Use simonwillison.net MCP to find if I ever talked about how I want skills to be donated to a standards body“.
Link 2026-10-22 DE STAAT - FREEDOM (Official Music Video) (opens in new tab):
OK well this is a first for me… at 00:44 (opens in new tab) in this new music video by Dutch alternative rock band De Staat (opens in new tab) there’s a pelican riding a bicycle!
The visual effects are credited to Matties Grooten of Fake it or Leave it (opens in new tab).
Link 2026-10-23 Introducing Kimi K3.1 Pro (opens in new tab):
Kimi K3.1 Pro landed on the Kimi API today - it’s not yet open weights, but Moonshot promise “Full model weights will be released by Nov 4, 2026”.
They’re also offering a “Highspeed” version that’s 2-3x faster, at twice the price (except for input token cache hits, which are priced the same).
The US dollar pricing (opens in new tab) is \$2.00/million tokens for input and \$10/million for output - the same as GPT-6.1 Sol and half the price of Claude Opus 5.5.
Moonshot’s own benchmarks show Kimi as approximately level with Opus 5.5 and GPT-6 Astra - beating them on a few benchmarks, coming close on others.
Artificial Analysis scored Kimi at 55 (opens in new tab) - ahead of Claude Fable 5.1, GPT-6 Astra, and Gemini 4 Argon (all at 53) and behind only Claude Opus 5.5 (58).
This is the first time a (soon-to-be) open weight model has scored this highly against the frontier.
I tried it out via the Moonshot API (opens in new tab) using the llm openai endpoint (opens in new tab) command I added to LLM 0.32 (opens in new tab)back in August:
llm openai endpoint https://api.moonshot.ai/v1 --key kimi -m kimi-k3.1-pro "Generate an SVG of a pelican riding a bicycle" --responses -o reasoning_effort low > kimi-k3.1-pro-pelican-low.stdout.txt 2> kimi-k3.1-pro-pelican-low.stderr.txtllm openai endpoint can run prompts against any OpenAI-compatible endpoint but doesn’t log the results, hence the extra options to save stdout and stderr (the reasoning trace).
Here are the pelicans (opens in new tab) I got for Kimi K3.1 Pro on the three reasoning levels it supports - low, medium, and max. This is max:

For comparison, I ran fresh pelicans against Kimi K3 (opens in new tab) on those three reasoning levels.
Build an artifact where you open a photo and it rapidly (in a few seconds) paints a version of that photo using a canvas element and simulated paintbrush
See also my previous experiment (opens in new tab) getting Claude Fable to simulate a watercolor illustration with P5.js.

Quick Study uses Sobel edge detection (opens in new tab), with no external libraries beyond Google Fonts.
I added four player online mode to Battledrones (opens in new tab) - previous maps were limited to two.
Here’s the initial prompt I used:
Add a new map for a four player battle - four way rotational symmetry, up to four AI players, works with the WebSocket non-audio based multiplayer mode so up to four human players can join (any spare slots use AI)
Claude Opus 5.5 added a new map called “Compass Rose” and modified the WebSockets multiplayer network code to support up to four players for that map, joining via share links or QR codes.

The new teams use robots themed in purple and green, joining the existing blue and red designs. You can preview those colors in the updated model browser (opens in new tab).
Here’s a replay link (opens in new tab) to watch a four way AI battle with the “Goliath Armada” mutator turned on, where each side starts with four giant Goliath mech units.
I built this weird and very specific cropping tool - it lets you create a horizontal or vertical cut across an image, then slide the two sides relative to each other. Effectively it lets you crop out a section in the middle of an image.
I wanted this because I often use Tailor (opens in new tab) on my iPhone to stitch several screenshots together into lot long image, but sometimes I find myself wanting to crop out a section in the middle - to redact an irrelevant prompt from a transcript, for example.
webframe (opens in new tab) is a neat little project from Jeff Lindsay which lets you “run a web page like a program” - you point it at a URL or file and it executes it in a hidden headless web view and outputs console.log() to standard output and any exceptions to standard error.
It’s written in Go on top of the glaze (opens in new tab) library, which provides access to a system browser (”WKWebView on macOS, WebKitGTK on Linux, WebView2 on Windows”) so it doesn’t need to bundle its own browser engine.
It reminds me of my own shot-scraper javascript (opens in new tab) tool, albeit in a much smaller package that doesn’t depend on Playwright.
I had Claude Opus 5.5 put it through its paces (opens in new tab)and prepare a research report for me. Here’s the prompt I used:
Explore https://github.com/tractordev/webframe try running it and put it though its paces, build a few exploratory prototypes, then evaluate it as a potential sandboxing tool and as a tool for scraping web pages using the same patterns encouraged by the "shot-scraper JavaScript" command (see simonw/shot-scraper on GitHub, docs directory)
Quote 2026-10-26
Because big tech platforms essentially do not have customer support and make it impossible for their users to contact a human, many people experiencing run-of-the-mill tech problems have turned to ChatGPT. And, increasingly, ChatGPT is telling people that have normal tech support problems that they have discovered something journalistically notable and that 404 Media, specifically, can help them.
Jason Koebler (opens in new tab), ChatGPT Keeps Telling People 404 Media Can Solve Their Tech Support Problems
Link 2026-10-26 GPT-6.1 Terra (opens in new tab):
It’s always interesting to note which aspects of a new model are emphasized in the release announcement.
In the case of GPT-6.1 Terra, OpenAI went with visual reasoning and computer use:
We’re introducing GPT-6.1 Terra, a fast, efficient model that combines detailed visual reasoning and precise computer use alongside clearer, more natural writing. A significant step up from GPT‑5.6 Terra, it excels at the communication and computer-based tasks that fill the workday, from drafting proposals and interpreting technical drawings to filling out forms and editing videos.
Terra sits in the same position as Sonnet in the Anthropic model collection - not the cheapest or the most expensive, making it harder to decide when to use it.
Computer use is a good example of a task that benefits from a less expensive model, since you might put it to work on automated, repetitive tasks.
OpenAI’s Ted Sanders provided some useful advice in a comment (opens in new tab) on Hacker News:
In the case of GPT-6.1 Terra, I’d say Terra is probably better than Astra and Sol at technical communication, similar on vision and computer use (but much faster!), and a bit worse on most other things. For API developers, it’s a nice midrange option if you want something cheaper than Sol but a lot smarter than Luna (especially for vision / computer use / communication). For subscribers, it’s not a bombshell release - if you’re hitting usage limits, maybe it helps you go a bit further, and if you want clearer communication or faster computer use, it can be a nice option to select.
Here are the pelicans (opens in new tab) for the different reasoning levels. This pelican for “max” (opens in new tab) cost 11.3161 cents (opens in new tab) and took 4 minutes and 11 seconds:

Here’s a new comparison grid (opens in new tab) showing pelicans for every reasoning level of OpenAI’s current frontier lineup: GPT-6 Astra, GPT-6.1 Sol, GPT-6.1 Terra, and GPT-6 Luna.
GPT-6.1 Terra is priced at \$1/million input tokens and \$5/million output - almost half the price of GPT-5.6 Terra and GPT-6.1 Sol, and around 10x the price of GPT-6 Luna.
Link 2026-10-27 Game Boy Color on My Conference Badge (opens in new tab):
I’m at GitHub Universe this week and, similar to last year (opens in new tab), the conference badge is a full-blown color screen computer.
I’ve been hacking around with it again, and then I ran into with Steve Francia… who worked with Gemini to get a full NES emulator (opens in new tab) working on it, and then went a step further and deployed an emulator for both the Game Boy and the Game Boy Color.
Which means, if you can obtain the ROM, you can run The Legend of Zelda: Link’s Awakening (opens in new tab)on your conference badge!

A neat feature of the badge is that you can turn it upside down and then use game controller touch buttons that are built into the badge body.
Quote 2026-10-28
If your work does not benefit from current AI tooling, that is a finding, not a failing. Document why, share it with your community of peers, bring it to your manager, and work to find solutions. An engineer who can explain where AI does not yet help their work is demonstrating the judgement we are asking for.
Terk Terkowitz (opens in new tab), An update from Amazon engineering leadership on the role of the developer in the age of AI
If you find this newsletter useful, please consider sponsoring me via GitHub (opens in new tab). \$10/month and higher sponsors get a monthly newsletter with my summary of the most important trends of the past 30 days - here are previews from June (opens in new tab) and July (opens in new tab) and August (opens in new tab).
Thanks for reading Simon Willison’s Newsletter! Subscribe for free to receive new posts and support my work.
- For low-stakes browser-game prototypes, start in regular Claude or ChatGPT chat rather than a full coding agent: prompt for a “mobile-friendly three.js game,” build in HTML/JavaScript for static hosting, then move to Codex or Claude Code after the proof of concept; if the game is not fun enough, try “Make it a LOT more fun.”
- A concrete one-shot approach: ask for a specific core loop and aesthetic, then explicitly ask the model to think about fun and beauty. A prompt for a three.js spot-the-difference game using procedurally generated trees produced a mobile-friendly game in regular Claude chat with no follow-up prompts.
- For a larger game, build in stages—prototype the engine and world, add requested features, then expand into mechanics and plot—and playtest between stages. Emberwick needed repeated playtesting and prompts to fix quest problems caused by characters moving to the wrong location; the completed story took about 15 minutes to play.
- In Willison’s comparison, Claude Fable 5 made Battle Drones a workable but unfun 2D RTS; Opus 5.5’s “Make it a LOT more fun” prompt and subsequent port to three.js transformed it. The project grew to support 2–4-player multiplayer through a vibe-coded WebSockets relay, and its Apache 2.0 release was followed by Panache, a French steampunk-themed fork.
- Model caveat: Willison found GPT-6 Astra could build games but did not match Opus 5.5’s sense of fun; a GPT-6 Pro version of Emberwick looked good but, in his view, played less well.