Simon Willison’s Weblog

Subscribe
Atom feed

Elsewhere

Filters: Sorted by date

Release present 0.1a0 — SwiftUI presentation software, every slide is a URL
Release showboat v0.6.1 — Create executable documents that demonstrate an agent's work
Research README Timezone Clarification — Timezone mismatches in the project’s root README.md were identified due to inconsistent git commit author dates—some in UTC, others in US Pacific time—displayed without timezone clarification. The listing was generated by a cog script that extracted dates using `git log`, then formatted them without standardizing to a common timezone, causing confusion across 39 project directories.
Research WebMCP + Chrome DevTools Protocol Demo — WebMCP is a proposed browser API that enables web applications to expose structured, callable tools for AI agents, reducing the need for unreliable UI automation. This project demonstrates how to register and interact with WebMCP tools using a Python client over the Chrome DevTools Protocol (CDP), providing a bridge to discover and call these tools programmatically.
Release datasette-files 0.1a1 — Upload files to Datasette
Release datasette-files-s3 0.1a0 — datasette-files S3 backend
Release datasette-endpoints 0.1 — Plugin to add a /-/endpoints debug page listing all configured endpoints
Release datasette-files 0.1a0 — Upload files to Datasette
Research Header Alignment Investigation - simonwillison.net — Addressing a subtle header alignment issue on simonwillison.net, this investigation tracked down a persistent ~1px height mismatch between left and right headers caused by anchor elements generating taller inline boxes than plain text due to font metrics. Multiple fixes—including removing position:relative/top:1px hacks and setting explicit heights—proved fragile.
Release llm-gemini 0.29 — LLM plugin to access Google's Gemini family of models
Tool Contact form — Submit contact information through this responsive form that provides real-time validation using native HTML5 attributes and CSS-only feedback. The form validates required fields including name, email, and message content, displaying checkmarks for valid inputs and error messages for invalid entries without requiring any JavaScript.
Release datasette-showboat 0.1a1 — Datasette plugin for SHOWBOAT_REMOTE_URL
Tool Gemini Prompt — Generate responses from Google's Gemini API with support for system prompts, model selection, and streaming output. The interface stores your API key securely in local storage and maintains a history of system prompts for quick reuse. Markdown formatting is automatically rendered in the output area, and you can copy responses to your clipboard with a single click.
Release llm-anthropic 0.24 — LLM access to models by Anthropic, including the Claude series
Release rodney v0.4.0 — CLI tool for interacting with the web
Research SQLite Hamming Distance Extension: Scalar vs Virtual Table — Exploring efficient Hamming distance search in SQLite for binary embeddings, this project implements both a scalar function extension and a virtual table extension as described in "Hamming Distance for Hybrid Search in SQLite". The scalar function scans and sorts rows to locate nearest matches, while the virtual table caches embeddings and leverages a max-heap to deliver top-k results up to seven times faster.
Release datasette-showboat 0.1a0 — Datasette plugin for SHOWBOAT_REMOTE_URL
Release showboat v0.6.0 — Create executable documents that demonstrate an agent's work
Tool Gradient image generator — Generate customizable gradient images with multiple pattern overlays and effects. This tool provides controls for linear, radial, and conic gradients with adjustable colors, along with options for layering various patterns including noise, geometric shapes, and textures. Additional features include film grain, vignetting, and blend mode controls to fine-tune the visual appearance, with the ability to export the final result as a PNG image or save and restore settings as JSON.
Research sqlite-chronicle + sqlite-history-json: Same Table Investigation — Using both sqlite-chronicle and sqlite-history-json on the same SQLite table is feasible, as each library installs its own set of triggers and companion tables without interfering with standard CRUD operations. Chronicle focuses on efficient sync/versioning, while history-json offers a complete audit log, and both operate independently even with compound primary keys or concurrent audit groups.
Release sqlite-chronicle 0.6.1 — Use triggers to track when rows in a SQLite table were updated or deleted
Release sqlite-chronicle 0.6 — Use triggers to track when rows in a SQLite table were updated or deleted
Release sqlite-chronicle 0.5 — Use triggers to track when rows in a SQLite table were updated or deleted
Research Guidepup Screen Reader Investigation — An investigation into Guidepup reveals that its core package does not support Linux—only macOS (VoiceOver) and Windows (NVDA). However, two practical methods were proven for generating audio screen reader sessions on Linux: one uses the AT-SPI accessibility stack and Orca to walk a real browser's accessibility tree and synthesize narration; the other employs the virtual screen reader (pure JS, fast) to simulate navigation, then builds audio from spoken phrases.
Release showboat v0.5.0 — Create executable documents that demonstrate an agent's work
Release chartroom 0.2.1 — CLI tool for creating charts
Release chartroom 0.2 — CLI tool for creating charts
Release chartroom 0.1 — CLI tool for creating charts
Tool Python Comment Stripper — Remove all comments from Python source code while preserving strings, docstrings, and code structure using the `tokenize` module running on Pyodide. Paste your Python code into the input panel, and the tool automatically strips comments in real-time, with the ability to copy the cleaned output to your clipboard. The application runs entirely in the browser without requiring a local Python installation.
Research SeaweedFS 4.12 Feature Testing — SeaweedFS version 4.12 was evaluated on Linux x86_64, demonstrating its functionality as a scalable distributed file system through its core blob store, filer, S3-compatible, and WebDAV APIs. All-in-one deployment via `weed mini` enables access to web UIs for cluster administration, filer usage, and volume monitoring (Admin UI screenshot). Testing confirmed seamless file operations across HTTP, S3, WebDAV, including directory management, standard HTTP features, and multiple URL formats.