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

Scaling HNSWs

Scaling HNSWs Salvatore Sanfilippo spent much of this year working on vector sets for Redis , which first shipped in Redis 8 in May. A big part of that work involved implementing HNSW - Hierarchical Navigable Small World - an indexing technique first introduced in this 2016 ...

Simon Willison's Weblog Supports Webmention

Six coding agents at once

I've been upgrading a ton of Datasette plugins recently for compatibility with the Datasette 1.0a20 release from last week - 35 so far. A lot of the work is very repetitive so I've been outsourcing it to Codex CLI. Here's the recipe I've landed on: codex exec --dangerously-b...

Simon Willison's Weblog Supports Webmention

Quoting Netflix

Netflix asks partners to consider the following guiding principles before leveraging GenAI in any creative workflow:  The outputs do not replicate or substantially recreate identifiable characteristics of unowned or copyrighted material, or infringe any copyright-prot...

Simon Willison's Weblog Supports Webmention

Pelican on a Bike - Raytracer Edition

Pelican on a Bike - Raytracer Edition beetle_b ran this prompt against a bunch of recent LLMs: Write a POV-Ray file that shows a pelican riding on a bicycle. This turns out to be a harder challenge than SVG, presumably because there are less examples of POV-Ray in the trai...

Simon Willison's Weblog Supports Webmention

Reverse engineering Codex CLI to get GPT-5-Codex-Mini to draw me a pelican

OpenAI partially released a new model yesterday called GPT-5-Codex-Mini, which they describe as "a more compact and cost-efficient version of GPT-5-Codex". It's currently only available via their Codex CLI tool and VS Code extension, with proper API access "coming soon". I d...

Simon Willison's Weblog Supports Webmention

Quoting Kenton Varda

The big advantage of MCP over OpenAPI is that it is very clear about auth. [...] Maybe an agent could read the docs and write code to auth. But we don't actually want that, because it implies the agent gets access to the API token! We want the agent's harness to handle that...

Simon Willison's Weblog Supports Webmention

Mastodon 4.5

Mastodon 4.5 This new release of Mastodon adds two of my most desired features! The first is support for quote posts. This had already become an unofficial feature in the client apps I was using (phanpy.social on the web and Ivory on iOS) but now it's officially part of Mast...

Simon Willison's Weblog Supports Webmention

Quoting Josh Cohenzadeh

I have AiDHD

It has never been easier to build an MVP and in turn, it has never been harder to keep focus. When new features always feel like they're just a prompt away, feature creep feels like a never ending battle. Being disciplined is more important than ever.

AI still doesn't change one very important thing: you still need to make something people want. I think that getting users (even free ones) will become significantly harder as the bar for user's time will only get higher as their options increase.

Being quicker to get to the point of failure is actually incredibly valuable. Even just over a year ago, many of these projects would have taken months to build.

Josh Cohenzadeh, AiDHD

Tags: vibe-coding, ai-assisted-programming, generative-ai, ai, llms

Simon Willison's Weblog Supports Webmention

Could LLMs encourage new programming languages?

My hunch is that existing LLMs make it easier to build a new programming language in a way that captures new developers. Most programming languages are similar enough to existing languages that you only need to know a small number of details to use them: what's the core synt...

Simon Willison's Weblog Supports Webmention

Using Codex CLI with gpt-oss:120b on an NVIDIA DGX Spark via Tailscale

Using Codex CLI with gpt-oss:120b on an NVIDIA DGX Spark via Tailscale

Inspired by a YouTube comment I wrote up how I run OpenAI's Codex CLI coding agent against the gpt-oss:120b model running in Ollama on my NVIDIA DGX Spark via a Tailscale network.

It takes a little bit of work to configure but the result is I can now use Codex CLI on my laptop anywhere in the world against a self-hosted model.

I used it to build this space invaders clone.

Tags: ai, tailscale, til, generative-ai, local-llms, llms, nvidia, coding-agents, space-invaders, codex-cli

Simon Willison's Weblog Supports Webmention

Game design is simple, actually

Game design is simple, actually

Game design legend Raph Koster (Ultima Online, Star Wars Galaxies and many more) provides a deeply informative and delightfully illustrated "twelve-step program for understanding game design."

You know it's going to be good when the first section starts by defining "fun".

Via Hacker News

Tags: game-design

Simon Willison's Weblog Supports Webmention

You should write an agent

You should write an agent

Thomas Ptacek on the Fly blog:

Agents are the most surprising programming experience I’ve had in my career. Not because I’m awed by the magnitude of their powers — I like them, but I don’t like-like them. It’s because of how easy it was to get one up on its legs, and how much I learned doing that.

I think he's right: hooking up a simple agentic loop that prompts an LLM and runs a tool for it any time it request one really is the new "hello world" of AI engineering.

Via Hacker News

Tags: thomas-ptacek, ai, fly, generative-ai, llms, ai-agents

Simon Willison's Weblog Supports Webmention

Quoting Ben Stolovitz

My trepidation extends to complex literature searches. I use LLMs as secondary librarians when I’m doing research. They reliably find primary sources (articles, papers, etc.) that I miss in my initial searches.

But these searches are dangerous. I distrust LLM librarians. There is so much data in the world: you can (in good faith!) find evidence to support almost any position or conclusion. ChatGPT is not a human, and, unlike teachers & librarians & scholars, ChatGPT does not have a consistent, legible worldview. In my experience, it readily agrees with any premise you hand it — and brings citations. It may have read every article that can be read, but it has no real opinion — so it is not a credible expert.

Ben Stolovitz, How I use AI

Tags: ai-assisted-search, llms, ai, generative-ai

Simon Willison's Weblog Supports Webmention

Kimi K2 Thinking

Kimi K2 Thinking Chinese AI lab Moonshot's Kimi K2 established itself as one of the largest open weight models - 1 trillion parameters - back in July. They've now released the Thinking version, also a trillion parameters (MoE, 32B active) and also under their custom modified...

Simon Willison's Weblog Supports Webmention

Quoting Nathan Lambert

At the start of the year, most people loosely following AI probably knew of 0 [Chinese] AI labs. Now, and towards wrapping up 2025, I’d say all of DeepSeek, Qwen, and Kimi are becoming household names. They all have seasons of their best releases and different strengths. The...

Simon Willison's Weblog Supports Webmention

Video + notes on upgrading a Datasette plugin for the latest 1.0 alpha, with help from uv and OpenAI Codex CLI

I'm upgrading various plugins for compatibility with the new Datasette 1.0a20 alpha release and I decided to record a video of the process. This post accompanies that video with detailed additional notes. The datasette-checkbox plugin I picked a very simple plugin to ill...

Simon Willison's Weblog Supports Webmention

Code research projects with async coding agents like Claude Code and Codex

I've been experimenting with a pattern for LLM usage recently that's working out really well: asynchronous code research tasks. Pick a research question, spin up an asynchronous coding agent and let it go and run some experiments and report back when it's done. Code resea...

Simon Willison's Weblog Supports Webmention

Open redirect endpoint in Datasette prior to 0.65.2 and 1.0a21

Open redirect endpoint in Datasette prior to 0.65.2 and 1.0a21 This GitHub security advisory covers two new releases of Datasette that I shipped today, both addressing the same open redirect issue with a fix by James Jefferies. Datasette 0.65.2 fixes the bug and also adds Py...

Simon Willison's Weblog Supports Webmention

Removing XSLT for a more secure browser

Removing XSLT for a more secure browser Previously discussed back in August, it looks like it's now official: Chrome intends to deprecate and remove XSLT from the browser. [...] We intend to remove support from version 155 (November 17, 2026). The Firefox and WebKit project...

Simon Willison's Weblog Supports Webmention

Quoting @belligerentbarbies

I'm worried that they put co-pilot in Excel because Excel is the beast that drives our entire economy and do you know who has tamed that beast? Brenda. Who is Brenda? She is a mid-level employee in every finance department, in every business across this stupid nation and th...

Simon Willison's Weblog Supports Webmention

Code execution with MCP: Building more efficient agents

Code execution with MCP: Building more efficient agents When I wrote about Claude Skills I mentioned that I don't use MCP at all any more when working with coding agents - I find CLI utilities and libraries like Playwright Python to be a more effective way of achieving the s...

Simon Willison's Weblog Supports Webmention

A new SQL-powered permissions system in Datasette 1.0a20

Datasette 1.0a20 is out with the biggest breaking API change on the road to 1.0, improving how Datasette's permissions system works by migrating permission logic to SQL running in SQLite. This release involved 163 commits, with 10,660 additions and 1,825 deletions, most of w...

Simon Willison's Weblog Supports Webmention

MCP Colors: Systematically deal with prompt injection risk

MCP Colors: Systematically deal with prompt injection risk Tim Kellogg proposes a neat way to think about prompt injection, especially with respect to MCP tools. Classify every tool with a color: red if it exposes the agent to untrusted (potentially malicious) instructions, ...

Simon Willison's Weblog Supports Webmention

Quoting Steve Francia

Every time an engineer evaluates a language that isn’t “theirs,” their brain is literally working against them. They’re not just analyzing technical trade offs, they’re contemplating a version of themselves that doesn’t exist yet, that feels threatening to the version that does. The Python developer reads case studies about Go’s performance and their amygdala quietly marks each one as a threat to be neutralized. The Rust advocate looks at identical problems and their Default Mode Network constructs narratives about why “only” Rust can solve them.

We’re not lying. We genuinely believe our reasoning is sound. That’s what makes identity based thinking so expensive, and so invisible.

Steve Francia, Why Engineers Can't Be Rational About Programming Languages

Tags: technical-debt, psychology, programming-languages

Simon Willison's Weblog Supports Webmention

The fetch()ening

The fetch()ening After several years of stable htmx 2.0 and a promise to never release a backwards-incompatible htmx 3 Carson Gross is technically keeping that promise... by skipping to htmx 4 instead! The main reason is to replace XMLHttpRequest with fetch() - a change that...

Simon Willison's Weblog Supports Webmention

Quoting Barry Warsaw

Dear PEP 810 authors. The Steering Council is happy to unanimously accept "PEP 810, Explicit lazy imports". Congratulations! We appreciate the way you were able to build on and improve the previously discussed (and rejected) attempt at lazy imports as proposed in PEP 690.

Barry Warsaw, on behalf of the Python Steering Council

Tags: python, barry-warsaw

Simon Willison's Weblog Supports Webmention

The case against pgvector

The case against pgvector I wasn't keen on the title of this piece but the content is great: Alex Jacobs talks through lessons learned trying to run the popular pgvector PostgreSQL vector indexing extension at scale, in particular the challenges involved in maintaining a lar...

Simon Willison's Weblog Supports Webmention

Quoting MiniMax

Interleaved thinking is essential for LLM agents: it means alternating between explicit reasoning and tool use, while carrying that reasoning forward between steps.This process significantly enhances planning, self‑correction, and reliability in long workflows. [...] From c...

Simon Willison's Weblog Supports Webmention

New prompt injection papers: Agents Rule of Two and The Attacker Moves Second

Two interesting new papers regarding LLM security and prompt injection came to my attention this weekend. Agents Rule of Two: A Practical Approach to AI Agent Security The first is Agents Rule of Two: A Practical Approach to AI Agent Security, published on October 31st on th...

Simon Willison's Weblog Supports Webmention

PyCon US 2026 call for proposals is now open

PyCon US 2026 call for proposals is now open PyCon US is coming to the US west coast! 2026 and 2027 will both be held in Long Beach, California - the 2026 conference is set for May 13th-19th next year. The call for proposals just opened. Since we'll be in LA County I'd love ...