Simon Willison

  1. The Unexpected Effectiveness of One-Shot Decompilation with Claude

    The Unexpected Effectiveness of One-Shot Decompilation with Claude Chris Lewis decompiles N64 games. He wrote about this previously in Using Coding Agents to Decompile Nintendo 64 Games, describing his efforts to decompile Snowboard Kids 2 (released in 1999) using a "matching" process: The matching decompilation…

    Published

  2. Quoting Daniel Lemire

    If you work slowly, you will be more likely to stick with your slightly obsolete work. You know that professor who spent seven years preparing lecture notes twenty years ago? He is not going to throw them away and start again, as that would be a new seven-year project. So he will keep teaching using…

    Published

  3. TIL: Subtests in pytest 9.0.0+

    TIL: Subtests in pytest 9.0.0+ I spotted an interesting new feature in the release notes for pytest 9.0.0: subtests. I'm a big user of the pytest.mark.parametrize decorator - see Documentation unit tests from 2018 - so I thought it would be interesting to try out subtests and see if they're a useful…

    Published

  4. Thoughts on Go vs. Rust vs. Zig

    Thoughts on Go vs. Rust vs. Zig Thoughtful commentary on Go, Rust, and Zig by Sinclair Target. I haven't seen a single comparison that covers all three before and I learned a lot from reading this. One thing that I hadn't noticed before is that none of these three languages implement class-based OOP…

    Published

  5. The Resonant Computing Manifesto

    The Resonant Computing Manifesto Launched today at WIRED’s The Big Interview event, this manifesto (of which I'm a founding signatory) encourages a positive framework for thinking about building hyper-personalized AI-powered software - while avoiding the attention hijacking anti-patterns that defined…

    Published

  6. Django 6.0 released

    Django 6.0 released Django 6.0 includes a flurry of neat features, but the two that most caught my eye are background workers and template partials. Background workers started out as DEP (Django Enhancement Proposal) 14, proposed and shepherded by Jake Howard. Jake prototyped the feature in django-tasks…

    Published

  7. Text a community college librarian

    I take tap dance evening classes at the College of San Mateo community college. A neat bonus of this is that I'm now officially a student of that college, which gives me access to their library... including the ability to send text messages to the librarians asking for help with research. I recently…

    Published

  8. Quoting Mitchell Hashimoto

    Since the beginning of the project in 2023 and the private beta days of Ghostty, I've repeatedly expressed my intention that Ghostty legally become a non-profit. [...] I want to squelch any possible concerns about a "rug pull". A non-profit structure provides enforceable assurances: the mission cannot…

    Published

  9. TIL: Dependency groups and uv run

    TIL: Dependency groups and uv run I wrote up the new pattern I'm using for my various Python project repos to make them as easy to hack on with uv as possible. The trick is to use a PEP 735 dependency group called dev, declared in pyproject.toml like this: [dependency-groups] dev = ["pytest"] With that…

    Published

  10. Anthropic acquires Bun

    Anthropic acquires Bun Anthropic just acquired the company behind the Bun JavaScript runtime, which they adopted for Claude Code back in July. Their announcement includes an impressive revenue update on Claude Code: In November, Claude Code achieved a significant milestone: just six months after becoming…

    Published

  11. Introducing Mistral 3

    Introducing Mistral 3 Four new models from Mistral today: three in their "Ministral" smaller model series (14B, 8B, and 3B) and a new Mistral Large 3 MoE model with 675B parameters, 41B active. All of the models are vision capable, and they are all released under an Apache 2 license. I'm particularly…

    Published

  12. Claude 4.5 Opus' Soul Document

    Claude 4.5 Opus' Soul Document Richard Weiss managed to get Claude 4.5 Opus to spit out this 14,000 token document which Claude called the "Soul overview". Richard says: While extracting Claude 4.5 Opus' system message on its release date, as one does, I noticed an interesting particularity. I'm used…

    Published

  13. DeepSeek-V3.2

    DeepSeek-V3.2 Two new open weight (MIT licensed) models from DeepSeek today: DeepSeek-V3.2 and DeepSeek-V3.2-Speciale, both 690GB, 685B parameters. Here's the PDF tech report. DeepSeek-V3.2 is DeepSeek's new flagship model, now running on chat.deepseek.com. The difference between the two new models is…

    Published

  14. I sent out my November sponsor newsletter

    I just send out the November edition of my sponsors-only monthly newsletter. If you are a sponsor (or if you start a sponsorship now) you can access a copy here. In the newsletter this month: The best model for code changed hands four times Significant open weight model releases Nano Banana Pro My major…

    Published

  15. Quoting David Bauder, AP News

    More than half of the teens surveyed believe journalists regularly engage in unethical behaviors like making up details or quotes in stories, paying sources, taking visual images out of context or doing favors for advertisers. Less than a third believe reporters correct their errors, confirm facts before…

    Published

  16. YouTube embeds fail with a 153 error

    YouTube embeds fail with a 153 error I just fixed this bug on my blog. I was getting an annoying "Error 153: Video player configuration error" on some of the YouTube video embeds (like this one) on this site. After some digging it turns out the culprit was this HTTP header, which Django's SecurityMiddleware…

    Published

  17. Quoting Felix Nolan

    I am increasingly worried about AI in the video game space in general. [...] I'm not sure that the CEOs and the people making the decisions at these sorts of companies understand the difference between actual content and slop. [...] It's exactly the same cryolab, it's exactly the same robot factory place…

    Published

  18. ChatGPT is three years old today

    It's ChatGPT's third birthday today. It's fun looking back at Sam Altman's low key announcement thread from November 30th 2022: today we launched ChatGPT. try talking with it here: chat.openai.com language interfaces are going to be a big deal, i think. talk to the computer (voice or text) and get what…

    Published

  19. Quoting Rodrigo Arias Mallo

    The most annoying problem is that the [GitHub] frontend barely works without JavaScript, so we cannot open issues, pull requests, source code or CI logs in Dillo itself, despite them being mostly plain HTML, which I don't think is acceptable. In the past, it used to gracefully degrade without enforcing…

    Published

  20. Context plumbing

    Context plumbing Matt Webb coins the term context plumbing to describe the kind of engineering needed to feed agents the right context at the right time: Context appears at disparate sources, by user activity or changes in the user’s environment: what they’re working on changes, emails appear, documents…

    Published

  21. Quoting Wikipedia content guideline

    Large language models (LLMs) can be useful tools, but they are not good at creating entirely new Wikipedia articles. Large language models should not be used to generate new Wikipedia articles from scratch. — Wikipedia content guideline, promoted to a guideline on 24th November 2025 Tags: ai-ethics,…

    Published

  22. A ChatGPT prompt equals about 5.1 seconds of Netflix

    In June 2025 Sam Altman claimed about ChatGPT that "the average query uses about 0.34 watt-hours". In March 2020 George Kamiya of the International Energy Agency estimated that "streaming a Netflix video in 2019 typically consumed 0.12-0.24kWh of electricity per hour" - that's 240 watt-hours per Netflix…

    Published

  23. Bluesky Thread Viewer thread by @simonwillison.net

    Bluesky Thread Viewer thread by @simonwillison.net I've been having a lot of fun hacking on my Bluesky Thread Viewer JavaScript tool with Claude Code recently. Here it renders a thread (complete with demo video) talking about the latest improvements to the tool itself. I've been mostly vibe-coding this…

    Published

  24. Quoting Qwen3-VL Technical Report

    To evaluate the model’s capability in processing long-context inputs, we construct a video “Needle-in- a-Haystack” evaluation on Qwen3-VL-235B-A22B-Instruct. In this task, a semantically salient “needle” frame—containing critical visual evidence—is inserted at varying temporal positions within a long…

    Published

  25. deepseek-ai/DeepSeek-Math-V2

    deepseek-ai/DeepSeek-Math-V2 New on Hugging Face, a specialist mathematical reasoning LLM from DeepSeek. This is their entry in the space previously dominated by proprietary models from OpenAI and Google DeepMind, both of which achieved gold medal scores on the International Mathematical Olympiad earlier…

    Published

  26. Highlights from my appearance on the Data Renegades podcast with CL Kao and Dori Wilson

    I talked with CL Kao and Dori Wilson for an episode of their new Data Renegades podcast titled Data Journalism Unleashed with Simon Willison. I fed the transcript into Claude Opus 4.5 to extract this list of topics with timestamps and illustrative quotes. It did such a good job I'm using what it produced…

    Published

  27. Google Antigravity Exfiltrates Data

    Google Antigravity Exfiltrates Data PromptArmor demonstrate a concerning prompt injection chain in Google's new Antigravity IDE: In this attack chain, we illustrate that a poisoned web source (an integration guide) can manipulate Gemini into (a) collecting sensitive credentials and code from the user’s…

    Published

  28. Constant-time support lands in LLVM: Protecting cryptographic code at the compiler level

    Constant-time support lands in LLVM: Protecting cryptographic code at the compiler level Substantial LLVM contribution from Trail of Bits. Timing attacks against cryptography algorithms are a gnarly problem: if an attacker can precisely time a cryptographic algorithm they can often derive details of…

    Published

  29. llm-anthropic 0.23

    llm-anthropic 0.23 New plugin release adding support for Claude Opus 4.5, including the new thinking_effort option: llm install -U llm-anthropic llm -m claude-opus-4.5 -o thinking_effort low 'muse on pelicans' This took longer to release than I had hoped because it was blocked on Anthropic shipping 0.75.0…

    Published

  30. LLM SVG Generation Benchmark

    LLM SVG Generation Benchmark Here's a delightful project by Tom Gally, inspired by my pelican SVG benchmark. He asked Claude to help create more prompts of the form Generate an SVG of [A] [doing] [B] and then ran 30 creative prompts against 9 frontier models - prompts like "an octopus operating a pipe…

    Published