Half Moon Bay, California

Simon Willison

Elite
@simonw

llm. Access large language models from the command-line

12k

datasette. An open source multi-tool for exploring and publishing data

11k

files-to-prompt. Concatenate a directory full of files into a single prompt for use with LLMs

2.8k

shot-scraper. A CLI utility for taking screenshots of websites, recording video demos and scraping sites using JavaScript

2.5k

sqlite-utils. Python CLI utility and library for manipulating SQLite databases

2.1k

tools. Assorted useful tools, almost entirely generated using LLMs

1.8k

til. Today I Learned

1.4k

csvs-to-sqlite. Convert CSV files into a SQLite database

937

db-to-sqlite. CLI tool for exporting tables or queries from any SQL database to a SQLite file

494

llm-cmd. Use LLM to generate and execute commands in your shell

472

django-sql-dashboard. Django app for building dashboards using raw SQL queries

466

llm-gemini. LLM plugin to access Google's Gemini family of models

449

simonw. https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/

438

simonwillisonblog. The source code behind my blog

418

click-app. Cookiecutter template for creating new Click command-line tools

412

datasette-lite. Datasette running in your browser using WebAssembly and Pyodide

405

ttok. Count and truncate text based on tokens

397

nicar-2025-scraping. Cutting-edge web scraping techniques workshop at NICAR 2025

376

strip-tags. CLI tool for stripping tags from HTML

360

llm-openrouter. LLM plugin for models hosted by OpenRouter

354

csv-diff. Python CLI tool and library for diffing CSV and JSON files

336

symbex. Find the Python code for specified symbols

317

llm-claude-3. LLM plugin for interacting with the Claude 3 family of models

292

llm-gpt4all. Plugin for LLM adding support for the GPT4All collection of models

266

shot-scraper-template. Template repository for setting up shot-scraper

265

s3-credentials. A tool for creating credentials for accessing S3 buckets

256

djangode. Utilities functions for node.js that borrow some useful concepts from Django

255

llm-mlx. Support for MLX models in LLM

249

openai-to-sqlite. Save OpenAI API results to a SQLite database

236

llm-anthropic. LLM access to models by Anthropic, including the Claude series

232

python-lib. Opinionated cookiecutter template for creating a new Python library

231

git-history. Tools for analyzing Git history using SQLite

225

llm-mistral. LLM plugin providing access to Mistral models using the Mistral API

217

ca-fires-history. Tracking fire data from www.fire.ca.gov

216

llm-jq. Write and execute jq programs with the help of LLM

195

llm-mlc. LLM plugin for running models using MLC

191

action-transcription. A tool for creating a repository of transcribed videos

188

geocoders. Ultra simple API for geocoding a single string against various web services.

183

ospeak. CLI tool for running text through OpenAI Text to speech

170

django-openid. A modern library for integrating OpenID with Django - incomplete, but really nearly there (promise)

164

google-drive-to-sqlite. Create a SQLite database containing metadata from Google Drive

164

prompts-js. async alternatives to browser alert() and prompt() and confirm()

152

llm-llama-cpp. LLM plugin for running models using llama.cpp

146

django-queryset-transform. Experimental .transform(fn) method for Django QuerySets, for clever lazily evaluated optimisations.

145

sqlite-diffable. Tools for dumping/loading a SQLite database to diffable directory structure

139

sqlite-history. Track changes to SQLite tables using triggers

129

download-esm. Download ESM modules from npm and jsdelivr

125

blip-caption. Generate captions for images with Salesforce BLIP

125

djp. A plugin system for Django

120

s3-ocr. Tools for running OCR against files stored in S3

120

scrape-chatgpt-plugin-prompts. Shell

113

codespaces-llm. Codespaces with LLM pre-configured using GitHub models

103

1991-WWW-NeXT-Implementation. Objective-C

100
53
Apply