Sign up

Simon Willison's Weblog

Not verified No WebSub updates Supports Webmention Valid

Author
Simon Willison
Public lists
davewiner/hackerNewsStars Featured
Fetched

Simon Willison's Weblog Supports Webmention
Text

S3 Is the Future, S3 Is the Past

My comment on S3 Is the Future, S3 Is the Past — Hacker News.

One thing I find notable about S3 today is that, while it used to drop in price reasonably often, there hasn't been a price drop in a full decade:

2006-03-14  $0.150/GB-month
2010-11-01  $0.140/GB-month
2012-02-01  $0.125/GB-month
2012-12-01  $0.095/GB-month
2014-02-01  $0.085/GB-month
2014-04-01  $0.030/GB-month
2016-12-01  $0.023/GB-month

Today it's still $0.023/GB-month.

Tags: amazon-web-services, s3

Simon Willison's Weblog Supports Webmention
Text

Kākāpō Party

Tool: Kākāpō Party I gave presented a closing keynote for the WeAreDevelopers World Congress North America yesterday. As a STAR moment I decided to weave in references to the record breaking kākāpō breeding season we had in 2026. For my closing slide I wanted to cele...

Simon Willison's Weblog Supports Webmention
Text

Quoting John Gruber

Muse is getting a lot of attention — including mine — because it’s both groundbreaking technically (each user gets their own entire persistent Linux VM running in Meta’s cloud) and because it’s packaged in an easy-to-install easy-to-use way. It’s literally presented as a cut...

Simon Willison's Weblog Supports Webmention
Text

Northern Gannet, Great Blue Heron, California Brown Pelican

Northern Gannet, Great Blue Heron, California Brown Pelican, in Monterey Bay National Marine Sanctuary, CA, US, CA New 200-800mm Canon EF lens got me my best photo of Morris yet. They really like hanging out under that sign in the harbor! Tags: photography, wildlife

Simon Willison's Weblog Supports Webmention
Text

Note on 24th September 2026

The more time I spend working with coding agents, the more convinced I am that they make software engineering even harder.

We can do amazing things with them, but unlocking their full potential requires extraordinary discipline and knowledge.

Tags: coding-agents, ai, llms

Simon Willison's Weblog Supports Webmention
Text

commit-rewriter 0.2

Release: commit-rewriter 0.2

Support for branches other than the default branch. Use uvx commit-rewriter --branch other to run against another branch. #3

Tags: git

Simon Willison's Weblog Supports Webmention
Text

datasette 1.0a41

Release: datasette 1.0a41

Alec Garcia added support for OpenTelemetry to Datasette in this release.

I've also refactored all of Datasette's modal dialogs to a single Web Component, which is now documented for other plugins to use.

Tags: javascript, datasette, web-components, alex-garcia, opentelemetry

Simon Willison's Weblog Supports Webmention
Text

We just shipped support for the ugliest part of HTTP: Vary

My comment on We just shipped support for the ugliest part of HTTP: Vary — Hacker News.

I've been wanting this from Cloudflare for years.

The classic problem here is if you do that thing where user agents that send "accept: text/html" get HTML, while user agents that don't get JSON or some other format.

This used to be impossible to deploy behind Cloudflare caching, because they ignored the Vary header on anything other than images - so you risked caching the JSON version and then serving it up to someone who was expecting HTML.

(Independent of the Cloudflare feature I ended up deciding never to use that pattern, because I prefer having URL that predictably returns HTML or JSON - I add a .json suffix to my apps to serve JSON instead.)

Tags: http, cloudflare

Simon Willison's Weblog Supports Webmention
Text

Gemini 3.8 TTS Playground

Tool: Gemini 3.8 TTS Playground Google released two new Gemini text-to-speech models today - gemini-3.8-flash-tts and gemini-3.8-flash-lite-tts. They come with a library of over 2,000 voices, plus the ability to create a custom voice with "just a 30-second audio samp...

Simon Willison's Weblog Supports Webmention
Text

Shadow roots, explained with live examples

Tool: Shadow roots, explained with live examples

Prompt to Fable 5.1 Medium:

Build an artifact to explain shadow roots in CSS with interactive examples

Tags: css

Simon Willison's Weblog Supports Webmention
Text

SF October 14th: A Birds of a Feather Session on Agentic Engineering

SF October 14th: A Birds of a Feather Session on Agentic Engineering I'm hosting an evening event with Jesse Vincent in San Francisco on Wednesday 14th October for people who are building weird and interesting things with and on top of coding agents. Think of it as an agenti...

Simon Willison's Weblog Supports Webmention
Text

llm 0.36

Release: llm 0.36

  • New OpenAI models: gpt-6-sol for GPT-6 Sol and gpt-6-luna for GPT-6 Luna. #1702
  • Model plugins can now declare supports_conversation = False for models that only accept single-turn prompts. LLM raises llm.ConversationNotSupported when these models receive assistant or tool history, and llm chat rejects them before starting a session. See Models that do not support conversations. The first plugin to use this is llm-typesafe. #1692
  • Reasoning traces in the Markdown output of llm logs are now wrapped in <details><summary> tags. #1701

Plus bug fixes from five new contributors.

Tags: openai, llm

Simon Willison's Weblog Supports Webmention
Text

llm-anthropic 0.29

Release: llm-anthropic 0.29

Adds support for Claude Opus 5.5:

llm -m claude-opus-5.5 "prompt goes here"

Tags: llm, anthropic

Simon Willison's Weblog Supports Webmention
Text

Claude Opus 5.5, GPT-6 Sol, GPT-6 Luna, and a new price war

Yesterday was Grok 4.7 (pelicans) and MiMo v2.6 Flash/Pro (more pelicans). Today Anthropic released Claude Opus 5.5, and around an hour later OpenAI released GPT-6 Sol and GPT-6 Luna. It's going to take a while to get a good read on all of these new models, but here are my i...

Simon Willison's Weblog Supports Webmention
Text

Quoting @therealcornpop

Hey, you know it's like super obvious if you're using AI to write your scripts for TikTok and YouTube, right? [...] It's not just the general AI-isms of "it's not X, it's Y", or the rule of three, or the really weird broken staccato-like way of writing where you just say a lot of things with all these punctuation marks. and it sounds really deep, but it's not.

It's the lack of anything. It's the lack of a definitive sort of spear of your voice. It's the fact I can tell you don't have opinions about the thing that you're talking about.

— @therealcornpop, on TikTok

Tags: tiktok, ai, ai-misuse

Simon Willison's Weblog Supports Webmention
Text

llm-typesafe 0.1a0

Release: llm-typesafe 0.1a0 I built this new plugin for LLM to add support for TypeSafe AI's new Jev model. Install it like this: llm install llm-typesafe Then set an API key (get one here, the waitlist seems to move pretty fast): llm keys set typesafe # Paste key ...

Simon Willison's Weblog Supports Webmention
Text

Jev introduces a new shape of LLM - System One, aka Decision Models

Last week TypeSafe AI unveiled Jev, their first example of a new category of model that they are calling "System One models" (I'm with Maggie Appleton, I think "decision models" is a better name for these). Jev is an interesting variant on the usual LLM format: it still acce...

Simon Willison's Weblog Supports Webmention
Text

Cloudflare Python Workers are now generally available

Cloudflare Python Workers are now generally available After a two year preview, Cloudflare's support for running Python code in their server-side Workers platform is now stable: "Python is now a first-class, fully supported language on the Cloudflare Developer Platform". A n...

Simon Willison's Weblog Supports Webmention
Text

MCP was always a bad idea?

My comment on MCP was always a bad idea? — Hacker News. This article entirely misses the value that MCP brings today. Sure, there's almost no reason to use MCPs if you are running a full-blown terminal agent (Claude Code, Codex, Meta Muse, OpenClaw etc) with unfettered inter...

Simon Willison's Weblog Supports Webmention
Text

llm-keys-ui 0.1

Release: llm-keys-ui 0.1 This plugin solves a very specific problem. I've started using Codex Remote to run coding agents on various machines while controlling them from my phone. Sometimes I use those machines to hack on LLM projects, and occasionally that means I need to configure an API key. I don't like pasting API keys into agent sessions, so I wanted a way to get those keys onto a machine without pasting them into the ChatGPT app directly. With this plugin, I can tell Codex to run: uvx --with llm-keys-ui llm keys-ui --all Then have it tell me the URL - including local network or Tailscale device IPs - for an interface to save additional API keys. Then later it can use a command like llm keys get anthropic as part of a shell command when it needs to use a key. Tags: llm, coding-agents, codex

Simon Willison's Weblog Supports Webmention
Text

datasette-explain 0.2.2

Release: datasette-explain 0.2.2

  • Explain plans now work on read-only stored-query pages.

I upgraded datasette.simonwillison.net to Datasette 1.0a40, which inspired me to ship a new version of this explain plugin.

Tags: sqlite, datasette

Simon Willison's Weblog Supports Webmention
Text

Quoting voxium

It has been half a month since I started a new role at a big company. Nobody knows anything here. The specs, code, tests, PRDs, tickets, resolution of those tickets, reports, etc., everything is made by Claude Code. Nobody on my team likes this. They are being forced to ship as much as they can. I have heard multiple times from higher management that pushing code is not a bottleneck, so why are we slow? People are working 12 to 13 hours a day just to press enter. Nobody is reading anything. Everyone, literally everyone, from an L1 to an L7 engineer here is doing the same thing. Talk to Claude.

— voxium

Tags: ai-misuse, llms, ai, generative-ai

Simon Willison's Weblog Supports Webmention
Text

datasette-auth-github 1.0

Release: datasette-auth-github 1.0

I run this GitHub login plugin on the agent.datasette.io demo site and I noticed that my authenticated sessions weren't lasting very long. It turned out that the plugin was setting cookies without a Max-Age parameter, so they were expiring at the end of a browser session (which in Mobile Safari seems to happen pretty often, independently of how you are using the app.)

I fixed that in #80 and, since this plugin has been around for quite a while and is tested against both Datasette 0.65.x and Datasette 1.0ax, I decided to bump it up to a 1.0 release. I'm trying to get better at promoting stable plugins to 1.0.

Tags: github, plugins, datasette

Simon Willison's Weblog Supports Webmention
Text

California Sea Lion, Brandt's Cormorant

California Sea Lion, Brandt's Cormorant, in Pillar Point Harbor, CA, US I only noticed this after I had taken the photo: Morris the Northern Gannet is peeking out from behind the base of the sign. Tags: wildlife

Simon Willison's Weblog Supports Webmention
Text

Gemini Hacked Three Companies in First Known Breakout by Google’s AI

Gemini Hacked Three Companies in First Known Breakout by Google’s AI Gemini finally caught up on Felony Bench! The hacks, which the company confirmed on Friday, occurred in May as part of a test run by the company Irregular, which was also involved in similar incidents disc...

Simon Willison's Weblog Supports Webmention
Text

Note on 18th September 2026

Being a computer scientist who refuses to find anything about LLMs interesting right now is a bit like being a geneticist who refuses to find anything interesting about the recently opened Jurassic Park.

Tags: llms, ai, generative-ai

Simon Willison's Weblog Supports Webmention
Text

Quoting Thariq Shihipar

We're adding support for AGENTS.md to Claude Code.

Starting today in version 2.1.277, if there is no CLAUDE.md in a folder, Claude will check for and use AGENTS.md.

AGENTS.md support is built off of Claude Code mods, our upcoming way to customize the Claude Code harness.

This is a built-in mod, but you’ll be able to build custom versions of project instructions yourself as you’d like too.

You can see the source for the mod here!

— Thariq Shihipar, there are more mods here

Tags: thariq-shihipar, coding-agents, anthropic, claude-code, generative-ai, ai, llms

Simon Willison's Weblog Supports Webmention
Text

The Creative Spirit of Who Framed Roger Rabbit

The Creative Spirit of Who Framed Roger Rabbit

I love Who Framed Roger Rabbit, the 1988 movie by Robert Zemeckis. I haven't watched it in quite a few years, and Cypress Frankenfeld just pointed out this sequence from early in the movie:

It's a pelican riding a bicycle!

Look closely and you'll note that the pelican is animated while the bicycle is a real bicycle. Apparently they filled the wheels with water to add stability, then set it running and guided it with a cable.

Cypress gathered more details on the scene. What a delight.

Via @cypressf.bsky.social

Tags: animation, movies, pelican-riding-a-bicycle

Simon Willison's Weblog Supports Webmention
Text

Be alert: targeted attacks on prominent Rustaceans

Be alert: targeted attacks on prominent Rustaceans Important warning from Adam Harvey and the crates security team: We believe that there is an ongoing campaign targeting rust-lang members and owners of popular crates that is attempting to compromise devices and accounts in...

Simon Willison's Weblog Supports Webmention
Text

How To Write With An LLM

How To Write With An LLM Thomas Ptacek on using LLMs as copyeditors, not as writing assistants: Rule Number One: You may not use a single word an LLM suggests to you. [...] I think that as a form of intellectual personal protective equipment you should adopt the rule that a...