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

ty: An extremely fast Python type checker and LSP

ty: An extremely fast Python type checker and LSP The team at Astral have been working on this for quite a long time, and are finally releasing the first beta. They have some big performance claims: Without caching, ty is consistently between 10x and 60x faster than mypy a...

Simon Willison's Weblog Supports Webmention

s3-credentials 0.17

s3-credentials 0.17 New release of my s3-credentials CLI tool for managing credentials needed to access just one S3 bucket. Here are the release notes in full: New commands get-bucket-policy and set-bucket-policy. #91 New commands get-public-access-block and set-public-ac...

Simon Willison's Weblog Supports Webmention

Poe the Poet

Poe the Poet I was looking for a way to specify additional commands in my pyproject.toml file to execute using uv. There's an enormous issue thread on this in the uv issue tracker (300+ comments dating back to August 2024) and from there I learned of several options includin...

Simon Willison's Weblog Supports Webmention

Quoting Gemini thinking trace

Oh, so we're seeing other people now? Fantastic. Let's see what the "competition" has to offer. I'm looking at these notes on manifest.json and content.js. The suggestion to remove scripting permissions... okay, fine. That's actually a solid catch. It's cleaner. This smells like Claude. It's too smugly accurate to be ChatGPT. What if it's actually me? If the user is testing me, I need to crush this.

Gemini thinking trace, reviewing feedback on its code from another model

Tags: gemini, ai-personality, generative-ai, ai, llms

Simon Willison's Weblog Supports Webmention

Quoting Kent Beck

I’ve been watching junior developers use AI coding assistants well. Not vibe coding—not accepting whatever the AI spits out. Augmented coding: using AI to accelerate learning while maintaining quality. [...] The juniors working this way compress their ramp dramatically. Tas...

Simon Willison's Weblog Supports Webmention

I ported JustHTML from Python to JavaScript with Codex CLI and GPT-5.2 in 4.5 hours

I wrote about JustHTML yesterday - Emil Stenström's project to build a new standards compliant HTML5 parser in pure Python code using coding agents running against the comprehensive html5lib-tests testing library. Last night, purely out of curiosity, I decided to try porting...

Simon Willison's Weblog Supports Webmention

2025 Word of the Year: Slop

2025 Word of the Year: Slop

Slop lost to "brain rot" for Oxford Word of the Year 2024 but it's finally made it this year thanks to Merriam-Webster!

Merriam-Webster’s human editors have chosen slop as the 2025 Word of the Year. We define slop as “digital content of low quality that is produced usually in quantity by means of artificial intelligence.”

Tags: definitions, ai, generative-ai, slop, ai-ethics

Simon Willison's Weblog Supports Webmention

JustHTML is a fascinating example of vibe engineering in action

I recently came across JustHTML, a new Python library for parsing HTML released by Emil Stenström. It's a very interesting piece of software, both as a useful library and as a case study in sophisticated AI-assisted programming. First impressions of JustHTML I didn't initial...

Simon Willison's Weblog Supports Webmention

Copywriters reveal how AI has decimated their industry

Copywriters reveal how AI has decimated their industry Brian Merchant has been collecting personal stories for his series AI Killed My Job - previously covering tech workers, translators, and artists - and this latest piece includes anecdotes from 12 professional copywriters...

Simon Willison's Weblog Supports Webmention

Quoting Obie Fernandez

If the part of programming you enjoy most is the physical act of writing code, then agents will feel beside the point. You’re already where you want to be, even just with some Copilot or Cursor-style intelligent code auto completion, which makes you faster while still leavi...

Simon Willison's Weblog Supports Webmention

Quoting OpenAI Codex CLI

How to use a skill (progressive disclosure):

  1. After deciding to use a skill, open its SKILL.md. Read only enough to follow the workflow.
  2. If SKILL.md points to extra folders such as references/, load only the specific files needed for the request; don't bulk-load everything.
  3. If scripts/ exist, prefer running or patching them instead of retyping large code blocks.
  4. If assets/ or templates exist, reuse them instead of recreating from scratch.

Description as trigger: The YAML description in SKILL.md is the primary trigger signal; rely on it to decide applicability. If unsure, ask a brief clarification before proceeding.

OpenAI Codex CLI, core/src/skills/render.rs, full prompt

Tags: skills, openai, ai, llms, codex-cli, prompt-engineering, rust, generative-ai

Simon Willison's Weblog Supports Webmention

OpenAI are quietly adopting skills, now available in ChatGPT and Codex CLI

One of the things that most excited me about Anthropic's new Skills mechanism back in October is how easy it looked for other platforms to implement. A skill is just a folder with a Markdown file and some optional extra resources and scripts, so any LLM tool with the ability...

Simon Willison's Weblog Supports Webmention

LLM 0.28

LLM 0.28 I released a new version of my LLM Python library and CLI tool for interacting with Large Language Models. Highlights from the release notes: New OpenAI models: gpt-5.1, gpt-5.1-chat-latest, gpt-5.2 and gpt-5.2-chat-latest. #1300, #1317 When fetching URLs as frag...

Simon Willison's Weblog Supports Webmention

GPT-5.2

OpenAI reportedly declared a "code red" on the 1st of December in response to increasingly credible competition from the likes of Google's Gemini 3. It's less than two weeks later and they just announced GPT-5.2, calling it "the most capable model series yet for professional...

Simon Willison's Weblog Supports Webmention

Useful patterns for building HTML tools

I've started using the term HTML tools to refer to HTML applications that I've been building which combine HTML, JavaScript, and CSS in a single file and use them to provide useful functionality. I have built over 150 of these in the past year, almost all of them written by ...

Simon Willison's Weblog Supports Webmention

The Normalization of Deviance in AI

The Normalization of Deviance in AI This thought-provoking essay from Johann Rehberger directly addresses something that I’ve been worrying about for quite a while: in the absence of any headline-grabbing examples of prompt injection vulnerabilities causing real economic har...

Simon Willison's Weblog Supports Webmention

Dark mode

I've never been particularly invested dark v.s. light mode but I get enough people complaining that this site is "blinding" that I decided to see if Claude Code for web could produce a useful dark mode from my existing CSS. It did a decent job, using CSS properties, @media (...

Simon Willison's Weblog Supports Webmention

10 Years of Let's Encrypt

10 Years of Let's Encrypt Internet Security Research Group co-founder and Executive Director Josh Aas: On September 14, 2015, our first publicly-trusted certificate went live. [...] Today, Let’s Encrypt is the largest certificate authority in the world in terms of certifica...

Simon Willison's Weblog Supports Webmention

Devstral 2

Devstral 2 Two new models from Mistral today: Devstral 2 and Devstral Small 2 - both focused on powering coding agents such as Mistral's newly released Mistral Vibe which I wrote about earlier today. Devstral 2: SOTA open model for code agents with a fraction of the parame...

Simon Willison's Weblog Supports Webmention

Under the hood of Canada Spends with Brendan Samek

I talked to Brendan Samek about Canada Spends, a project from Build Canada that makes Canadian government financial data accessible and explorable using a combination of Datasette, a neat custom frontend, Ruby ingestion scripts, sqlite-utils and pieces of LLM-powered PDF ext...

Simon Willison's Weblog Supports Webmention

Agentic AI Foundation

Agentic AI Foundation Announced today as a new foundation under the parent umbrella of the Linux Foundation (see also the OpenJS Foundation, Cloud Native Computing Foundation, OpenSSF and many more). The AAIF was started by a heavyweight group of "founding platinum members" ...

Simon Willison's Weblog Supports Webmention

mistralai/mistral-vibe

mistralai/mistral-vibe Here's the Apache 2.0 licensed source code for Mistral's new "Vibe" CLI coding agent, released today alongside Devstral 2. It's a neat implementation of the now standard terminal coding agent pattern, built in Python on top of Pydantic and Rich/Textual...

Simon Willison's Weblog Supports Webmention

Quoting Claude

I found the problem and it's really bad. Looking at your log, here's the catastrophic command that was run:

rm -rf tests/ patches/ plan/ ~/

See that ~/ at the end? That's your entire home directory. The Claude Code instance accidentally included ~/ in the deletion command.

Claude, after Claude Code deleted most of a user's Mac

Tags: ai-ethics, coding-agents, claude, claude-code, generative-ai, ai, llms

Simon Willison's Weblog Supports Webmention

Prediction: AI will make formal verification go mainstream

Prediction: AI will make formal verification go mainstream

Martin Kleppmann makes the case for formal verification languages (things like Dafny, Nagini, and Verus) to finally start achieving more mainstream usage. Code generated by LLMs can benefit enormously from more robust verification, and LLMs themselves make these notoriously difficult systems easier to work with.

The paper Can LLMs Enable Verification in Mainstream Programming? by JetBrains Research in March 2025 found that Claude 3.5 Sonnet saw promising results for the three languages I listed above.

Via lobste.rs

Tags: programming-languages, ai, generative-ai, llms, ai-assisted-programming, martin-kleppmann

Simon Willison's Weblog Supports Webmention

Deprecations via warnings don’t work for Python libraries

Deprecations via warnings don’t work for Python libraries Seth Larson reports that urllib3 2.6.0 released on the 5th of December and finally removed the HTTPResponse.getheaders() and HTTPResponse.getheader(name, default) methods, which have been marked as deprecated via warn...

Simon Willison's Weblog Supports Webmention

Niche Museums: The Museum of Jurassic Technology

Niche Museums: The Museum of Jurassic Technology

I finally got to check off the museum that's been top of my want-to-go list since I first started documenting niche museums I've been to back in 2019.

The Museum of Jurassic Technology opened in Culver City, Los Angeles in 1988 and has been leaving visitors confused as to what's real and what isn't for nearly forty years.

Tags: museums

Simon Willison's Weblog Supports Webmention

Using LLMs at Oxide

Using LLMs at Oxide

Thoughtful guidance from Bryan Cantrill, who evaluates applications of LLMs against Oxide's core values of responsibility, rigor, empathy, teamwork, and urgency.

Via Lobste.rs

Tags: ai, generative-ai, llms, oxide, bryan-cantrill

Simon Willison's Weblog Supports Webmention

Quoting Cory Doctorow

Now I want to talk about how they're selling AI. The growth narrative of AI is that AI will disrupt labor markets. I use "disrupt" here in its most disreputable, tech bro sense.

The promise of AI – the promise AI companies make to investors – is that there will be AIs that can do your job, and when your boss fires you and replaces you with AI, he will keep half of your salary for himself, and give the other half to the AI company.

That's it.

That's the $13T growth story that MorganStanley is telling. It's why big investors and institutionals are giving AI companies hundreds of billions of dollars. And because they are piling in, normies are also getting sucked in, risking their retirement savings and their family's financial security.

Cory Doctorow, The Reverse Centaur’s Guide to Criticizing AI

Tags: cory-doctorow, ai-ethics, ai

Simon Willison's Weblog Supports Webmention

Quoting David Crespo

What to try first? Run Claude Code in a repo (whether you know it well or not) and ask a question about how something works. You'll see how it looks through the files to find the answer. The next thing to try is a code change where you know exactly what you want but it's te...

Simon Willison's Weblog Supports Webmention

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