Sign up

Simon Willison's Weblog

Not verified No WebSub updates Supports Webmention Not yet validated

Author
Simon Willison
Public lists
Featured
Fetched

Simon Willison's Weblog Supports Webmention

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 aging lecture notes until he retires and someone finally updates the course.

Daniel Lemire, Why speed matters

Tags: productivity

Simon Willison's Weblog Supports Webmention

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 an...

Simon Willison's Weblog Supports Webmention

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.

Via Hacker News

Tags: go, object-oriented-programming, programming-languages, rust, zig

Simon Willison's Weblog Supports Webmention

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) pushes for a positive framework for thinking about building hyper-personalized AI-powered software. This part in particular resonates with m...

Simon Willison's Weblog Supports Webmention

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 prototype...

Simon Willison's Weblog Supports Webmention

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 ...

Simon Willison's Weblog Supports Webmention

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 as...

Simon Willison's Weblog Supports Webmention

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...

Simon Willison's Weblog Supports Webmention

Anthropic acquires Bun

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

Simon Willison's Weblog Supports Webmention

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...

Simon Willison's Weblog Supports Webmention

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 interest...

Simon Willison's Weblog Supports Webmention

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 be...

Simon Willison's Weblog Supports Webmention

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 coding projects with LLMs this month
  • Prompt injection news for November
  • Pelican on a bicycle variants
  • Two YouTube videos and a podcast
  • Miscellaneous extras
  • Tools I'm using at the moment

Here's a copy of the October newsletter as a preview of what you'll get. Pay $10/month to stay a month ahead of the free copy!

Tags: newsletter

Simon Willison's Weblog Supports Webmention

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 reporting them, gather information from multiple sources or cover stories in the public interest — practices ingrained in the DNA of reputable journalists.

David Bauder, AP News, A lost generation of news consumers? Survey shows how teenagers dislike the news media

Tags: journalism

Simon Willison's Weblog Supports Webmention

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, ...

Simon Willison's Weblog Supports Webmention

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 exact...

Simon Willison's Weblog Supports Webmention

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 compute...

Simon Willison's Weblog Supports Webmention

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 JavaScript, but now it doesn't.

Rodrigo Arias Mallo, Migrating Dillo from GitHub

Tags: browsers, progressive-enhancement, github

Simon Willison's Weblog Supports Webmention

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 are edited, it’s no longer sunny outside, the available tools have been updated.

This context is not always where the AI runs (and the AI runs as closer as possible to the point of user intent).

So the job of making an agent run really well is to move the context to where it needs to be. [...]

So I’ve been thinking of AI system technical architecture as plumbing the sources and sinks of context.

Tags: definitions, matt-webb, ai, generative-ai, llms, ai-agents, context-engineering

Simon Willison's Weblog Supports Webmention

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, slop, generative-ai, wikipedia, ai, llms

Simon Willison's Weblog Supports Webmention

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...

Simon Willison's Weblog Supports Webmention

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.

This short animated GIF demo starts with the Thread by @simonwillison.net page where a URL to a Bluesky post has been entered and a Fetch Thread button clicked. The thread is shown as a nested collection of replies. A "Hide other replies" button hides the replies revealing just the top-level self-replies by the original author - and turns into a "Show 11 other replies" button when toggled. There are tabs for Thread View and Most Recent First - the latter when clicked shows a linear list of posts with the most recent at the top. There are "Copy" and Copy JSON" green buttons at the top of the page.

I've been mostly vibe-coding this thing since April, now spanning 15 commits with contributions from ChatGPT, Claude, Claude Code for Web and Claude Code on my laptop. Each of those commits links to the transcript that created the changes in the commit.

Bluesky is a lot of fun to build tools like this against because the API supports CORS (so you can talk to it from an HTML+JavaScript page hosted anywhere) and doesn't require authentication.

Tags: projects, tools, ai, generative-ai, llms, cors, bluesky, vibe-coding, coding-agents, claude-code

Simon Willison's Weblog Supports Webmention

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 tempo...

Simon Willison's Weblog Supports Webmention

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 this year.

We now have an open weights (Apache 2 licensed) 685B, 689GB model that can achieve the same. From the accompanying paper:

DeepSeekMath-V2 demonstrates strong performance on competition mathematics. With scaled test-time compute, it achieved gold-medal scores in high-school competitions including IMO 2025 and CMO 2024, and a near-perfect score on the undergraduate Putnam 2024 competition.

Tags: mathematics, ai, generative-ai, llms, llm-reasoning, deepseek, llm-release, ai-in-china

Simon Willison's Weblog Supports Webmention

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 ...

Simon Willison's Weblog Supports Webmention

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 credent...

Simon Willison's Weblog Supports Webmention

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 ca...

Simon Willison's Weblog Supports Webmention

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 of their Python library with support for thinking effort.

Tags: projects, ai, generative-ai, llms, llm, anthropic, claude

Simon Willison's Weblog Supports Webmention

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 organ" or "a starfish driving a bulldozer". Here are some for "butterfly inspecting a steam engine": And for "sloth steering an excavator": It's worth browsing the whole collection, which gives a really good overall indication of which models are the best at SVG art. Via tkgally on Hacker News Tags: benchmarks, svg, ai, generative-ai, llms, evals, pelican-riding-a-bicycle, tom-gally

Simon Willison's Weblog Supports Webmention

Quoting Claude Opus 4.5 system prompt

If the person is unnecessarily rude, mean, or insulting to Claude, Claude doesn't need to apologize and can insist on kindness and dignity from the person it’s talking with. Even if someone is frustrated or unhappy, Claude is deserving of respectful engagement.

Claude Opus 4.5 system prompt, also added to the Sonnet 4.5 and Haiku 4.5 prompts on November 19th 2025

Tags: system-prompts, anthropic, claude, generative-ai, ai, llms