Simon Willison's Weblog
- Author
- Simon Willison
- Public lists
-
davewiner/hackerNewsStars
Featured
- Fetched
Quoting Thibault Sottiaux
On file deletions. We’ve investigated a handful of reports where GPT-5.6 unexpectedly deleted files.
What we have found is that this most commonly occurs when:
- Full access mode is enabled and codex is run without sandboxing protections, including without auto review being enabled
- The model attempts to override the $HOME env var to define a temporary directory.
- The model makes an honest mistake and mistakenly deletes $HOME instead.
— Thibault Sottiaux, describing a pretty gnarly Codex bug
Tags: codex, coding-agents, generative-ai, ai, llms
Inkling: Our open-weights model
Quoting Linus Torvalds
I realize that some people really dislike AI, but this is an area where I'm willing to absolutely put my foot down as the top-level maintainer.
Linux is not one of those anti-AI projects, and if somebody has issues with that, they can do the open-source thing and fork it.
Or just walk away.
AI is a tool, just like other tools we use. And it's clearly a useful one.
It may not have been that "clearly" even just a year ago, but it's no longer in question today.
There are other questions around AI (like what the economy of it will actually look like in the end), but "is it useful" is no longer one of those questions. Anybody who doubts that clearly hasn't actually used it.
— Linus Torvalds, Linux Media Mailing List
Tags: open-source, linus-torvalds, linux, generative-ai, ai, llms
Mermaid to Unicode box art (grok-mermaid)
Tool: Mermaid to Unicode box art (grok-mermaid)
While exploring the codebase for the newly open-sourced Grok CLI coding agent I came across xai-grok-markdown/src/mermaid.rs, a "self-contained terminal renderer for Mermaid diagrams" written in Rust.
I figured it would be fun to try that out in a browser via WebAssembly. Here's the prompt I ran in Claude Code for web (Fable 5), and this is what the resulting tool looks like:
![Screenshot of a Mermaid diagram editor showing source code and rendered flowchart. The code reads: graph TD Start[Request received] --> Auth{Authenticated?} Auth -->|yes| Rate{Rate limit OK?} Auth -->|no| R401[401 Unauthorized] Rate -->|yes| H(Handle request) Rate -->|no| R429[429 Too Many Requests] H -.-> Log[Audit log] H ==> Resp[200 OK]. Below the code are controls labeled Max width: Fit output panel, Copy as text, and Copy link to this diagram. The rendered flowchart on a dark background flows top-down: Request received leads to Authenticated?, which branches yes to Rate limit OK? and no to 401 Unauthorized. Rate limit OK? branches yes to Handle request and no to 429 Too Many Requests. Handle request connects with a dotted arrow to Audit log and a thick arrow to 200 OK.](https://static.simonwillison.net/static/2026/grok-mermaid-wasm.png)
xai-org/grok-build, now open source
How I tricked Claude into leaking your deepest, darkest secrets
Quoting GitHub Changeling
Dependabot now waits until a new release has been available on its registry for at least three days before opening a version update pull request. This cooldown is now the default and requires no configuration.
— GitHub Changeling, embracing dependency cooldowns
Tags: dependency-cooldowns, packaging, security, github
simonw/pedalican
datasette 1.0a37
Release: datasette 1.0a37
A minor release. Performance and documentation improvements to the permissions system, plus I reverted a cosmetic API change which caused almost every existing plugin test suite to break.
Tags: datasette
lobste.rs is now running on SQLite
Quoting Armin Ronacher
Using uvx in GitHub Actions in a cache-friendly way
TIL: Using uvx in GitHub Actions in a cache-friendly way
I finally found a cache-friendly recipe for using uvx tool-name in GitHub Actions workflows that I like.
The trick is setting a UV_EXCLUDE_NEWER: "2026-07-12" environment variable at the start of the workflow and then using that as part of the GitHub Actions cache key. This means any uvx tool-name commands will resolve to the most recent version as-of that date, and you can bust the cache and upgrade the tools by bumping the date in the future.
My goal here is to use Python tools in GitHub Actions without every run of the workflow hitting PyPI to download a fresh copy of the tool and its dependencies.
Tags: packaging, pypi, python, github-actions, uv
DOOMQL
datasette code-frequency chart on GitHub
datasette code-frequency chart on GitHub
Out of curiosity I decided to see if I could find a useful illustration of the impact of coding agents and Opus 4.5 class models on my own output. The best I've found so far is this GitHub chart of frequency of code changes to my Datasette open source project:
The big spike in activity at the end aligns with Opus 4.8, GPT-5.5, Fable 5 and GPT-5.6 Sol.
Tags: github, ai, datasette, generative-ai, llms, ai-assisted-programming, coding-agents
Directly Responsible Individuals (DRI)
shot-scraper 1.11
sqlite-utils 4.1.1
Fable gets another bump
sqlite-utils 4.1
Quoting Nilay Patel
Quoting OpenAI
[...] Work on web and mobile runs in the cloud. Work in the desktop app can also use local files and desktop apps with your permission. At launch, cloud Work conversations do not appear in desktop Work; desktop Work threads and local files remain on that computer.
— OpenAI, trying (unsuccessfully) to clarify ChatGPT Work
The new GPT-5.6 family: Luna, Terra, Sol
llm-meta-ai 0.1
Release: llm-meta-ai 0.1
Let's LLM run prompts against the new muse-spark-1.1 model.
llm 0.31.1
Release: llm 0.31.1
- Fix for a bug with OpenAI Chat Completion endpoints where a tool call with empty arguments could result in a JSON error from some providers. #1521
This bug came up when I was testing llm-meta-ai.
Tags: llm
Introducing Muse Spark 1.1
Rewriting Bun in Rust
Introducing GPT‑Live
Quoting Kenton Varda
I just declared a moratorium against AI-written change descriptions (e.g. PR and commit messages, also issues/tickets) from my team.
AI was writing change descriptions that were worse than useless to me as I tried to review PRs: outlining details of the code that could easily be seen by looking at the code, but omitting the higher-level framing needed to understand broadly what the code is doing.
Tags: kenton-varda, ai-assisted-programming, generative-ai, ai, llms
sqlite-migrate 0.2
Release: sqlite-migrate 0.2
The version that retires the library, instead implementing a compatibility shim against the new sqlite-utils 4.0 dependency.
Tags: sqlite-utils