<?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-29T16:45:27+00:00</updated><author><name>Simon Willison</name></author><entry><title>Photo Scrubber — local face blur &amp; metadata removal</title><link href="https://tools.simonwillison.net/photo-scrubber" rel="alternate"/><published>2026-09-29T16:45:27+00:00</published><updated>2026-09-29T16:45:27+00:00</updated><id>https://tools.simonwillison.net/photo-scrubber</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/photo-scrubber"&gt;Photo Scrubber — local face blur &amp; metadata removal&lt;/a&gt;&lt;/p&gt;</summary><category term="photography"/><category term="tools"/></entry><entry><title>Bluesky reply bot checker</title><link href="https://tools.simonwillison.net/bluesky-bot-check" rel="alternate"/><published>2026-09-27T18:41:44+00:00</published><updated>2026-09-27T18:41:44+00:00</updated><id>https://tools.simonwillison.net/bluesky-bot-check</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/bluesky-bot-check"&gt;Bluesky reply bot checker&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Check a Bluesky account for patterns common to automated reply bots by analyzing recent posts for typing speed, posting times, engagement patterns, and other behavioral signals. The tool displays every measurement and rule so you can verify the reasoning and see example replies that triggered the most signals.&lt;/p&gt;</summary><category term="twitter"/><category term="bluesky"/><category term="vibe-coding"/><category term="ai-misuse"/></entry><entry><title>Kākāpō Party</title><link href="https://tools.simonwillison.net/kakapo-party" rel="alternate"/><published>2026-09-26T23:39:06+00:00</published><updated>2026-09-26T23:39:06+00:00</updated><id>https://tools.simonwillison.net/kakapo-party</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/kakapo-party"&gt;Kākāpō Party&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Experience an interactive pixel-art celebration featuring kākāpō (New Zealand's flightless parrots) jumping and dancing to music. Click, tap, or press Space to trigger confetti bursts, balloons, streamers, and festive effects while the birds party under a disco ball with choreographed dance moves that sync to an upbeat rhythm.&lt;/p&gt;</summary><category term="animation"/><category term="speaking"/><category term="ai"/><category term="kakapo"/><category term="playwright"/><category term="generative-ai"/><category term="llms"/><category term="anthropic"/><category term="claude"/><category term="claude-code"/></entry><entry><title>Gemini 3.8 TTS Playground</title><link href="https://tools.simonwillison.net/gemini-tts-playground" rel="alternate"/><published>2026-09-23T17:12:27+00:00</published><updated>2026-09-23T17:12:27+00:00</updated><id>https://tools.simonwillison.net/gemini-tts-playground</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/gemini-tts-playground"&gt;Gemini 3.8 TTS Playground&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Test and experiment with Google's Gemini 3.8 text-to-speech API through an interactive playground where you can compose single-voice narration or multi-speaker conversations, preview the generated audio, and explore request and response details. Save your compose settings to bookmarkable URLs for easy sharing, and generate high-quality speech synthesis powered by your Gemini API key.&lt;/p&gt;</summary><category term="text-to-speech"/><category term="gemini"/></entry><entry><title>Shadow roots, explained with live examples</title><link href="https://tools.simonwillison.net/shadow-roots" rel="alternate"/><published>2026-09-23T16:37:18+00:00</published><updated>2026-09-23T16:37:18+00:00</updated><id>https://tools.simonwillison.net/shadow-roots</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/shadow-roots"&gt;Shadow roots, explained with live examples&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Learn about shadow DOM through interactive examples that demonstrate style encapsulation, inheritance, slots, parts, and JavaScript access. Explore how shadow roots create isolated DOM trees with private stylesheets and elements that interact with the page DOM in specific, controlled ways.&lt;/p&gt;</summary><category term="css"/></entry><entry><title>Gemini Live audio</title><link href="https://tools.simonwillison.net/gemini-live" rel="alternate"/><published>2026-09-15T22:47:07+00:00</published><updated>2026-09-15T22:47:07+00:00</updated><id>https://tools.simonwillison.net/gemini-live</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/gemini-live"&gt;Gemini Live audio&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Talk to Gemini 3.8 Live and Gemini 3.8 Live Extended Thinking with live audio conversations. The interface captures real-time speech input, displays transcripts of your conversation, and allows you to interrupt responses naturally or send text messages. Extended Thinking models support configurable reasoning levels while processing conversations that can include optional document context for reference.&lt;/p&gt;</summary><category term="google"/><category term="tools"/><category term="websockets"/><category term="generative-ai"/><category term="llms"/><category term="gemini"/><category term="llm-release"/><category term="speech-to-text"/></entry><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, curves, and text with materials, lighting, and optional saved camera positions from Blender 5.x files, providing 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 other articles for clichéd phrasing commonly associated with AI-generated writing. Paste text directly into the page, load content from a URL via the Jina Reader proxy, or use the example loader to see the tool in action.&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></feed>