Simon Willison’s Weblog

Subscribe

Tools

Filters: Sorted by date

Tool Passkey Demo | tools.simonwillison.net — Experiment with passkey registration and authentication using the WebAuthn API in your browser. This demo allows you to create passkey credentials, authenticate with them, and inspect the underlying protocol responses and data. Stored credentials are maintained locally in your browser's storage, making this a fully client-side implementation for learning how modern passwordless authentication works.
Tool Lightning Timer — Track time with Lightning Timer, a full-screen countdown application that displays elapsed seconds in large, easy-to-read format. Click the timer display to start, pause, or reset the countdown, and access the settings icon to configure the total duration and optional warning threshold that triggers a visual color change. The timer supports URL-based configuration for quick setup and displays the remaining time in both the page and browser title bar.
Tool Avatar Web Component — Display and edit images with an interactive cropping interface for creating avatars or profile pictures. Users can select images by clicking, dragging and dropping files, or pasting from the clipboard, then crop them to a specified aspect ratio using resizable handles. The final cropped image is automatically exported as a JPEG data URL and can be synced to a designated form input field for seamless integration with web forms.
Tool Hugging Face Model Storage Checker — Check the storage size of Hugging Face machine learning models by entering a model URL or repository path. The tool queries the Hugging Face API to retrieve the total storage used by the specified model and displays the result in a human-readable format (MB or GB). Models can be looked up using either their full Hugging Face URL or their model identifier in the format `username/model-name`.
Tool Incomplete JSON Pretty Printer — Format and visualize incomplete or truncated JSON data with automatic live formatting as you type. This tool handles malformed JSON structures by applying consistent indentation and proper spacing, making it easier to read and understand partial JSON snippets. The formatted output can be copied to the clipboard with a single click, and example data is available to test the functionality.
Tool Filter Badge Component — # Filter Badge Component Documentation
Tool Side Panel Modal with Dialog Element — Explore a product catalog with interactive item details displayed in a smooth side panel modal. Click any product card to view comprehensive information including category, price, and description, with the option to toggle between modal and non-modal dialog behavior. The interface includes a feedback form within the side panel, allowing users to submit comments about products with a seamless animated experience.
Tool Swagger Subset — Extract a subset of Swagger/OpenAPI definitions by selecting specific API endpoints and their dependencies. This tool parses a Swagger JSON document, displays all available paths and methods in an interactive checklist, and generates a filtered JSON output containing only the selected endpoints along with any referenced schema definitions they require. The generated subset can be copied to the clipboard for use in other applications or documentation.
Tool Token Usage Calculator — Calculate token usage across your Claude and other LLM API calls by pasting YAML output from the LLM tool's `llm logs -su` command. The calculator automatically groups token consumption by model and displays total input and output tokens for each. This helps you track and analyze API usage patterns across multiple conversations and model versions.
Tool CSS Text Wrapping Properties Guide — Learn how CSS text wrapping properties control how text flows within containers, including word-wrap, word-break, white-space, text-overflow, hyphens, line-break, and text-wrap. This guide provides interactive demonstrations of each property's behavior, detailed explanations of their values, and current browser compatibility information to help you choose the right approach for your text layout needs.
Tool Encrypt / decrypt message — Encrypt and decrypt messages using a passphrase with this web application that leverages modern browser cryptography APIs. The tool generates a secure shareable link containing an encrypted message that can only be decrypted with the correct passphrase, making it useful for sending sensitive information. All encryption and decryption operations occur entirely in the browser, ensuring your data never leaves your device.
Tool JSON Schema Builder — Create JSON schemas interactively with this builder tool that allows you to define properties, set data types, and configure nested objects through an intuitive form interface. The generated schema is displayed in real-time and can be copied to your clipboard for use in your applications. Your schema is automatically saved in the URL, making it easy to share or revisit your work later.
Tool Rich Text HTML Extractor — Extract HTML code from formatted text by pasting rich content into this tool, which automatically captures and displays the underlying HTML markup. The tool provides both the raw HTML code for editing and a live preview of how the formatted content renders. Use the copy button to quickly transfer the extracted HTML to your clipboard, or clear the interface to process new content.
Tool Schema DSL to JSON Converter — Convert a compact schema definition language into JSON schema format in real-time. This tool accepts a concise DSL where you specify field names, types (str, int, float, bool), and optional descriptions, then automatically generates the corresponding JSON schema. The converter supports both object schemas and array item schemas through the "Array items schema" option.
Tool Pipfile.lock Dependency Parser — Parse Pipfile.lock files to extract Python package dependencies and convert them into multiple formats for easy management and sharing. The tool automatically extracts package names and versions from the lock file and displays them in both Pipfile and requirements.txt formats, with one-click copying functionality for each output format.
Tool progress — Track the progress of the current U.S. presidential term with real-time statistics and a visual progress bar. The page displays elapsed and remaining days, percentage completion, and specific metrics related to the midterm election cycle scheduled for November 3, 2026. Information updates automatically to provide current data on the four-year term that began on January 20, 2025.
Tool APSW SQLite query explainer — Analyze and explain SQLite queries using APSW by entering SQL code and executing it in an in-browser Python environment. The tool provides detailed query analysis including execution plans, expanded SQL, and query information to help understand how SQLite processes your queries. Optional setup SQL can be run before the main query to create tables or initialize data, and parameterized queries are supported through labeled input fields.
Tool SQL Pretty Printer — Format and beautify SQL queries with customizable styling options. This tool supports multiple SQL dialects including SQLite, PostgreSQL, and MySQL, allowing you to control indentation width, keyword capitalization, and indentation style. The formatted output can be easily copied to your clipboard with a single click.
Tool Drag and Drop Image Optimizer — Compress and optimize image files by uploading them to this web-based tool that applies adjustable JPEG quality settings to reduce file size. The interface allows users to compare the original and optimized versions side-by-side by toggling between views or pressing and holding the image, while providing real-time compression statistics and the ability to download the optimized file or copy its data URI for embedding in code.
Tool Render Claude Citations — Render Claude API responses with proper citation formatting by pasting JSON output into this tool. The tool parses the response structure and displays text content alongside blockquote-formatted citations, making it easy to review how Claude has sourced and attributed information. An embedded iframe renderer safely displays the formatted output with styling that highlights cited passages.
Tool PHP deserializer — Convert serialized PHP data to JSON format for easy viewing and manipulation. Paste your PHP serialized string into the input field to automatically parse and display the equivalent JSON output. Use the copy button to quickly transfer the JSON to your clipboard.
Tool Live region notification demo — Explore live region notifications with this interactive accessibility demo that allows you to test how screen readers announce dynamic content updates. The page provides instructions for testing with VoiceOver on macOS and iOS, plus interactive controls to trigger notifications with different aria-live settings (assertive or polite) to observe how screen readers prioritize and announce content changes.
Tool bluesky-resolve — View and resolve Bluesky handles to their corresponding Decentralized Identifiers (DIDs) using the AT Protocol API. Enter a Bluesky handle in the format `username.bsky.social` to retrieve the associated DID, which serves as a unique identifier for accounts on the Bluesky network. This tool provides a simple interface for looking up handle-to-DID mappings through Bluesky's public resolver endpoint.
Tool YAML Explorer — Parse and visualize YAML files in an interactive tree format with collapsible sections for easy navigation of nested data structures. Enter YAML content directly or load from a URL, then explore the data by expanding and collapsing individual elements. The tool preserves your navigation state in the URL, allowing you to share links with specific sections already expanded.
Tool Word & Character Counter — Track word and character counts across multiple writing sections with automatic saving to browser storage. Each section displays real-time statistics as you type, and content persists between sessions. Add or remove writing sections as needed to organize different pieces of text.
Tool OpenAI WebRTC Audio Session — Establish real-time audio conversations with OpenAI's GPT-4o model using WebRTC technology. This interface allows you to select from multiple voice options and monitors detailed token usage and costs for each interaction and across your entire session. All API tokens are stored locally in your browser for convenience.
Tool JSON to YAML Converter — Convert JSON data into multiple YAML formats with a single paste. The tool generates three output variations—block style for readability, flow style for compactness, and quoted strings style for explicit formatting—allowing you to choose the best format for your needs. Each output can be copied to your clipboard with a single click.
Tool HTML Header Processor — Process HTML content to automatically generate unique IDs for all header elements and create a table of contents with anchor links. This tool is useful for adding navigation functionality to static HTML pages or preparing content for documentation systems that require header identification. Simply paste your HTML and provide the page URL, then the processor will output the modified HTML and a formatted list of clickable header links.