Simon Willison’s Weblog

Subscribe
Atom feed

Tools

Filters: Sorted by date

Tool Pyodide REPL — Execute Python code directly in your web browser using Pyodide, a port of CPython to WebAssembly. This REPL provides an interactive Python environment with support for multiple Pyodide versions, single-line and multi-line input modes, and command history navigation. The interface is optimized for both desktop and mobile devices, with a dark theme and responsive layout that prevents content from being hidden behind on-screen keyboards.
Tool GIF Dissector — Parse and visualize animated GIF files by extracting individual frames, timing data, color palettes, and detailed metadata. Upload a GIF file to instantly decompose it into its constituent frames with precise delay measurements, disposal methods, transparency information, and global color table analysis. The tool renders composited frames to show exactly how the animation appears, while providing comprehensive technical details about the image structure and properties.
Tool SQLite AST — Parse SQLite SELECT queries into abstract syntax trees and view the results in JSON and Python representations. This tool uses the sqlite-ast library running in your browser via Pyodide to analyze SQL syntax and display both the dictionary-based parse tree and a rich pretty-printed representation. It supports complex queries including compound selects, common table expressions, and window functions, and can display partial parse results when encountering syntax errors.
Tool Minesweeper — Play a classic Minesweeper game directly in your browser with support for three difficulty levels: Easy, Medium, and Hard. Use left-click to reveal cells and right-click to place flags, or toggle between reveal and flag modes on mobile with long-press support. The game features a timer to track your speed, mine counter to monitor remaining flags, and immediate visual feedback when you win or hit a mine.
Tool Bookmarklets Collection — Access a collection of practical bookmarklets for web development and general browsing tasks. Each bookmarklet can be installed by dragging it to your bookmarks bar on desktop browsers or by copying the code for mobile Safari. The collection includes tools for revealing page anchor points and viewing page source code with formatting options, all presented with detailed documentation and source code inspection capabilities.
Tool Seamless Sandboxed Iframe Prototype — Embed untrusted content safely within a webpage using a sandboxed iframe that automatically adjusts its height without allowing cross-origin access. The prototype uses `postMessage` to communicate height changes between the sandboxed iframe and parent page, enabling seamless content display while maintaining security restrictions. Various content examples demonstrate how the sandbox handles dynamic content, images, and attempts at malicious behavior.
Tool Lobsters Latest Comments Bookmarklet — Browse Lobste.rs comment threads with an enhanced "Latest" tab that displays all comments in chronological order with newest first, making it easier to catch up on recent discussion activity. The bookmarklet adds reply-to links showing parent comment relationships and includes a "Copy Thread" feature to export the entire discussion as numbered plain text.
Tool v86 Linux Emulator — Run Linux commands in your browser using x86 emulation powered by v86, a JavaScript/WebAssembly-based x86 emulator. This tool executes a minimal Buildroot Linux distribution directly in your browser, with typical boot times between 10-30 seconds depending on your device and connection speed. Enter commands in the input field to interact with the Linux shell and view output in the terminal window.
Tool Red Annotation Extractor — # Red Annotation Extractor Documentation
Tool Hyperviz — Create real-time audio-reactive visualizations with eight distinct modes including plasma, particles, tunnel effects, kaleidoscope patterns, Matrix rain, terrain, fire, and starfield animations. The visualizer captures frequency data from your microphone and responds dynamically to bass, mid, and high frequencies, with beat detection triggering visual flashes and intensity changes.
Tool Software Heritage Repository Retriever — Download archived Git repositories from Software Heritage, the universal archive of software source code. This tool queries the Software Heritage GraphQL API to locate repositories and creates downloadable bare Git archives through the vault service. Enter a repository URL to retrieve the latest snapshot and access detailed archive information including the Software Heritage identifier (SWHID) for future reference.
Tool Cooking Timer — # Cooking Timer Documentation
Tool PG&E Outage Map - Half Moon Bay Area — Track power outages affecting the Half Moon Bay area with this interactive map displaying real-time PG&E outage data within a 15-mile radius. The application visualizes outage locations as point markers and affected areas as polygons, while displaying key statistics including the number of outages, impacted customers, and affected regions. Custom markers can be added by providing a URL parameter, and the map automatically refreshes every five minutes to ensure current outage information.
Tool MicroQuickJS Code Executor — Execute JavaScript code in a lightweight MicroQuickJS sandbox environment running via WebAssembly, with results displayed directly on the page. The sandbox supports ES5-like JavaScript features and automatically saves your code in the URL for easy sharing and recovery. Choose between optimized and original WebAssembly versions, try built-in examples, and use Ctrl+Enter to quickly run your code.
Tool llm-lib demo — This is an interactive demonstration of a unified JavaScript library that provides a consistent interface for working with multiple large language model providers. The tool allows users to seamlessly switch between OpenAI, Anthropic Claude, and Google Gemini while managing API keys and configuring system prompts. Both streaming and non-streaming response modes are supported, with real-time status updates and syntax-highlighted code examples showing how to integrate the library into projects.
Tool Photo print layout — Create custom photo print layouts for A4 pages with adjustable grid configurations, image fitting options, and portrait or landscape orientations. Users can add photos by uploading files or dragging and dropping them directly onto the page, then remove individual photos or clear the entire layout before printing. The preview displays actual print dimensions, allowing precise control over how photos will appear on the final printed output.
Tool CSS Grid Lanes Polyfill Demo — # CSS Grid Lanes Polyfill Demo
Tool JSON Diff Tool — Compare JSON documents side-by-side to identify additions, removals, and modifications between two versions. The tool displays differences with color-coded highlighting and provides character-level detail for string changes, making it easy to spot exactly what has changed. Preloaded examples are available to explore common use cases like configuration updates, user profile changes, and API response comparisons.
Tool Claude Code Timeline Viewer — View Claude Code session `.jsonl` files as an interactive timeline with customizable filtering and search capabilities. This tool displays events chronologically, extracting conversation messages, tool calls, and file snapshots with formatted previews of text content, code blocks, and embedded images. Use the file picker, drag-and-drop, paste input, or URL fetch to load your session data and explore it with timezone switching, content-type filters, and easy JSON export.
Tool Codex Timeline Viewer — View Mozilla Codex rollout timeline events from `.jsonl` files with an interactive interface that supports filtering, searching, and detailed event inspection. Load files via drag-and-drop, paste, or URL fetch, then explore events organized chronologically with customizable timezone display and comprehensive event details including formatted content, tool calls, and reasoning blocks.
Tool QuickJS Code Executor — Execute JavaScript code in a sandboxed QuickJS WebAssembly environment with a built-in synchronous `fetch()` function for retrieving remote content. Code is automatically encoded in the URL hash, allowing you to easily share executable snippets with others. The interface provides a collection of ready-to-run examples covering common programming tasks and JavaScript features, making it useful for learning, testing, and demonstrating code behavior.
Tool Is it a bird? — Determine whether images contain birds using OpenAI's CLIP model running directly in your browser through Transformers.js. Upload images by dragging and dropping, pasting from your clipboard, or selecting files, or use your device's camera for real-time analysis. The tool processes all images locally with no data sent to external servers, and includes a webcam mode with pinch-to-zoom functionality for mobile devices.
Tool Blog to Newsletter — Convert blog entries into Substack newsletter content with this tool that pulls from a Datasette backup of simonwillison.net. The application fetches recent blog posts, links, quotes, and notes, then generates formatted HTML ready to paste into Substack, while also tracking which content has already been sent in previous newsletters to avoid duplicates.
Tool Clipboard Backup — Save and manage clipboard content across multiple formats including text, HTML, RTF, and images with this clipboard backup tool. Paste any content from your clipboard to automatically create a backup that can be restored later or downloaded in its original format. All backups are stored locally in your browser using IndexedDB, giving you persistent access to your clipboard history without any external uploads or server storage.
Tool JustHTML Playground - HTML5 Parser — Test the JustHTML Python HTML5 parser directly in your browser with this interactive playground. Parse, query, and manipulate HTML using CSS selectors, pretty-print documents, extract text content, and convert HTML to Markdown—all running client-side with Pyodide. The playground supports multiple analysis modes including tree structure visualization and streaming event inspection for comprehensive HTML document exploration.
Tool PDF Viewer — View PDF files from any CORS-enabled URL with this interactive PDF viewer application. The viewer supports navigation between pages, adjustable zoom levels including auto-scaling, and maintains your viewing state through URL parameters. High-DPI display support ensures sharp text rendering across all devices, and the responsive design adapts seamlessly to mobile screens.
Tool Bugzilla Bug Viewer — View Mozilla Bugzilla bug reports with a streamlined interface that displays bug details, comments, and change history in an organized timeline format. Enter a bug ID, URL, or Bugzilla link to retrieve comprehensive information including status, dependencies, keywords, and all activity related to the bug. The viewer automatically fetches and displays details about related bugs referenced in dependencies and history changes, making it easy to navigate connections between issues.