Simon Willison’s Weblog

Subscribe
Atom feed

Elsewhere

Filters: Sorted by date

TIL Using a Tailscale exit node with GitHub Actions — For an (ethical) [scraping project](https://github.com/simonw/scrape-doge-gov) I found that my low-volume scraper was working from my laptop but was being blocked by Cloudflare when I attempted to run it in GitHub Actions, presumably because the GitHub Actions IP range was disallowed.
None
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.
Release shot-scraper 1.7 — A command-line utility for taking automated screenshots of websites
TIL Using S3 triggers to maintain a list of files in DynamoDB — This is a three-quarters-baked experiment that I ran this morning. I'm interested in efficiently tracking which new files have been added to an S3 bucket, where that bucket could potentially hold millions of items.
None
Release symbex 1.4.1 — Find the Python code for specified symbols
Release files-to-prompt 0.6 — Concatenate a directory full of files into a single prompt for use with LLMs
Release condense-json 0.1.1 — Python function for condensing JSON using replacement strings
Release condense-json 0.1 — Python function for condensing JSON using replacement strings
Release llm-gemini 0.11 — LLM plugin to access Google's Gemini family of models
Release llm-anthropic 0.13 — LLM access to models by Anthropic, including the Claude series
Release llm 0.22 — Access large language models from the command-line
Release llm-mlx 0.3 — Support for MLX models in LLM
Release llm-mlx 0.2.1 — Support for MLX models in LLM
Release llm-mlx 0.2 — Support for MLX models in LLM
Release llm-mlx 0.1 — Support for MLX models in LLM
TIL Trying out Python packages with ipython and uvx — I figured out a really simple pattern for experimenting with new Python packages today:
None
Release files-to-prompt 0.5 — Concatenate a directory full of files into a single prompt for use with LLMs
Release datasette-public 0.3a1 — Make selected Datasette databases and tables visible to the public
Release shot-scraper 1.6 — A command-line utility for taking automated screenshots of websites
Release llm-sentence-transformers 0.3 — LLM plugin for embeddings using sentence-transformers
Release datasette-remove-database 0.1a0 — Remove a database from Datasette
Release datasette-load 0.1a2 — API and UI for bulk loading data into Datasette from a URL
Release datasette-load 0.1a1 — API and UI for bulk loading data into Datasette from a URL
Release llm-smollm2 0.1.2 — SmolLM2-135M-Instruct.Q4_1 for LLM
Release llm-smollm2 0.1.1 — SmolLM2-135M-Instruct.Q4_1 for LLM
Release llm-smollm2 0.1 — SmolLM2-135M-Instruct.Q4_1 for LLM
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.
Release datasette-public 0.3a0 — Make selected Datasette databases and tables visible to the public
Release datasette 1.0a17 — An open source multi-tool for exploring and publishing data
Release datasette-load 0.1a0 — API and UI for bulk loading data into Datasette from a URL