Currently working on Datasette, LLM and associated projects. Read my blog, subscribe to my newsletter, follow me on Mastodon or on Bluesky. Recent releases <!-- recent_releases starts --> datasette-acl 0.6a0…
Currently working on Datasette, LLM and associated projects. Read my blog, subscribe to my newsletter, follow me on Mastodon or on Bluesky.
Recent releases
<!-- recent_releases starts --> datasette-acl 0.6a0 - 2026-06-18datasette 1.0a34 - 2026-06-16
datasette-tailscale 0.1a0 - 2026-06-16
datasette-apps 0.1a3 - 2026-06-15
datasette-agent 0.3a0 - 2026-06-15
luau-wasm 0.1a0 - 2026-06-13
asyncinject 0.7 - 2026-06-11
llm 0.32a3 - 2026-06-09
<!-- recent_releases ends -->
More recent releases
On my blog
<!-- blog starts --> Datasette Apps: Host custom HTML applications inside Datasette - 2026-06-18GLM-5.2 is probably the most powerful text-only open weights LLM - 2026-06-17
Publishing WASM wheels to PyPI for use with Pyodide - 2026-06-13
Claude Fable is relentlessly proactive - 2026-06-11
Initial impressions of Claude Fable 5 - 2026-06-09
Running Python code in a sandbox with MicroPython and WASM - 2026-06-06
<!-- blog ends -->
More on simonwillison.net
TIL
<!-- tils starts --> Cloudflare CAPTCHA on at least one ampersand - 2026-06-16Setting a custom price for a model in AgentsView - 2026-06-09
Using LLM in the shebang line of a script - 2026-05-11
SQL functions in Google Sheets to fetch data from Datasette - 2026-04-20
Running OpenClaw in Docker - 2026-02-01
Cloudflare response header transform rules - 2026-01-23
<!-- tils ends -->
More on til.simonwillison.net
How this works
-
llm
Access large language models from the command-line
Python ★ 12k 1d agoExplain → -
datasette
An open source multi-tool for exploring and publishing data
Python ★ 11k 15h agoExplain → -
files-to-prompt
Concatenate a directory full of files into a single prompt for use with LLMs
Python ★ 2.8k 1y agoExplain → -
shot-scraper
A command-line utility for taking automated screenshots of websites
Python ★ 2.4k 4d agoExplain → -
sqlite-utils
Python CLI utility and library for manipulating SQLite databases
Python ★ 2.1k 18h agoExplain → -
tools
Assorted useful tools, almost entirely generated using LLMs
HTML ★ 1.7k 4d agoExplain → -
claude-code-transcripts
Tools for publishing transcripts for Claude Code sessions
Python ★ 1.6k 4mo agoExplain → -
til
Today I Learned
HTML ★ 1.4k 5d agoExplain → -
showboat
Create executable documents that demonstrate an agent's work
Go ★ 1.2k 3mo agoExplain → -
csvs-to-sqlite
Convert CSV files into a SQLite database
Python ★ 932 1y agoExplain → -
claude-skills
The contents of /mnt/skills in Claude's code interpreter environment
★ 925 6mo agoExplain → -
rodney
CLI tool for interacting with the web
Go ★ 726 3mo agoExplain → -
research
Research projects
Python ★ 662 5d agoExplain → -
db-to-sqlite
CLI tool for exporting tables or queries from any SQL database to a SQLite file
Python ★ 494 3y agoExplain → -
llm-cmd
Use LLM to generate and execute commands in your shell
Python ★ 471 1y agoExplain → -
django-sql-dashboard
Django app for building dashboards using raw SQL queries
Python ★ 467 5mo agoExplain → -
llm-gemini
LLM plugin to access Google's Gemini family of models
Python ★ 445 1mo agoExplain → -
simonw
https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/
Python ★ 437 16h agoExplain → -
simonwillisonblog
The source code behind my blog
Python ★ 419 3d agoExplain → -
click-app
Cookiecutter template for creating new Click command-line tools
Python ★ 411 8mo agoExplain → -
datasette-lite
Datasette running in your browser using WebAssembly and Pyodide
CSS ★ 405 5mo agoExplain → -
ttok
Count and truncate text based on tokens
Python ★ 397 2y agoExplain → -
nicar-2025-scraping
Cutting-edge web scraping techniques workshop at NICAR 2025
★ 375 1y agoExplain → -
strip-tags
CLI tool for stripping tags from HTML
Python ★ 361 1y agoExplain → -
llm-openrouter
LLM plugin for models hosted by OpenRouter
Python ★ 350 2mo agoExplain → -
csv-diff
Python CLI tool and library for diffing CSV and JSON files
Python ★ 332 1y agoExplain → -
symbex
Find the Python code for specified symbols
Python ★ 316 1y agoExplain → -
llm-claude-3 ▣
LLM plugin for interacting with the Claude 3 family of models
Python ★ 292 1y agoExplain → -
llm-gpt4all
Plugin for LLM adding support for the GPT4All collection of models
Python ★ 266 2y agoExplain → -
shot-scraper-template
Template repository for setting up shot-scraper
★ 262 1y agoExplain → -
s3-credentials
A tool for creating credentials for accessing S3 buckets
Python ★ 256 6mo agoExplain → -
llm-mlx
Support for MLX models in LLM
Python ★ 247 1y agoExplain → -
openai-to-sqlite
Save OpenAI API results to a SQLite database
Python ★ 236 2y agoExplain → -
python-lib
Opinionated cookiecutter template for creating a new Python library
Python ★ 230 5mo agoExplain → -
llm-anthropic
LLM access to models by Anthropic, including the Claude series
Python ★ 228 11d agoExplain → -
git-history
Tools for analyzing Git history using SQLite
Python ★ 225 6mo agoExplain → -
llm-mistral
LLM plugin providing access to Mistral models using the Mistral API
Python ★ 216 2mo agoExplain → -
ca-fires-history
Tracking fire data from www.fire.ca.gov
★ 216 1y agoExplain → -
cia-world-factbook-2020
Recovered cia.gov/the-world-factbook/about/archives/download/factbook-2020.zip from Internet Archive
HTML ★ 212 4mo agoExplain → -
llm-jq
Write and execute jq programs with the help of LLM
Python ★ 195 1y agoExplain → -
llm-mlc
LLM plugin for running models using MLC
Python ★ 191 2y agoExplain → -
action-transcription
A tool for creating a repository of transcribed videos
Python ★ 189 3y agoExplain → -
justjshtml
JavaScript port of EmilStenstrom/justhtml
JavaScript ★ 174 5mo agoExplain → -
pelican-bicycle
LLM benchmark: Generate an SVG of a pelican riding a bicycle
Shell ★ 171 11mo agoExplain → -
google-drive-to-sqlite
Create a SQLite database containing metadata from Google Drive
Python ★ 164 1y agoExplain → -
llm-prices
Prices of various LLMs
HTML ★ 157 11d agoExplain → -
micropython-wasm
Python library for running a MicroPython sandbox using WebAssembly
Python ★ 156 14d agoExplain → -
prompts-js
async alternatives to browser alert() and prompt() and confirm()
JavaScript ★ 152 1y agoExplain → -
llm-llama-cpp
LLM plugin for running models using llama.cpp
Python ★ 146 2y agoExplain → -
ratelimitcache
A memcached backed rate limiting decorator for Django.
Python ★ 142 8y agoExplain → -
datasette.io
The official project website for Datasette
HTML ★ 139 2d agoExplain → -
sqlite-diffable
Tools for dumping/loading a SQLite database to diffable directory structure
Python ★ 138 1y agoExplain → -
airtable-export
Export Airtable data to YAML, JSON or SQLite files on disk
Python ★ 134 2y agoExplain → -
git-scraper-template
Template repository for setting up a new git scraper
Shell ★ 130 7mo agoExplain → -
go-to-wheel
Wrap Go binaries in Python wheels
Python ★ 130 4mo agoExplain → -
llm-hacker-news
LLM plugin for pulling content from Hacker News
Python ★ 129 1y agoExplain → -
sqlite-history
Track changes to SQLite tables using triggers
Python ★ 129 2y agoExplain → -
advent-of-code-2022-in-rust
Copilot-assisted Advent of Code 2022 to learn Rust
Rust ★ 123 3y agoExplain → -
djp
A plugin system for Django
Python ★ 120 1y agoExplain → -
datasette-graphql
Datasette plugin providing an automatic GraphQL API for your SQLite databases
Python ★ 109 2mo agoExplain → -
llm-openai-via-codex
Access OpenAI models via an existing Codex subscription
Python ★ 108 1mo agoExplain → -
scan-for-secrets
Scan for secrets in files you plan to share
Python ★ 103 2mo agoExplain → -
codespaces-llm
Codespaces with LLM pre-configured using GitHub models
★ 103 10mo agoExplain → -
datasette-cluster-map
Datasette plugin that shows a map for any data with latitude/longitude columns
JavaScript ★ 101 7mo agoExplain → -
1991-WWW-NeXT-Implementation
No description.
Objective-C ★ 100 1y agoExplain → -
present
SwiftUI presentation software, every slide is a URL
Swift ★ 98 3mo agoExplain → -
system-exploration-g
Unofficial documentation for GitHub Spark, generated with GitHub Spark
TypeScript ★ 92 7mo agoExplain → -
markdown-to-sqlite
CLI tool for loading markdown files into a SQLite database
Python ★ 92 4y agoExplain → -
llm-gguf
Run models distributed as GGUF files using LLM
Python ★ 90 1y agoExplain → -
sqlite-migrate
A simple database migration system for SQLite, based on sqlite-utils
Python ★ 86 18h agoExplain → -
scrape-hacker-news-by-domain
Scrape HN to track links from specific domains
JavaScript ★ 83 5d agoExplain → -
llm-cluster
LLM plugin for clustering embeddings
Python ★ 83 2y agoExplain → -
datasette-ripgrep
Web interface for searching your code using ripgrep, built as a Datasette plugin
Python ★ 80 7mo agoExplain → -
bandwidther
SwiftUI menu bar app for monitoring application bandwidth use
Swift ★ 78 2mo agoExplain → -
llm-sentence-transformers
LLM plugin for embeddings using sentence-transformers
Python ★ 74 1y agoExplain → -
python-lib-template-repository
GitHub template repository for creating new Python libraries, using the simonw/python-lib cookiecutter template
★ 73 4mo agoExplain → -
llm-fragments-github
Load GitHub repository contents as LLM fragments
Python ★ 72 1y agoExplain → -
actions-latest
Keeping track of the latest versions of various GitHub Actions
Python ★ 70 2d agoExplain → -
sqlite-utils-ask
Ask questions of your data with LLM assistance
Python ★ 70 1y agoExplain → -
pypi-rename
Cookiecutter template for creating renamed PyPI packages
Python ★ 69 2y agoExplain → -
llm-replicate
LLM plugin for models hosted on Replicate
Python ★ 66 2y agoExplain → -
llm-embed-jina
Embedding models from Jina AI
Python ★ 66 2y agoExplain → -
datasette-vega
Datasette plugin for visualizing data using Vega
JavaScript ★ 64 5mo agoExplain → -
language-models-on-the-command-line
Handout for a talk I gave about LLM and CLI tools
★ 63 2y agoExplain → -
dbf-to-sqlite
CLI tool for converting DBF files (dBase, FoxPro etc) to SQLite
Python ★ 61 4y agoExplain → -
uv-init-demos
What you get when you run different uv init commands
Shell ★ 60 1d agoExplain → -
docs-for-llms
Concatenated documentation for use with LLMs
Shell ★ 60 4d agoExplain → -
pge-outages-pre-2024
Tracking PG&E outages
Python ★ 58 4y agoExplain → -
sqlite-chronicle
Use triggers to track when rows in a SQLite table were updated or deleted
Python ★ 56 4d agoExplain → -
claude-to-sqlite
Convert a Claude.ai export to SQLite
Python ★ 55 1y agoExplain → -
llm-tools-sqlite
LLM tools for running queries against SQLite
Python ★ 52 1y agoExplain → -
llm-video-frames
LLM fragment plugin to turn a video into images of different frames
Python ★ 51 1y agoExplain → -
download-tiles
Download map tiles and store them in an MBTiles database
Python ★ 51 2y agoExplain → -
chartroom
CLI tool for creating charts
Python ★ 50 4mo agoExplain → -
sf-tree-history
Tracking the history of trees in San Francisco
★ 49 2d agoExplain → -
puppeteer-screenshot
Vercel app for taking screenshots of web pages using Puppeteer
JavaScript ★ 48 4y agoExplain → -
simonwillisonblog-backup
Backups of the database for simonwillison.net
★ 47 1d agoExplain → -
datasette-publish-vercel
Datasette plugin for publishing data using Vercel
Python ★ 47 3y agoExplain → -
mbox-to-sqlite
Load email from .mbox files into SQLite
Python ★ 44 2y agoExplain → -
gpuer
Show GPU usage with a macOS menu icon
Swift ★ 43 2mo agoExplain → -
skills
Skills for coding agents
★ 43 3mo agoExplain → -
llm-bedrock
Run prompts against models hosted on AWS Bedrock
Python ★ 41 1y agoExplain → -
llm-python
"llm python" is a command to run a Python interpreter in the LLM virtual environment
Python ★ 39 2y agoExplain → -
llm-command-r
Access the Cohere Command R family of models
Python ★ 39 1y agoExplain → -
scrape-open-data
Scrape various open data directories to create an index of what's available out there
Python ★ 38 1y agoExplain → -
building-with-llms-pycon-2025
Building software on top of Large Language Models tutorial from PyCon 2025
★ 38 1y agoExplain → -
asyncinject
Run async workflows using pytest-fixtures-style dependency injection
Python ★ 37 10d agoExplain → -
llm-tools-docker
Grant LLM access to a Docker container for running commands
Python ★ 37 1y agoExplain → -
click-app-template-repository
GitHub template repository for creating new Python Click CLI tools, using the simonw/click-app cookiecutter template
★ 37 2y agoExplain → -
llm-templates-fabric
Load LLM templates from Fabric
Python ★ 37 6mo agoExplain → -
llm-pdf-to-images
LLM fragments plugin to load a PDF as a sequence of images
Python ★ 36 1y agoExplain → -
llm-embed-onnx
Run embedding models using ONNX
Python ★ 36 2y agoExplain → -
ollama-models-atom-feed
https://ollama.com/search?o=newest
Python ★ 34 2h agoExplain → -
llm-plugin
A cookiecutter template for building plugins for LLM
Python ★ 32 2mo agoExplain → -
denobox
Run JavaScript code and WASM in a Deno sandbox
Python ★ 31 4mo agoExplain → -
llm-llama-server
LLM plugin for interacting with llama-server models
Python ★ 31 1y agoExplain → -
micro-javascript
Python port of MicroQuickJS
Python ★ 30 5mo agoExplain → -
llm-tools-datasette
Expose Datasette instances to LLM as a tool
Python ★ 30 1y agoExplain → -
llm-rag
Answer questions against collections stored in LLM using Retrieval Augmented Generation
Python ★ 30 2y agoExplain → -
llm-docs
LLM plugin for asking questions of LLM's own documentation, and related packages
Python ★ 30 1y agoExplain → -
research-llm-apis
Research into the HTTP APIs from various LLM providers.
Shell ★ 29 2mo agoExplain → -
llm-tools-quickjs
JavaScript execution as a tool for LLM
Python ★ 27 1y agoExplain → -
monthly-newsletter-archive
My sponsors-only monthly newsletter on a one month delay
Shell ★ 27 20d agoExplain → -
llm-smollm2
SmolLM2-135M-Instruct.Q4_1 for LLM
Python ★ 27 1y agoExplain → -
llm-whisper-api
Run transcriptions using the OpenAI Whisper API
Python ★ 27 1y agoExplain → -
datasette-auth-passwords
Datasette plugin for authentication using passwords
Python ★ 26 1y agoExplain → -
datasette-plugin-template-repository
GitHub template repository for creating new Datasette plugins, using the simonw/datasette-plugin cookiecutter template
★ 25 5mo agoExplain → -
llm-mrchatterbox
Chat with Mr Chatterbox, trained on a corpus of over 28,000 Victorian-era British texts published between 1837 and 1899
Python ★ 25 2mo agoExplain → -
pge-outages
Tracking PG&E power outages
★ 24 1d agoExplain → -
llm-tools-simpleeval
Make simple_eval available as an LLM tool
Python ★ 24 1y agoExplain → -
sqlite-scanner
Scan folders for SQLite database files
Go ★ 24 4mo agoExplain → -
sqlite-history-json
SQLite table history tracking using a JSON audit log
Python ★ 23 4mo agoExplain → -
scrape-fediverse
Git scrapers for scraping the fediverse
★ 22 2h agoExplain → -
llm-markov
Plugin for LLM adding a Markov chain generating model
Python ★ 21 1y agoExplain → -
datasette-media
Datasette plugin for serving media based on a SQL query
Python ★ 21 3y agoExplain → -
llm-groq-whisper
Transcribe audio using the Groq.com Whisper API
Python ★ 21 1y agoExplain → -
datasette-edit-schema
Datasette plugin for modifying table schemas
JavaScript ★ 20 7mo agoExplain → -
llm-templates
LLM templates to share
★ 19 1y agoExplain → -
russian-ira-facebook-ads-datasette
Explore 3,500 Facebook ads reported to have been bought by the Russian Internet Research Agency
Python ★ 18 3y agoExplain → -
sqlite-utils-tui
Terminal UI for sqlite-utils
Python ★ 18 1y agoExplain → -
datasette-llm-embed
Datasette plugin adding a llm_embed(model_id, text) SQL function
Python ★ 18 2y agoExplain → -
liteparse ⑂
A fast, helpful, and open-source document parser
★ 17 1mo agoExplain → -
dcinbox_explorer ▣
A Flask+Elasticsearch UI for exploring the DC Inbox dataset from http://web.stevens.edu/dcinbox/Home.html
Python ★ 17 4y agoExplain → -
showboat-demos
Demos of simonw/showcase
HTML ★ 17 4mo agoExplain → -
scrape-fema-shelters
No description.
★ 15 3m agoExplain → -
datasette-css-properties
Experimental Datasette output plugin using CSS properties
Python ★ 15 18d agoExplain → -
datasette-auth-tokens
Datasette plugin for authenticating access using API tokens
Python ★ 15 12d agoExplain → -
playing-with-github-pages
Trying things out with GitHub Pages
HTML ★ 15 3y agoExplain → -
llm-tools-edit
LLM plugin providing tools for editing files
Python ★ 14 3mo agoExplain → -
datasette-render-timestamps
Datasette plugin for rendering timestamps
Python ★ 14 3y agoExplain → -
codespaces
Python 3.13, uv and GitHub Copilot in Codespaces
★ 14 4mo agoExplain → -
sqlite-fts5-trigram
Trigram tokenizer module for SQLite FTS5
C ★ 14 5y agoExplain → -
homebrew-llm
Homebrew formulas for installing LLM and related tools
Ruby ★ 14 2y agoExplain → -
scrape-florida-outages
No description.
★ 13 1h agoExplain → -
usgs-scraper
No description.
★ 12 1h agoExplain → -
recent-california-brown-pelicans
Publishing an atom feed of recent California Brown Pelican sightings from iNaturalist
Python ★ 12 15h agoExplain → -
nicar-2026-coding-agents
Coding agents for data analysis, a workshop at NICAR 2026
Shell ★ 12 3mo agoExplain → -
package-stats
Download statistics for my PyPI packages
Python ★ 11 1h agoExplain → -
scrape-faa-releasable-aircraft
No description.
★ 10 1d agoExplain → -
scrape-claude-artifacts
A scraper for implementation details of Claude Artifacts
★ 10 1y agoExplain → -
scrape-roads-dot-ca-gov
Scrape highway information from https://roads.dot.ca.gov/
HTML ★ 9 1d agoExplain → -
luau-wasm
Luau packaged as a Pyodide WebAssembly wheel
C++ ★ 9 7d agoExplain → -
scrape-github-actions-package-versions
Git scraper recording the package versions installed on the defaul GitHub Actions ubuntu-latest worker
★ 9 3d agoExplain → -
python-lib-template-demo
Demo for https://github.com/simonw/python-lib
Python ★ 9 5mo agoExplain → -
llm-private
No description.
Python ★ 9 2mo agoExplain → -
llm-fragments-symbex
LLM fragment loader for Python symbols
Python ★ 8 1y agoExplain → -
llm-lmstudio ⑂
A plugin to use Local models via LM Studio API with https://llm.datasette.io
★ 8 2mo agoExplain → -
llm-echo
Debug plugin for LLM providing an echo model
Python ★ 8 1mo agoExplain → -
skills-1 ⑂
Skills Catalog for Codex
★ 8 1mo agoExplain → -
datasette-youtube-embed
Turn YouTube URLs into embedded players in Datasette
JavaScript ★ 8 4mo agoExplain → -
json-to-files
Create separate files on disk based on a JSON object
Python ★ 8 3y agoExplain → -
datasette-showboat
Datasette plugin for SHOWBOAT_REMOTE_URL
Python ★ 7 2mo agoExplain → -
llm-all-models-async
Register async versions of models from LLM plugins that only provide a sync version
Python ★ 6 2mo agoExplain → -
codespaces-datasette
An example repository for running Datasette in GitHub Codespaces
★ 6 3y agoExplain → -
watchfiles ⑂
Simple, modern and fast file watching and code reload for Python, written in Rust
★ 6 1mo agoExplain → -
llm-smolvlm
SmolVLM for LLM, using transformers
Python ★ 6 1y agoExplain → -
doctr ⑂
docTR (Document Text Recognition) - a seamless, high-performing & accessible library for OCR-related tasks powered by Deep Learning.
★ 6 2y agoExplain → -
pypi-datasette-packages
Archive PyPI JSON information for all Datasette related packages
Shell ★ 5 2d agoExplain → -
llm-github-models ⑂
No description.
★ 5 10mo agoExplain → -
congress-legislators-datasette
Datasette instance with data from unitedstates/congress-legislators
Python ★ 5 1y agoExplain → -
sqlite-ast
Python library for parsing SQLite SELECT queries into an AST
Python ★ 5 3mo agoExplain → -
cloudflare-redirects
Various Cloudflare Pages redirect sites
HTML ★ 5 1y agoExplain → -
free-threaded-wheels-results
https://hugovk.github.io/free-threaded-wheels/results.json
Shell ★ 4 1d agoExplain → -
datasette-export
Export pages from Datasette to files on disk
Python ★ 4 2d agoExplain → -
sqlite-utils-fast-fks
Fast foreign key addition for sqlite-utils
Python ★ 4 2y agoExplain → -
sqlite-utils-move-tables
sqlite-utils plugin adding a move-tables command
Python ★ 4 2y agoExplain → -
sqlite-ast-conformance
A language independent conformance suite for implementations of a SQLite SELECT query parser
C ★ 4 3d agoExplain → -
whale-spotter
Spot whales
Python ★ 3 19d agoExplain → -
udhr-markdown
Markdown exports of the Universal Declaration of Human Rights
JavaScript ★ 3 23d agoExplain → -
guidepup-macos-prototype
A prototype of running Guidepup on macOS in GitHub Actions
JavaScript ★ 3 27d agoExplain → -
ds4 ⑂
DeepSeek 4 Flash local inference engine for Metal and CUDA
★ 3 1mo agoExplain → -
granite-4.1-3b-gguf-pelicans
No description.
HTML ★ 3 1mo agoExplain → -
pytest-unused-port
pytest fixture finding an unused local port
Python ★ 3 8mo agoExplain → -
multipart-form-data-conformance
A conformance suite for HTTP multipart form data
Python ★ 3 5mo agoExplain → -
usgs-demo
https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.geojson
Shell ★ 2 2h agoExplain → -
cloudflare-redirect-resolver
No description.
TypeScript ★ 2 16h agoExplain → -
inaturalist-clumps
Runs inaturalist-clumper
★ 2 2d agoExplain → -
chonkers-alert
Sightings of Chonkers
Python ★ 2 26d agoExplain → -
inaturalist-clumper
Group iNaturalist sightings into clumps
Python ★ 2 1mo agoExplain → -
warehouse ⑂
The Python Package Index
★ 1 1mo agoExplain →
No repos match these filters.