<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: Tools</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/atom/beats/tool/" rel="self"/><id>http://simonwillison.net/</id><updated>2026-09-09T23:58:32+00:00</updated><author><name>Simon Willison</name></author><entry><title>.blend URL Viewer</title><link href="https://tools.simonwillison.net/blender-viewer" rel="alternate"/><published>2026-09-09T23:58:32+00:00</published><updated>2026-09-09T23:58:32+00:00</updated><id>https://tools.simonwillison.net/blender-viewer</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/blender-viewer"&gt;.blend URL Viewer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;View Blender .blend files directly in your browser by pasting a URL to a CORS-accessible file or GitHub repository link. The viewer renders mesh geometry with materials, lighting, and optional saved camera positions from Blender 5.x files, and provides interactive orbit controls, wireframe mode, and model fitting capabilities.&lt;/p&gt;</summary><category term="3d"/><category term="javascript"/><category term="tools"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="blender"/><category term="coding-agents"/><category term="codex"/><category term="gpt-6-astra"/></entry><entry><title>Video compressor</title><link href="https://tools.simonwillison.net/video-compressor" rel="alternate"/><published>2026-09-07T18:29:07+00:00</published><updated>2026-09-07T18:29:07+00:00</updated><id>https://tools.simonwillison.net/video-compressor</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/video-compressor"&gt;Video compressor&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Compress videos in your browser using FFmpeg compiled to WebAssembly. Upload a video file to generate multiple encoded versions with different quality settings and output sizes, then compare and download the smallest file that meets your needs. All processing happens locally with no uploads to external servers.&lt;/p&gt;</summary><category term="ffmpeg"/><category term="video"/><category term="webassembly"/><category term="claude"/><category term="claude-code"/><category term="claude-mythos-fable"/></entry><entry><title>Mercator ↔ Equal Earth</title><link href="https://tools.simonwillison.net/equal-earth" rel="alternate"/><published>2026-09-07T16:24:16+00:00</published><updated>2026-09-07T16:24:16+00:00</updated><id>https://tools.simonwillison.net/equal-earth</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/equal-earth"&gt;Mercator ↔ Equal Earth&lt;/a&gt;&lt;/p&gt;&lt;p&gt;View an interactive animated map that morphs between Mercator and Equal Earth projections using a slider or play button. The visualization demonstrates how different map projections represent the world, with controls to blend between the two projection types and observe how they preserve different geographic properties.&lt;/p&gt;</summary><category term="geospatial"/><category term="d3"/><category term="vibe-coding"/><category term="gpt-6-astra"/></entry><entry><title>GeoJSON Map Viewer</title><link href="https://tools.simonwillison.net/geojson" rel="alternate"/><published>2026-09-01T18:05:45+00:00</published><updated>2026-09-01T18:05:45+00:00</updated><id>https://tools.simonwillison.net/geojson</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/geojson"&gt;GeoJSON Map Viewer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;View and visualize GeoJSON data on an interactive OpenStreetMap with customizable styling options. Paste GeoJSON objects (Feature, FeatureCollection, or Geometry) into the editor, adjust fill color and opacity, and render the features directly on the map. Add multiple shapes with individual styling—each shape is numbered and can be removed, later shapes draw on top of earlier ones, and style changes apply live to the rendered map.&lt;/p&gt;</summary><category term="geospatial"/><category term="tools"/><category term="geojson"/><category term="chatgpt"/></entry><entry><title>CORS Chat</title><link href="https://tools.simonwillison.net/cors-chat" rel="alternate"/><published>2026-08-15T14:49:54+00:00</published><updated>2026-08-15T14:49:54+00:00</updated><id>https://tools.simonwillison.net/cors-chat</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/cors-chat"&gt;CORS Chat&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Chat directly with any OpenAI Responses-compatible API endpoint using browser-accessible CORS headers. Configure custom endpoints with optional bearer token authentication and additional HTTP headers, create multiple conversations with different models and request settings, and persist everything locally in your browser.&lt;/p&gt;</summary><category term="svg"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="cors"/><category term="openrouter"/><category term="lm-studio"/></entry><entry><title>Slack Emoji Maker</title><link href="https://tools.simonwillison.net/slack-emoji-maker" rel="alternate"/><published>2026-07-31T20:18:05+00:00</published><updated>2026-07-31T20:18:05+00:00</updated><id>https://tools.simonwillison.net/slack-emoji-maker</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/slack-emoji-maker"&gt;Slack Emoji Maker&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Create custom Slack emoji from any image by automatically removing backgrounds, cropping to square, and resizing to meet Slack's requirements (under 128KB PNG). The tool provides visual editing controls including color-based background removal, square cropping with handles, transparency trimming, and color reduction, along with real-time preview in light and dark Slack themes.&lt;/p&gt;</summary><category term="tools"/><category term="slack"/></entry><entry><title>SQLite Query Explainer</title><link href="https://tools.simonwillison.net/sqlite-query-explainer" rel="alternate"/><published>2026-07-18T17:19:10+00:00</published><updated>2026-07-18T17:19:10+00:00</updated><id>https://tools.simonwillison.net/sqlite-query-explainer</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/sqlite-query-explainer"&gt;SQLite Query Explainer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;View Mozilla Bugzilla bug reports and run SQL queries against a SQLite database to see exactly how SQLite executes them. The tool annotates every line of `EXPLAIN QUERY PLAN` and low-level `EXPLAIN` bytecode output with plain-English descriptions of what the query planner and virtual machine are doing.&lt;/p&gt;</summary><category term="sql"/><category term="sqlite"/><category term="tools"/><category term="julia-evans"/><category term="pyodide"/><category term="claude-mythos-fable"/></entry><entry><title>LLM cliché highlighter</title><link href="https://tools.simonwillison.net/llm-cliche-highlighter" rel="alternate"/><published>2026-07-17T12:11:11+00:00</published><updated>2026-07-17T12:11:11+00:00</updated><id>https://tools.simonwillison.net/llm-cliche-highlighter</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/llm-cliche-highlighter"&gt;LLM cliché highlighter&lt;/a&gt;&lt;/p&gt;&lt;p&gt;View Mozilla Bugzilla bug reports and identify text containing clichéd phrases commonly found in language model outputs. Paste text into the analyzer or load it from a URL via the Jina Reader proxy to detect patterns including "no X, no Y" chains, "sit with that," "you already know," and phrases from Wikipedia's Signs of AI writing guide.&lt;/p&gt;</summary><category term="tools"/><category term="ai"/><category term="generative-ai"/><category term="llms"/></entry><entry><title>Mermaid to ASCII art (mermaid-ascii)</title><link href="https://tools.simonwillison.net/mermaid-ascii" rel="alternate"/><published>2026-07-16T14:57:39+00:00</published><updated>2026-07-16T14:57:39+00:00</updated><id>https://tools.simonwillison.net/mermaid-ascii</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/mermaid-ascii"&gt;Mermaid to ASCII art (mermaid-ascii)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Convert Mermaid diagram syntax into ASCII and Unicode box-drawing art rendered entirely in your browser using a Go library compiled to WebAssembly. The tool supports flowcharts with labeled edges, subgraphs, and color definitions, as well as sequence diagrams with notes and control flow fragments, while offering customizable padding and output options.&lt;/p&gt;</summary><category term="go"/><category term="tools"/><category term="webassembly"/><category term="mermaid"/></entry><entry><title>Mermaid to Unicode box art (grok-mermaid)</title><link href="https://tools.simonwillison.net/grok-mermaid" rel="alternate"/><published>2026-07-16T00:33:18+00:00</published><updated>2026-07-16T00:33:18+00:00</updated><id>https://tools.simonwillison.net/grok-mermaid</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/grok-mermaid"&gt;Mermaid to Unicode box art (grok-mermaid)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Convert Mermaid diagram syntax into terminal-style Unicode box-drawing art rendered entirely in your browser using WebAssembly. The tool supports flowcharts, sequence, state, class, and ER diagrams, with other diagram types falling back to a framed source listing. You can adjust the output width, copy the rendered diagram as text, or generate a shareable link to your diagram.&lt;/p&gt;</summary><category term="tools"/><category term="rust"/><category term="webassembly"/><category term="mermaid"/><category term="grok"/><category term="xai"/></entry><entry><title>github-code Web Component</title><link href="https://tools.simonwillison.net/github-code-component" rel="alternate"/><published>2026-07-07T16:18:16+00:00</published><updated>2026-07-07T16:18:16+00:00</updated><id>https://tools.simonwillison.net/github-code-component</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/github-code-component"&gt;github-code Web Component&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Embed code snippets from GitHub files directly into web pages using the github-code web component. Enter a GitHub URL with a line fragment (e.g., `#L33-L54`) to preview and generate embed code that displays the specified lines without syntax highlighting. Bookmarked URLs are preserved in the page fragment for easy sharing.&lt;/p&gt;</summary><category term="github"/><category term="web-components"/><category term="gpt"/></entry><entry><title>HTML table extractor</title><link href="https://tools.simonwillison.net/html-table-extractor" rel="alternate"/><published>2026-06-29T23:38:21+00:00</published><updated>2026-06-29T23:38:21+00:00</updated><id>https://tools.simonwillison.net/html-table-extractor</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/html-table-extractor"&gt;HTML table extractor&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Extract tables from pasted content and convert them to multiple formats. Paste HTML, rich text, or plain text containing tables, and the tool automatically detects and displays each table with a preview, then allows you to export it as HTML, Markdown, CSV, TSV, or JSON. You can also import tables directly from Wikipedia by searching for page titles.&lt;/p&gt;</summary><category term="html"/><category term="tools"/><category term="wikipedia"/><category term="cors"/></entry><entry><title>OPFS + Pyodide test harness</title><link href="https://tools.simonwillison.net/opfs-pyodide" rel="alternate"/><published>2026-06-23T18:58:54+00:00</published><updated>2026-06-23T18:58:54+00:00</updated><id>https://tools.simonwillison.net/opfs-pyodide</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/opfs-pyodide"&gt;OPFS + Pyodide test harness&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Test and manage the Origin Private File System (OPFS) across desktop and mobile browsers with an interactive interface powered by Pyodide. Create, read, and delete files in OPFS, run SQL queries against SQLite databases stored in the file system, and verify persistence across page reloads through a comprehensive activity log and capability detection panel.&lt;/p&gt;</summary><category term="browsers"/><category term="pyodide"/><category term="datasette-lite"/></entry><entry><title>&lt;click-to-play&gt; — a still that plays</title><link href="https://tools.simonwillison.net/click-to-play-component" rel="alternate"/><published>2026-06-17T03:56:10+00:00</published><updated>2026-06-17T03:56:10+00:00</updated><id>https://tools.simonwillison.net/click-to-play-component</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/click-to-play-component"&gt;&lt;click-to-play&gt; — a still that plays&lt;/a&gt;&lt;/p&gt;</summary><category term="gif"/><category term="javascript"/><category term="progressive-enhancement"/><category term="web-components"/></entry><entry><title>Datasette extras explorer</title><link href="https://tools.simonwillison.net/datasette-extras-explorer" rel="alternate"/><published>2026-06-11T15:10:07+00:00</published><updated>2026-06-11T15:10:07+00:00</updated><id>https://tools.simonwillison.net/datasette-extras-explorer</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/datasette-extras-explorer"&gt;Datasette extras explorer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Query Datasette JSON endpoints and discover available extras by entering a URL and selecting which extras to request. The interface displays the returned JSON response with syntax highlighting and allows you to examine which extras are supported by your Datasette instance, with support for sharing configurations via URL hash parameters.&lt;/p&gt;</summary></entry></feed>