<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: browser-challenge</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/browser-challenge.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2026-01-27T16:58:08+00:00</updated><author><name>Simon Willison</name></author><entry><title>One Human + One Agent = One Browser From Scratch</title><link href="https://simonwillison.net/2026/Jan/27/one-human-one-agent-one-browser/#atom-tag" rel="alternate"/><published>2026-01-27T16:58:08+00:00</published><updated>2026-01-27T16:58:08+00:00</updated><id>https://simonwillison.net/2026/Jan/27/one-human-one-agent-one-browser/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://emsh.cat/one-human-one-agent-one-browser/"&gt;One Human + One Agent = One Browser From Scratch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
embedding-shapes was &lt;a href="https://emsh.cat/cursor-implied-success-without-evidence/"&gt;so infuriated&lt;/a&gt; by the hype around Cursor's &lt;a href="https://simonwillison.net/2026/Jan/23/fastrender/"&gt;FastRender browser project&lt;/a&gt; - thousands of parallel agents producing ~1.6 million lines of Rust - that they were inspired to take a go at building a web browser using coding agents themselves.&lt;/p&gt;
&lt;p&gt;The result is &lt;a href="https://github.com/embedding-shapes/one-agent-one-browser"&gt;one-agent-one-browser&lt;/a&gt; and it's &lt;em&gt;really&lt;/em&gt; impressive. Over three days they drove a single Codex CLI agent to build 20,000 lines of Rust that successfully renders HTML+CSS with no Rust crate dependencies at all - though it does (reasonably) use Windows, macOS and Linux system frameworks for image and text rendering.&lt;/p&gt;
&lt;p&gt;I installed the &lt;a href="https://github.com/embedding-shapes/one-agent-one-browser/releases/tag/0.1.0"&gt;1MB macOS binary release&lt;/a&gt; and ran it against my blog:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod 755 ~/Downloads/one-agent-one-browser-macOS-ARM64 
~/Downloads/one-agent-one-browser-macOS-ARM64 https://simonwillison.net/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here's the result:&lt;/p&gt;
&lt;p&gt;&lt;img alt="My blog rendered in a window. Everything is in the right place, the CSS gradients look good, the feed subscribe SVG icon is rendered correctly but there's a missing PNG image." src="https://static.simonwillison.net/static/2026/one-agent-simonwillison.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;It even rendered my SVG feed subscription icon! A PNG image is missing from the page, which looks like an intermittent bug (there's code to render PNGs).&lt;/p&gt;
&lt;p&gt;The code is pretty readable too - here's &lt;a href="https://github.com/embedding-shapes/one-agent-one-browser/blob/0.1.0/src/layout/flex.rs"&gt;the flexbox implementation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I had thought that "build a web browser" was the ideal prompt to really stretch the capabilities of coding agents - and that it would take sophisticated multi-agent harnesses (as seen in the Cursor project) and millions of lines of code to achieve.&lt;/p&gt;
&lt;p&gt;Turns out one agent driven by a talented engineer, three days and 20,000 lines of Rust is enough to get a very solid basic renderer working!&lt;/p&gt;
&lt;p&gt;I'm going to upgrade my &lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#3-years-someone-will-build-a-new-browser-using-mainly-ai-assisted-coding-and-it-won-t-even-be-a-surprise"&gt;prediction for 2029&lt;/a&gt;: I think we're going to get a &lt;em&gt;production-grade&lt;/em&gt; web browser built by a small team using AI assistance by then.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=46779522"&gt;Show Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/predictions"&gt;predictions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rust"&gt;rust&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/codex-cli"&gt;codex-cli&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browser-challenge"&gt;browser-challenge&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="predictions"/><category term="ai"/><category term="rust"/><category term="generative-ai"/><category term="llms"/><category term="ai-assisted-programming"/><category term="coding-agents"/><category term="codex-cli"/><category term="browser-challenge"/></entry><entry><title>Wilson Lin on FastRender: a browser built by thousands of parallel agents</title><link href="https://simonwillison.net/2026/Jan/23/fastrender/#atom-tag" rel="alternate"/><published>2026-01-23T21:26:10+00:00</published><updated>2026-01-23T21:26:10+00:00</updated><id>https://simonwillison.net/2026/Jan/23/fastrender/#atom-tag</id><summary type="html">
    &lt;p&gt;Last week Cursor published &lt;a href="https://cursor.com/blog/scaling-agents"&gt;Scaling long-running autonomous coding&lt;/a&gt;, an article describing their research efforts into coordinating large numbers of autonomous coding agents. One of the projects mentioned in the article was &lt;a href="https://github.com/wilsonzlin/fastrender"&gt;FastRender&lt;/a&gt;, a web browser they built from scratch using their agent swarms. I wanted to learn more so I asked Wilson Lin, the engineer behind FastRender, if we could record a conversation about the project. That 47 minute video is &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4"&gt;now available on YouTube&lt;/a&gt;. I've included some of the highlights below.&lt;/p&gt;

&lt;iframe style="margin-top: 1.5em; margin-bottom: 1.5em;" width="560" height="315" src="https://www.youtube-nocookie.com/embed/bKrAcTf2pL4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="allowfullscreen"&gt; &lt;/iframe&gt;

&lt;p&gt;See my &lt;a href="https://simonwillison.net/2026/Jan/19/scaling-long-running-autonomous-coding/"&gt;previous post&lt;/a&gt; for my notes and screenshots from trying out FastRender myself.&lt;/p&gt;


&lt;h4 id="what-fastrender-can-do-right-now"&gt;What FastRender can do right now&lt;/h4&gt;
&lt;p&gt;We started the conversation with a demo of FastRender loading different pages (&lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=195s"&gt;03:15&lt;/a&gt;). The JavaScript engine isn't working yet so we instead loaded &lt;a href="https://github.com/wilsonzlin/fastrender"&gt;github.com/wilsonzlin/fastrender&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/"&gt;Wikipedia&lt;/a&gt; and &lt;a href="https://cnn.com"&gt;CNN&lt;/a&gt; - all of which were usable, if a little slow to display.&lt;/p&gt;
&lt;p&gt;JavaScript had been disabled by one of the agents, which decided to add a feature flag! &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=242s"&gt;04:02&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;JavaScript is disabled right now. The agents made a decision as they were currently still implementing the engine and making progress towards other parts... they decided to turn it off or put it behind a feature flag, technically.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="from-side-project-to-core-research"&gt;From side-project to core research&lt;/h4&gt;
&lt;p&gt;Wilson started what become FastRender as a personal side-project to explore the capabilities of the latest generation of frontier models - Claude Opus 4.5, GPT-5.1, and GPT-5.2. &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=56s"&gt;00:56&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;FastRender was a personal project of mine from, I'd say, November. It was an experiment to see how well frontier models like Opus 4.5 and back then GPT-5.1 could do with much more complex, difficult tasks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A browser rendering engine was the ideal choice for this, because it's both &lt;em&gt;extremely&lt;/em&gt; ambitious and complex but also well specified. And you can visually see how well it's working! &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=117s"&gt;01:57&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As that experiment progressed, I was seeing better and better results from single agents that were able to actually make good progress on this project. And at that point, I wanted to see, well, what's the next level? How do I push this even further?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once it became clear that this was an opportunity to try multiple agents working together it graduated to an official Cursor research project, and available resources were amplified.&lt;/p&gt;
&lt;p&gt;The goal of FastRender was never to build a browser to compete with the likes of Chrome. &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=2512s"&gt;41:52&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We never intended for it to be a production software or usable, but we wanted to observe behaviors of this harness of multiple agents, to see how they could work at scale.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The great thing about a browser is that it has such a large scope that it can keep serving experiments in this space for many years to come. JavaScript, then WebAssembly, then WebGPU... it could take many years to run out of new challenges for the agents to tackle.&lt;/p&gt;
&lt;h4 id="running-thousands-of-agents-at-once"&gt;Running thousands of agents at once&lt;/h4&gt;
&lt;p&gt;The most interesting thing about FastRender is the way the project used multiple agents working in parallel to build different parts of the browser. I asked how many agents were running at once: &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=324s"&gt;05:24&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;At the peak, when we had the stable system running for one week continuously, there were approximately 2,000 agents running concurrently at one time. And they were making, I believe, thousands of commits per hour.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The project has &lt;a href="https://github.com/wilsonzlin/fastrender/commits/main/"&gt;nearly 30,000 commits&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;How do you run 2,000 agents at once? They used &lt;em&gt;really big machines&lt;/em&gt;. &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=356s"&gt;05:56&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The simple approach we took with the infrastructure was to have a large machine run one of these multi-agent harnesses. Each machine had ample resources, and it would run about 300 agents concurrently on each. This was able to scale and run reasonably well, as agents spend a lot of time thinking, and not just running tools.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At this point we switched to a live demo of the harness running on one of those big machines (&lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=392s"&gt;06:32&lt;/a&gt;). The agents are arranged in a tree structure, with planning agents firing up tasks and worker agents then carrying them out. &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=434s"&gt;07:14&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2026/wilson-lin-agents.jpg" alt="Terminal window showing a tmux session running &amp;quot;grind-swarm&amp;quot; task manager with RUNNING status. Header shows &amp;quot;grind-swarm – 45:54:15&amp;quot; with stats &amp;quot;planners: 9 (0 done) | tasks: 111 working, 0 pending, 232 done | 12900.9M↑ 514.1M↓&amp;quot;. Task list includes: p1 Root (main), p2 CSS selector matching performance + bloom filter integration, p3 CSS stylesheet parsing semantics &amp;amp; at-rule handling, p4 Custom properties (@property) + var() resolution + incremental recompute/invalidation, p37 CSS at-rule artifact integration, p50 Selector engine correctness &amp;amp; spec coverage, p51 Computed-value + property coverage across css-cascade, p105 Style sharing / computed style caching in fastrender-style, p289 CSS cascade layers (@layer) global ordering, w5 Fix workspace lockfile drift, w7 Implement computed-style snapshot sharing, w15 Fix css-properties namespace handling, w17 (Stretch) Enable bloom fast-reject in HTML quirks mode, w18 Refactor css-properties stylesheet parsing. Activity log shows shell commands including cargo check, git status, git push origin main, and various test runs. Bottom status bar shows &amp;quot;grind-css0:target/release/grind-swarm*&amp;quot; and &amp;quot;streamyard.com is sharing your screen&amp;quot; notification with timestamp &amp;quot;12:02 22-Jan-26&amp;quot;." style="max-width: 100%;" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This cluster of agents is working towards building out the CSS aspects of the browser, whether that's parsing, selector engine, those features. We managed to push this even further by splitting out the browser project into multiple instructions or work streams and have each one run one of these harnesses on their own machine, so that was able to further parallelize and increase throughput.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But don't all of these agents working on the same codebase result in a huge amount of merge conflicts? Apparently not: &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=501s"&gt;08:21&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We've noticed that most commits do not have merge conflicts. The reason is the harness itself is able to quite effectively split out and divide the scope and tasks such that it tries to minimize the amount of overlap of work. That's also reflected in the code structure—commits will be made at various times and they don't tend to touch each other at the same time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This appears to be the key trick for unlocking benefits from parallel agents: if planning agents do a good enough job of breaking up the work into non-overlapping chunks you can bring hundreds or even thousands of agents to bear on a problem at once.&lt;/p&gt;
&lt;p&gt;Surprisingly, Wilson found that GPT-5.1 and GPT-5.2 were a better fit for this work than the coding specialist GPT-5.1-Codex: &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=1048s"&gt;17:28&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Some initial findings were that the instructions here were more expansive than merely coding. For example, how to operate and interact within a harness, or how to operate autonomously without interacting with the user or having a lot of user feedback. These kinds of instructions we found worked better with the general models.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I asked what the longest they've seen this system run without human intervention: &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=1108s"&gt;18:28&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So this system, once you give an instruction, there's actually no way to steer it, you can't prompt it, you're going to adjust how it goes. The only thing you can do is stop it. So our longest run, all the runs are basically autonomous. We don't alter the trajectory while executing. [...]&lt;/p&gt;
&lt;p&gt;And so the longest at the time of the post was about a week and that's pretty close to the longest. Of course the research project itself was only about three weeks so you know we probably can go longer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="specifications-and-feedback-loops"&gt;Specifications and feedback loops&lt;/h4&gt;
&lt;p&gt;An interesting aspect of this project design is feedback loops. For agents to work autonomously for long periods of time they need as much useful context about the problem they are solving as possible, combined with effective feedback loops to help them make decisions.&lt;/p&gt;
&lt;p&gt;The FastRender repo &lt;a href="https://github.com/wilsonzlin/fastrender/tree/19bf1036105d4eeb8bf3330678b7cb11c1490bdc/specs"&gt;uses git submodules to include relevant specifications&lt;/a&gt;, including csswg-drafts, tc39-ecma262 for JavaScript, whatwg-dom, whatwg-html and more. &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=846s"&gt;14:06&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Feedback loops to the system are very important. Agents are working for very long periods continuously, and without guardrails and feedback to know whether what they're doing is right or wrong it can have a big impact over a long rollout. Specs are definitely an important part—you can see lots of comments in the code base that AI wrote referring specifically to specs that they found in the specs submodules.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GPT-5.2 is a vision-capable model, and part of the feedback loop for FastRender included taking screenshots of the rendering results and feeding those back into the model:
&lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=983s"&gt;16:23&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the earlier evolution of this project, when it was just doing the static renderings of screenshots, this was definitely a very explicit thing we taught it to do. And these models are visual models, so they do have that ability. We have progress indicators to tell it to compare the diff against a golden sample.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The strictness of the Rust compiler helped provide a feedback loop as well: &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=952s"&gt;15:52&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The nice thing about Rust is you can get a lot of verification just from compilation, and that is not as available in other languages.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="the-agents-chose-the-dependencies"&gt;The agents chose the dependencies&lt;/h4&gt;
&lt;p&gt;We talked about the &lt;a href="https://github.com/wilsonzlin/fastrender/blob/19bf1036105d4eeb8bf3330678b7cb11c1490bdc/Cargo.toml"&gt;Cargo.toml dependencies&lt;/a&gt; that the project had accumulated, almost all of which had been selected by the agents themselves.&lt;/p&gt;
&lt;p&gt;Some of these, like &lt;a href="https://skia.org/"&gt;Skia&lt;/a&gt; for 2D graphics rendering or &lt;a href="https://github.com/harfbuzz/harfbuzz"&gt;HarfBuzz&lt;/a&gt; for text shaping, were obvious choices. Others such as &lt;a href="https://github.com/DioxusLabs/taffy"&gt;Taffy&lt;/a&gt; felt like they might go against the from-scratch goals of the project, since that library implements CSS flexbox and grid layout algorithms directly. This was not an intended outcome. &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=1673s"&gt;27:53&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Similarly these are dependencies that the agent picked to use for small parts of the engine and perhaps should have actually implemented itself. I think this reflects on the importance of the instructions, because I actually never encoded specifically the level of dependencies we should be implementing ourselves.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The agents vendored in Taffy and &lt;a href="https://github.com/wilsonzlin/fastrender/commits/main/vendor/taffy"&gt;applied a stream of changes&lt;/a&gt; to that vendored copy.
&lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=1878s"&gt;31:18&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It's currently vendored. And as the agents work on it, they do make changes to it. This was actually an artifact from the very early days of the project before it was a fully fledged browser... it's implementing things like the flex and grid layers, but there are other layout methods like inline, block, and table, and in our new experiment, we're removing that completely.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inclusion of QuickJS despite the presence of a home-grown ecma-rs implementation has a fun origin story:
&lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=2115s"&gt;35:15&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I believe it mentioned that it pulled in the QuickJS because it knew that other agents were working on the JavaScript engine, and it needed to unblock itself quickly. [...]&lt;/p&gt;
&lt;p&gt;It was like, eventually, once that's finished, let's remove it and replace with the proper engine.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I love how similar this is to the dynamics of a large-scale human engineering team, where you could absolutely see one engineer getting frustrated at another team not having delivered yet and unblocking themselves by pulling in a third-party library.&lt;/p&gt;
&lt;h4 id="intermittent-errors-are-ok-actually"&gt;Intermittent errors are OK, actually&lt;/h4&gt;
&lt;p&gt;Here's something I found really surprising: the agents were allowed to introduce small errors into the codebase as they worked! &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=2382s"&gt;39:42&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One of the trade-offs was: if you wanted every single commit to be a hundred percent perfect, make sure it can always compile every time, that might be a synchronization bottleneck. [...]&lt;/p&gt;
&lt;p&gt;Especially as you break up the system into more modularized aspects, you can see that errors get introduced, but small errors, right? An API change or some syntax error, but then they get fixed really quickly after a few commits. So there's a little bit of slack in the system to allow these temporary errors so that the overall system can continue to make progress at a really high throughput. [...]&lt;/p&gt;
&lt;p&gt;People may say, well, that's not correct code. But it's not that the errors are accumulating. It's a stable rate of errors. [...] That seems like a worthwhile trade-off.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you're going to have thousands of agents working in parallel optimizing for throughput over correctness turns out to be a strategy worth exploring.&lt;/p&gt;
&lt;h4 id="a-single-engineer-plus-a-swarm-of-agents-in-january-2026"&gt;A single engineer plus a swarm of agents in January 2026&lt;/h4&gt;
&lt;p&gt;The thing I find most interesting about FastRender is how it demonstrates the extreme edge of what a single engineer can achieve in early 2026 with the assistance of a swarm of agents.&lt;/p&gt;
&lt;p&gt;FastRender may not be a production-ready browser, but it represents over a million lines of Rust code, written in a few weeks, that can already render real web pages to a usable degree.&lt;/p&gt;
&lt;p&gt;A browser really is the ideal research project to experiment with this new, weirdly shaped form of software engineering.&lt;/p&gt;
&lt;p&gt;I asked Wilson how much mental effort he had invested in browser rendering compared to agent co-ordination. &lt;a href="https://www.youtube.com/watch?v=bKrAcTf2pL4&amp;amp;t=694s"&gt;11:34&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The browser and this project were co-developed and very symbiotic, only because the browser was a very useful objective for us to measure and iterate the progress of the harness. The goal was to iterate on and research the multi-agent harness—the browser was just the research example or objective.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;FastRender is effectively using a full browser rendering engine as a "hello world" exercise for multi-agent coordination!&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/youtube"&gt;youtube&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rust"&gt;rust&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cursor"&gt;cursor&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/parallel-agents"&gt;parallel-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browser-challenge"&gt;browser-challenge&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="browsers"/><category term="youtube"/><category term="ai"/><category term="rust"/><category term="generative-ai"/><category term="llms"/><category term="ai-assisted-programming"/><category term="coding-agents"/><category term="cursor"/><category term="parallel-agents"/><category term="browser-challenge"/></entry><entry><title>Scaling long-running autonomous coding</title><link href="https://simonwillison.net/2026/Jan/19/scaling-long-running-autonomous-coding/#atom-tag" rel="alternate"/><published>2026-01-19T05:12:51+00:00</published><updated>2026-01-19T05:12:51+00:00</updated><id>https://simonwillison.net/2026/Jan/19/scaling-long-running-autonomous-coding/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://cursor.com/blog/scaling-agents"&gt;Scaling long-running autonomous coding&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Wilson Lin at Cursor has been doing some experiments to see how far you can push a large fleet of "autonomous" coding agents:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This post describes what we've learned from running hundreds of concurrent agents on a single project, coordinating their work, and watching them write over a million lines of code and trillions of tokens.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;They ended up running planners and sub-planners to create tasks, then having workers execute on those tasks - similar to how Claude Code uses sub-agents. Each cycle ended with a judge agent deciding if the project was completed or not.&lt;/p&gt;
&lt;p&gt;In my predictions for 2026 &lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#3-years-someone-will-build-a-new-browser-using-mainly-ai-assisted-coding-and-it-won-t-even-be-a-surprise"&gt;the other day&lt;/a&gt; I said that by 2029:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think somebody will have built a full web browser mostly using AI assistance, and it won’t even be surprising. Rolling a new web browser is one of the most complicated software projects I can imagine[...] the cheat code is the conformance suites. If there are existing tests that it’ll get so much easier.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I may have been off by three years, because Cursor chose "building a web browser from scratch" as their test case for their agent swarm approach:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To test this system, we pointed it at an ambitious goal: building a web browser from scratch. The agents ran for close to a week, writing over 1 million lines of code across 1,000 files. You can explore &lt;a href="https://github.com/wilsonzlin/fastrender"&gt;the source code on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But how well did they do? Their initial announcement a couple of days ago was met with &lt;a href="https://embedding-shapes.github.io/cursor-implied-success-without-evidence/"&gt;unsurprising skepticism&lt;/a&gt;, especially when it became apparent that their GitHub Actions CI was failing and there were no build instructions in the repo.&lt;/p&gt;
&lt;p&gt;It looks like they addressed that within the past 24 hours. The &lt;a href="https://github.com/wilsonzlin/fastrender/blob/main/README.md#build-requirements"&gt;latest README&lt;/a&gt; includes build instructions which I followed on macOS like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /tmp
git clone https://github.com/wilsonzlin/fastrender
cd fastrender
git submodule update --init vendor/ecma-rs
cargo run --release --features browser_ui --bin browser
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This got me a working browser window! Here are screenshots I took of google.com and my own website:&lt;/p&gt;
&lt;p&gt;&lt;img alt="The browser chrome is neat but has a garbled tab name at the top. The Google homepage looks mostly correct but the buttons are not styled correctly and the Google Search one has a huge plus icon floating near it." src="https://static.simonwillison.net/static/2026/cursor-google.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="My blog looks mostly correct, but the right closing quotation mark on a quotation (which is implemented as a background image on the final paragraph) is displayed incorrectly multiple times." src="https://static.simonwillison.net/static/2026/cursor-simonwillison.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Honestly those are very impressive! You can tell they're not just wrapping an existing rendering engine because of those very obvious rendering glitches, but the pages are legible and look mostly correct.&lt;/p&gt;
&lt;p&gt;The FastRender repo even uses Git submodules &lt;a href="https://github.com/wilsonzlin/fastrender/tree/main/specs"&gt;to include various WhatWG and CSS-WG specifications&lt;/a&gt; in the repo, which is a smart way to make sure the agents have access to the reference materials that they might need.&lt;/p&gt;
&lt;p&gt;This is the second attempt I've seen at building a full web browser using AI-assisted coding in the past two weeks - the first was &lt;a href="https://github.com/hiwavebrowser/hiwave"&gt;HiWave browser&lt;/a&gt;, a new browser engine in Rust first announced &lt;a href="https://www.reddit.com/r/Anthropic/comments/1q4xfm0/over_christmas_break_i_wrote_a_fully_functional/"&gt;in this Reddit thread&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When I made my 2029 prediction this is more-or-less the quality of result I had in mind. I don't think we'll see projects of this nature compete with Chrome or Firefox or WebKit any time soon but I have to admit I'm very surprised to see something this capable emerge so quickly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 23rd January 2026&lt;/strong&gt;: I recorded a 47 minute conversation with Wilson about this project and published it on YouTube. Here's &lt;a href="https://simonwillison.net/2026/Jan/23/fastrender/"&gt;the video and accompanying highlights&lt;/a&gt;.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rust"&gt;rust&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cursor"&gt;cursor&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/parallel-agents"&gt;parallel-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/conformance-suites"&gt;conformance-suites&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browser-challenge"&gt;browser-challenge&lt;/a&gt;&lt;/p&gt;



</summary><category term="browsers"/><category term="ai"/><category term="rust"/><category term="generative-ai"/><category term="llms"/><category term="ai-assisted-programming"/><category term="coding-agents"/><category term="cursor"/><category term="parallel-agents"/><category term="conformance-suites"/><category term="browser-challenge"/></entry><entry><title>LLM predictions for 2026, shared with Oxide and Friends</title><link href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#atom-tag" rel="alternate"/><published>2026-01-08T19:42:13+00:00</published><updated>2026-01-08T19:42:13+00:00</updated><id>https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#atom-tag</id><summary type="html">
    &lt;p&gt;I joined a recording of the Oxide and Friends podcast on Tuesday to talk about 1, 3 and 6 year predictions for the tech industry. This is my second appearance on their annual predictions episode, you can see &lt;a href="https://simonwillison.net/2025/Jan/10/ai-predictions/"&gt;my predictions from January 2025 here&lt;/a&gt;. Here's &lt;a href="https://oxide-and-friends.transistor.fm/episodes/predictions-2026"&gt;the page for this year's episode&lt;/a&gt;, with options to listen in all of your favorite podcast apps or &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8"&gt;directly on YouTube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bryan Cantrill started the episode by declaring that he's never been so unsure about what's coming in the next year. I share that uncertainty - the significant advances in coding agents just in the last two months have left me certain that things will change significantly, but unclear as to what those changes will be.&lt;/p&gt;
&lt;p&gt;Here are the predictions I shared in the episode.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#1-year-it-will-become-undeniable-that-llms-write-good-code"&gt;1 year: It will become undeniable that LLMs write good code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#1-year-we-re-finally-going-to-solve-sandboxing"&gt;1 year: We're finally going to solve sandboxing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#1-year-a-challenger-disaster-for-coding-agent-security"&gt;1 year: A "Challenger disaster" for coding agent security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#1-year-k-k-p-parrots-will-have-an-outstanding-breeding-season"&gt;1 year: Kākāpō parrots will have an outstanding breeding season&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#3-years-the-coding-agents-jevons-paradox-for-software-engineering-will-resolve-one-way-or-the-other"&gt;3 years: the coding agents Jevons paradox for software engineering will resolve, one way or the other&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#3-years-someone-will-build-a-new-browser-using-mainly-ai-assisted-coding-and-it-won-t-even-be-a-surprise"&gt;3 years: Someone will build a new browser using mainly AI-assisted coding and it won't even be a surprise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/#6-years-typing-code-by-hand-will-go-the-way-of-punch-cards"&gt;6 years: Typing code by hand will go the way of punch cards&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="1-year-it-will-become-undeniable-that-llms-write-good-code"&gt;1 year: It will become undeniable that LLMs write good code &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8&amp;amp;t=1167s" class="predictions-video-link"&gt;▶ 19:27&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;I think that there are still people out there who are convinced that LLMs cannot write good code. Those people are in for a very nasty shock in 2026. I do not think it will be possible to get to the end of even the next three months while still holding on to that idea that the code they write is all junk and it's it's likely any decent human programmer will write better code than they will.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In 2023, saying that LLMs write garbage code was entirely correct. For most of 2024 that stayed true. In 2025 that changed, but you could be forgiven for continuing to hold out. In 2026 the quality of LLM-generated code will become impossible to deny.&lt;/p&gt;
&lt;p&gt;I base this on my own experience - I've spent more time exploring &lt;a href="https://simonwillison.net/tags/ai-assisted-programming/"&gt;AI-assisted programming&lt;/a&gt; than most.&lt;/p&gt;
&lt;p&gt;The key change in 2025 (see &lt;a href="https://simonwillison.net/2025/Dec/31/the-year-in-llms/#the-year-of-reasoning-"&gt;my overview for the year&lt;/a&gt;) was the introduction of "reasoning models" trained specifically against code using Reinforcement Learning. The major labs spent a full year competing with each other on who could get the best code capabilities from their models, and that problem turns out to be perfectly attuned to RL since code challenges come with built-in verifiable success conditions.&lt;/p&gt;
&lt;p&gt;Since Claude Opus 4.5 and GPT-5.2 came out in November and December respectively the amount of code I've written by hand has dropped to a single digit percentage of my overall output. The same is true for many other expert programmers I know.&lt;/p&gt;
&lt;p&gt;At this point if you continue to argue that LLMs write useless code you're damaging your own credibility.&lt;/p&gt;
&lt;h4 id="1-year-we-re-finally-going-to-solve-sandboxing"&gt;1 year: We're finally going to solve sandboxing &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8&amp;amp;t=1205s" class="predictions-video-link"&gt;▶ 20:05&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;I think this year is the year we're going to solve sandboxing. I want to run code other people have written on my computing devices without it destroying my computing devices if it's malicious or has bugs. [...] It's crazy that it's 2026 and I still &lt;code&gt;pip install&lt;/code&gt; random code and then execute it in a way that it can steal all of my data and delete all my files. [...] I don't want to run a piece of code on any of my devices that somebody else wrote outside of sandbox ever again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This isn't just about LLMs, but it becomes even more important now there are so many more people writing code often without knowing what they're doing. Sandboxing is also a key part of the battle against prompt injection.&lt;/p&gt;
&lt;p&gt;We have a &lt;em&gt;lot&lt;/em&gt; of promising technologies in play already for this - containers and WebAssembly being the two I'm most optimistic about. There's real commercial value involved in solving this problem. The pieces are there, what's needed is UX work to reduce the friction in using them productively and securely.&lt;/p&gt;
&lt;h4 id="1-year-a-challenger-disaster-for-coding-agent-security"&gt;1 year: A "Challenger disaster" for coding agent security &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8&amp;amp;t=1281s" class="predictions-video-link"&gt;▶ 21:21&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;I think we're due a Challenger disaster with respect to coding agent security[...] I think so many people, myself included, are running these coding agents practically as root, right? We're letting them do all of this stuff. And every time I do it, my computer doesn't get wiped. I'm like, "oh, it's fine". [...] The worst version of this is the worm - a prompt injection worm which infects people's computers and adds itself to the Python or NPM packages that person has access to.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I used this as an opportunity to promote my favourite recent essay about AI security, &lt;a href="https://embracethered.com/blog/posts/2025/the-normalization-of-deviance-in-ai/"&gt;the Normalization of Deviance in AI&lt;/a&gt; by Johann Rehberger.&lt;/p&gt;
&lt;p&gt;The Normalization of Deviance describes the phenomenon where people and organizations get used to operating in an unsafe manner because nothing bad has happened to them yet, which can result in enormous problems (like the 1986 Challenger disaster) when their luck runs out.&lt;/p&gt;
&lt;p&gt;Every six months I predict that a headline-grabbing prompt injection attack is coming soon, and every six months it doesn't happen. This is my most recent version of that prediction!&lt;/p&gt;
&lt;h4 id="1-year-k-k-p-parrots-will-have-an-outstanding-breeding-season"&gt;1 year: Kākāpō parrots will have an outstanding breeding season &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8&amp;amp;t=3006s" class="predictions-video-link"&gt;▶ 50:06&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;(I dropped this one to lighten the mood after a discussion of the deep sense of existential dread that many programmers are feeling right now!)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think that Kākāpō parrots in New Zealand are going to have an outstanding breeding season. The reason I think this is that the Rimu trees are in fruit right now. There's only 250 of them,  and they only breed if the Rimu trees have a good fruiting. The Rimu trees have been terrible since 2019, but this year the Rimu trees were all blooming. There are researchers saying that all 87 females of breeding age might lay an egg. And for a species with only 250 remaining parrots that's great news.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(I just &lt;a href="https://en.wikipedia.org/wiki/K%C4%81k%C4%81p%C5%8D#Population_timeline"&gt;checked Wikipedia&lt;/a&gt; and I was right with the parrot numbers but wrong about the last good breeding season, apparently 2022 was a good year too.)&lt;/p&gt;
&lt;p&gt;In a year with precious little in the form of good news I am utterly delighted to share this story. Here's more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://blog.doc.govt.nz/2025/06/27/kakapo-breeding-season-2026/"&gt;Kākāpō breeding season 2026&lt;/a&gt; introduction from the Department of Conservation from June 2025 .&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.auckland.ac.nz/en/news/2025/12/03/bumper-breeding-season-for-kakapo-on-the-cards.html"&gt;Bumper breeding season for kākāpō on the cards&lt;/a&gt; - 3rd December 2025, University of Auckland.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don't often use AI-generated images on this blog, but the Kākāpō image the Oxide team created for this episode is just &lt;em&gt;perfect&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2026/oxide-kakapo.jpg" alt="A beautiful green Kākāpō surrounded by candles gazes into a crystal ball" style="max-width: 100%;" /&gt;&lt;/p&gt;

&lt;h4 id="3-years-the-coding-agents-jevons-paradox-for-software-engineering-will-resolve-one-way-or-the-other"&gt;3 years: the coding agents Jevons paradox for software engineering will resolve, one way or the other &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8&amp;amp;t=3277s" class="predictions-video-link"&gt;▶ 54:37&lt;/a&gt;&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;We will find out if the &lt;a href="https://en.wikipedia.org/wiki/Jevons_paradox"&gt;Jevons paradox&lt;/a&gt; saves our careers or not. This is a big question that anyone who's a software engineer has right now: we are driving the cost of actually producing working code down to a fraction of what it used to cost. Does that mean that our careers are completely devalued and we all have to learn to live on a tenth of our incomes, or does it mean that the demand for software, for custom software goes up by a factor of 10 and now our skills are even &lt;em&gt;more&lt;/em&gt; valuable because you can hire me and I can build you 10 times the software I used to be able to? I think by three years we will know for sure which way that one went.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The quote says it all. There are two ways this coding agents thing could go: it could turn out software engineering skills are devalued, or it could turn out we're more valuable and effective than ever before.&lt;/p&gt;
&lt;p&gt;I'm crossing my fingers for the latter! So far it feels to me like it's working out that way.&lt;/p&gt;

&lt;h4 id="3-years-someone-will-build-a-new-browser-using-mainly-ai-assisted-coding-and-it-won-t-even-be-a-surprise"&gt;3 years: Someone will build a new browser using mainly AI-assisted coding and it won't even be a surprise &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8&amp;amp;t=3913s" class="predictions-video-link"&gt;▶ 65:13&lt;/a&gt;&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;I think somebody will have built a full web browser mostly using AI assistance, and it won't even be surprising. Rolling a new web browser is one of the most complicated software projects I can imagine[...] the cheat code is the conformance suites. If there are existing tests that it'll get so much easier.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A common complaint today from AI coding skeptics is that LLMs are fine for toy projects but can't be used for anything large and serious.&lt;/p&gt;
&lt;p&gt;I think within 3 years that will be comprehensively proven incorrect, to the point that it won't even be controversial anymore.&lt;/p&gt;
&lt;p&gt;I picked a web browser here because so much of the work building a browser involves writing code that has to conform to an enormous and daunting selection of both formal tests and informal websites-in-the-wild.&lt;/p&gt;
&lt;p&gt;Coding agents are &lt;em&gt;really good&lt;/em&gt; at tasks where you can define a concrete goal and then set them to work iterating in that direction.&lt;/p&gt;
&lt;p&gt;A web browser is the most ambitious project I can think of that leans into those capabilities.&lt;/p&gt;

&lt;h4 id="6-years-typing-code-by-hand-will-go-the-way-of-punch-cards"&gt;6 years: Typing code by hand will go the way of punch cards &lt;a href="https://www.youtube.com/watch?v=lVDhQMiAbR8&amp;amp;t=4839s" class="predictions-video-link"&gt;▶ 80:39&lt;/a&gt;&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;I think the job of being paid money to type code into a computer will go the same way as punching punch cards [...] in six years time, I do not think anyone will be paid to just to do the thing where you type the code. I think software engineering will still be an enormous career. I just think the software engineers won't be spending multiple hours of their day in a text editor typing out syntax.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The more time I spend on AI-assisted programming the less afraid I am for my job, because it turns out building software - especially at the rate it's now possible to build - still requires enormous skill, experience and depth of understanding.&lt;/p&gt;
&lt;p&gt;The skills are changing though! Being able to read a detailed specification and transform it into lines of code is the thing that's being automated away. What's left is everything else, and the more time I spend working with coding agents the larger that "everything else" becomes.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/predictions"&gt;predictions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sandboxing"&gt;sandboxing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/kakapo"&gt;kakapo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oxide"&gt;oxide&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bryan-cantrill"&gt;bryan-cantrill&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/conformance-suites"&gt;conformance-suites&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browser-challenge"&gt;browser-challenge&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/deep-blue"&gt;deep-blue&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/november-2025-inflection"&gt;november-2025-inflection&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="predictions"/><category term="sandboxing"/><category term="ai"/><category term="kakapo"/><category term="generative-ai"/><category term="llms"/><category term="ai-assisted-programming"/><category term="oxide"/><category term="bryan-cantrill"/><category term="coding-agents"/><category term="conformance-suites"/><category term="browser-challenge"/><category term="deep-blue"/><category term="november-2025-inflection"/></entry></feed>