Simon Willison’s Weblog

Subscribe
Atom feed

Elsewhere

Filters: Sorted by date

Tool DOT File Renderer — Render DOT graph files into visual diagrams directly in your browser. Paste your DOT syntax into the textarea and the graph will automatically render as an SVG visualization, with live updates as you edit. Share your graphs by copying the URL, which encodes your DOT content in the fragment identifier.
Release asyncinject 0.6.1 — Run async workflows using pytest-fixtures-style dependency injection
None
TIL Testing different Python versions with uv with-editable and uv-test — A quick `uv` recipe I figured out today, for running the tests for a project against multiple Python versions.
None
TIL Testing different Python versions with uv with-editable and uv-test — A quick `uv` recipe I figured out today, for running the tests for a project against multiple Python versions.
Release datasette-os-info 0.1 — Provide information about the current OS at /-/os
Tool JSON String Extractor — Extract all strings from JSON data that exceed 20 characters in length or contain line breaks. This tool is useful for identifying longer text content within complex JSON structures for review, localization, or documentation purposes. Simply paste JSON into the textarea to automatically display matching strings along with their object paths, and use the copy button to quickly transfer any string to your clipboard.
None
TIL Error 153 Video player configuration error on YouTube embeds — I recently noticed that almost every YouTube video on [my blog](https://simonwillison.net/) was displaying the same mysterious error message:
Release llm-anthropic 0.19 — LLM access to models by Anthropic, including the Claude series
Tool Keyboard Debugger — Monitor keyboard input in real-time with this interactive keyboard debugger that displays pressed keys and their corresponding key codes. Press any keys on your keyboard to see them appear with visual feedback, including support for simultaneous multi-key presses and special key representations. This tool is useful for testing keyboard functionality, debugging input handling, and understanding key event properties like key name, code, and keyCode values.
Release llm-gemini 0.26 — LLM plugin to access Google's Gemini family of models
Tool MicroPython Code Executor — Execute Python code in a sandboxed MicroPython WebAssembly environment with output displayed in real-time. Code is automatically saved to the URL for convenient sharing and persistence, and the environment supports JavaScript interoperability including the `fetch()` API for making HTTP requests. Built-in examples demonstrate common programming patterns from basic operations to working with APIs.
Tool NumPy Vectors & Matrices — Pyodide Lab — Execute NumPy vector and matrix operations directly in your browser using an interactive lab powered by Pyodide. Work through five hands-on exercises covering elementwise operations, dot products, matrix multiplication, broadcasting, and indexing, then experiment freely in the playground sandbox with instant Python output.
Release llm-openai-plugin 0.6 — OpenAI plugin for LLM
Two wooden cabinet orchestrions side by side, one has a lot of pipes, one has two visible drums. A green gramophone horn sits between them.
Museum The Musical Museum — 399 High St, Brentford TW8 0DU, United Kingdom
Release llm-openrouter 0.5 — LLM plugin for models hosted by OpenRouter
Tool Badge Drawer — Device-Scale Canvas — # Badge Drawer — Device-Scale Canvas
Tool GitHub account lookup — Look up GitHub user profiles and account information by username or numeric account ID. This tool fetches account details from the GitHub REST API, displaying information such as the user's name, login handle, account ID, creation date, profile avatar, and API response latency. The application stores rate limit information locally to prevent repeated requests during API throttling periods.
The entrance to the Coutellerie Nontronnaise - a striking wooden plank frontage showing the name and the iconic Nontron arch logo.
Museum Coutellerie Nontronnaise — Place Paul Bert, 24300 Nontron
Tool AI Adoption Rolling Avg — Pyodide — View AI adoption trends across different firm sizes by analyzing survey data on artificial intelligence usage in the workplace. This page runs a Python analysis using Pyodide to fetch employment survey data, calculate six-survey rolling averages, and generate an interactive visualization showing adoption rates by company size from November 2023 through August 2025. Download the resulting chart as PNG or SVG for further use or presentation.
Tool Pyodide Bar Chart Demo (pandas + matplotlib) — Execute Python code directly in your browser with Pyodide, a WebAssembly-based Python runtime. This demo loads pandas, numpy, and matplotlib in the client to generate a bar chart from sample data and display it as a rendered image—no server required. The first run may take a few seconds as the necessary libraries are downloaded from CDN, but subsequent executions run instantly from your browser's cache.
Tool Devon Lane Driving Simulator — Navigate the treacherous single-track lanes of rural Devon in this interactive driving simulator, where you must manage your sanity while encountering cyclists, tractors, caravans, and other obstacles. Each encounter presents a unique challenge requiring a dice roll to succeed, with your choices affecting both your progress and mental state as you attempt to travel increasingly longer distances.
Three levels of glass walkways through the storehouse, museum exhibits everywhere, the facade of a brutalist residential estate hangs near the middle of the photo.
Museum V&A East Storehouse — Parkes Street, Queen Elizabeth Olympic Park, Hackney Wick, London, E20 3AX
Tool Rich text to markdown — Convert rich text formats into properly formatted Markdown by pasting content into the text area. The tool automatically detects and converts formatting such as bold, italic, links, code blocks, headings, tables, and lists while sanitizing content to remove potentially unsafe elements. Supports rich text from multiple sources including RTF, HTML, and plain text formats.
Tool Hacker News comments for a user — View Hacker News comments for any user by entering their handle to retrieve up to 1,000 of their most recent comments. The tool displays each comment with its date, the story title, links to both the comment and the thread, and the full comment text in an easily readable format. You can then copy all the results to your clipboard for further analysis or archiving.
Release llm-gemini 0.25 — LLM plugin to access Google's Gemini family of models
None
TIL Running a gpt-oss eval suite against LM Studio on a Mac — OpenAI's [gpt-oss models](https://github.com/openai/gpt-oss/) come with an eval suite, which is described in their [Verifying gpt-oss implementations](https://cookbook.openai.com/articles/gpt-oss/verifying-implementations) cookbook. I figured out how to run it on my Mac against their `gpt-oss-20b` model hosted locally using LM Studio, using [uv](https://github.com/astral-sh/uv).
Release datasette-demo-dbs 0.1.1 — Load demo DBs when Datasette starts
Release datasette-demo-dbs 0.1 — Load demo DBs when Datasette starts
None
TIL Configuring GitHub Codespaces using devcontainers — [GitHub Codespaces](https://github.com/features/codespaces) provides full development environments in your browser, and is free to use with anyone with a GitHub account. Each environment has a full Linux container and a browser-based UI using VS Code.