| 9094 |
https://simonwillison.net/2025/Dec/17/ |
https://static.simonwillison.net/static/2025/gemini-3-flash.jpg |
Gemini 3 Flash |
| 9093 |
https://simonwillison.net/2025/Dec/15/ |
https://static.simonwillison.net/static/2025/justjshtml-better-card.jpg |
I ported JustHTML from Python to JavaScript with Codex CLI and GPT-5.2 in 4.5 hours |
| 9092 |
https://simonwillison.net/2025/Dec/14/ |
https://static.simonwillison.net/static/2025/justhtml-card.jpg |
JustHTML is a fascinating example of vibe engineering in action |
| 9091 |
https://simonwillison.net/2025/Dec/12/ |
https://static.simonwillison.net/static/2025/openai-skills-card.jpg |
OpenAI are quietly adopting skills, now available in ChatGPT and Codex CLI |
| 9090 |
https://simonwillison.net/2025/Dec/11/ |
https://static.simonwillison.net/static/2025/gpt-2.5-pelican.png |
GPT-5.2 |
| 9089 |
https://simonwillison.net/2025/Dec/10/ |
https://static.simonwillison.net/static/2025/html-tools-card.jpg |
Useful patterns for building HTML tools |
| 9088 |
https://simonwillison.net/2025/Dec/9/ |
https://img.youtube.com/vi/T8xiMgmb8po/maxresdefault.jpg |
Under the hood of Canada Spends with Brendan Samek |
| 9086 |
https://simonwillison.net/2025/Nov/26/ |
https://static.simonwillison.net/static/2025/data-renegades.jpg |
Highlights from my appearance on the Data Renegades podcast with CL Kao and Dori Wilson |
| 9085 |
https://simonwillison.net/2025/Nov/24/ |
https://static.simonwillison.net/static/2025/claude-opus-4.5-pelican-advanced.jpg |
Claude Opus 4.5, and why evaluating new LLMs is increasingly difficult |
| 9083 |
https://simonwillison.net/2025/Nov/22/ |
https://static.simonwillison.net/static/2025/olmotrace.jpg |
Olmo 3 is a fully open LLM |
| 9082 |
https://simonwillison.net/2025/Nov/20/ |
https://static.simonwillison.net/static/2025/nano-banana-datasette.jpg |
Nano Banana Pro aka gemini-3-pro-image-preview is the best available image generation model |
| 9081 |
https://simonwillison.net/2025/Nov/19/ |
https://static.simonwillison.net/static/2025/substack-card.jpg |
How I automate my Substack newsletter with content from my blog |
| 9080 |
https://simonwillison.net/2025/Nov/18/ |
https://static.simonwillison.net/static/2025/gemini-3-pelican-high.png |
Trying out Gemini 3 Pro with audio transcription and a new pelican benchmark |
| 9079 |
https://simonwillison.net/2025/Nov/13/ |
https://static.simonwillison.net/static/2025/gpt-5-pelican.png |
What happens if AI labs train for pelicans riding bicycles? |
| 9078 |
https://simonwillison.net/2025/Nov/9/ |
https://static.simonwillison.net/static/2025/codex-hacking-mini.png |
Reverse engineering Codex CLI to get GPT-5-Codex-Mini to draw me a pelican |
| 9077 |
https://simonwillison.net/2025/Nov/6/ |
https://static.simonwillison.net/static/2025/upgrade-video-card.jpg |
Video + notes on upgrading a Datasette plugin for the latest 1.0 alpha, with help from uv and OpenAI Codex CLI |
| 9076 |
https://simonwillison.net/2025/Nov/6/ |
https://static.simonwillison.net/static/2025/research-repo-card.jpg |
Code research projects with async coding agents like Claude Code and Codex |
| 9075 |
https://simonwillison.net/2025/Nov/4/ |
https://static.simonwillison.net/static/2025/datasette-allowed-resources.jpg |
A new SQL-powered permissions system in Datasette 1.0a20 |
| 9074 |
https://simonwillison.net/2025/Nov/2/ |
https://static.simonwillison.net/static/2025/agents-rule-of-two-updated-card.jpg |
New prompt injection papers: Agents Rule of Two and The Attacker Moves Second |
| 9041 |
https://simonwillison.net/2025/Oct/28/ |
https://static.simonwillison.net/static/2025/badge-debug-system.jpg |
Hacking the WiFi-enabled color screen GitHub Universe conference badge |
| 9024 |
https://simonwillison.net/2025/Oct/23/ |
https://static.simonwillison.net/static/2025/terminal-to-html-card.jpg |
Video: Building a tool to copy-paste share terminal sessions using Claude Code for web |
| 9022 |
https://simonwillison.net/2025/Oct/22/ |
https://static.simonwillison.net/static/2025/living-dangerously-with-claude/living-dangerously-with-claude.001.jpeg |
Living dangerously with Claude |
| 9021 |
https://simonwillison.net/2025/Oct/20/ |
https://static.simonwillison.net/static/2025/claude-code-for-web-card.jpg |
Claude Code for web - a new asynchronous coding agent from Anthropic |
| 9020 |
https://simonwillison.net/2025/Oct/20/ |
https://static.simonwillison.net/static/2025/deepseek-ocr-card.jpg |
Getting DeepSeek-OCR working on an NVIDIA Spark via brute force using Claude Code |
| 9019 |
https://simonwillison.net/2025/Oct/16/ |
https://static.simonwillison.net/static/2025/claude-skills-card.jpg |
Claude Skills are awesome, maybe a bigger deal than MCP |
| 9018 |
https://simonwillison.net/2025/Oct/14/ |
https://static.simonwillison.net/static/2025/nvidia-spark.jpg |
NVIDIA DGX Spark: great hardware, early days for the ecosystem |
| 9016 |
https://simonwillison.net/2025/Oct/7/ |
https://static.simonwillison.net/static/2025/captcha-solve-gemini-2.jpg |
Gemini 2.5 Computer Use can solve Google's own CAPTCHAs |
| 9011 |
https://simonwillison.net/2025/Sep/29/ |
https://static.simonwillison.net/static/2025/claude-sonnet-4.5-thinking.png |
Claude Sonnet 4.5 is probably the "best coding model in the world" (at least for now) |
| 9010 |
https://simonwillison.net/2025/Sep/18/ |
https://static.simonwillison.net/static/2025/agents-meme-card.jpg |
I think "agent" may finally have a widely enough agreed upon definition to be useful jargon now |
| 9009 |
https://simonwillison.net/2025/Sep/9/ |
https://static.simonwillison.net/static/2025/claude-code-interpreter-card.jpg |
My review of Claude's new Code Interpreter, released under a very confusing name |
| 9008 |
https://simonwillison.net/2025/Sep/9/ |
https://static.simonwillison.net/static/2025/apollo-ai-card.jpg |
Recreating the Apollo AI adoption rate chart with GPT-5, Python and Pyodide |
| 9007 |
https://simonwillison.net/2025/Sep/6/ |
https://static.simonwillison.net/static/2025/research-goblin.jpg |
GPT-5 Thinking in ChatGPT (aka Research Goblin) is shockingly good at search |
| 8974 |
https://simonwillison.net/2025/Aug/27/ |
https://static.simonwillison.net/static/2025/v-a-east-1.jpg |
V&A East Storehouse and Operation Mincemeat in London |
| 8953 |
https://simonwillison.net/2025/Aug/15/ |
https://static.simonwillison.net/static/2025/johann-summer.jpg |
The Summer of Johann: prompt injections as far as the eye can see |
| 8952 |
https://simonwillison.net/2025/Aug/15/ |
https://static.simonwillison.net/static/2025/aim25x32-gpt-oss-120b.jpg |
Open weight LLMs exhibit inconsistent performance across providers |
| 8950 |
https://simonwillison.net/2025/Aug/10/ |
https://static.simonwillison.net/static/2025/qwen3-4b-thinking-pelican.png |
Qwen3-4B-Thinking: "This is art - pelicans don't ride bikes!" |
| 8949 |
https://simonwillison.net/2025/Aug/9/ |
https://static.simonwillison.net/static/2025/the-lethal-trifecta/lethal-trifecta-card.jpg |
My Lethal Trifecta talk at the Bay Area AI Security Meetup |
| 8947 |
https://simonwillison.net/2025/Aug/7/ |
https://static.simonwillison.net/static/2025/gpt-5-pelican-card.jpg |
GPT-5: Key characteristics, pricing and model card |
| 8946 |
https://simonwillison.net/2025/Aug/5/ |
https://static.simonwillison.net/static/2025/gpt-120-cerebras.jpg |
OpenAI's new open weight (Apache 2) models are really good |
| 8945 |
https://simonwillison.net/2025/Aug/4/ |
https://static.simonwillison.net/static/2025/chatgpt-agent-url.jpg |
ChatGPT agent's user-agent |
| 8944 |
https://simonwillison.net/2025/Aug/3/ |
https://static.simonwillison.net/static/2025/chatgpt-share.jpg |
The ChatGPT sharing dialog demonstrates how difficult it is to design privacy preferences |
| 8943 |
https://simonwillison.net/2025/Jul/31/ |
https://static.simonwillison.net/static/2025/claude-add-to-calendar.jpg |
Reverse engineering some updates to Claude |
| 8942 |
https://simonwillison.net/2025/Jul/31/ |
https://static.simonwillison.net/static/2025/openweb-ui-pelican.jpg |
Trying out Qwen3 Coder Flash using LM Studio and Open WebUI and LLM |
| 8941 |
https://simonwillison.net/2025/Jul/29/ |
https://static.simonwillison.net/static/2025/space-invaders-card.jpg |
My 2.5 year old laptop can write Space Invaders in JavaScript now, using GLM-4.5 Air and MLX |
| 8911 |
https://simonwillison.net/2025/Jul/24/ |
https://static.simonwillison.net/static/2025/spark-card.jpg |
Using GitHub Spark to reverse engineer GitHub Spark |
| 8910 |
https://simonwillison.net/2025/Jul/17/ |
https://static.simonwillison.net/static/2025/open-sauce-2025-card.jpg |
Vibe scraping and vibe coding a schedule app for Open Sauce 2025 entirely on my phone |
| 8909 |
https://simonwillison.net/2025/Jul/13/ |
https://static.simonwillison.net/static/2025/django-birthday-title.jpg |
Happy 20th birthday Django! Here's my talk on Django Origins from Django's 10th |
| 8908 |
https://simonwillison.net/2025/Jul/11/ |
https://static.simonwillison.net/static/2025/grok-elon.jpg |
Grok: searching X for "from:elonmusk (Israel OR Palestine OR Hamas OR Gaza)" |
| 8893 |
https://simonwillison.net/2025/Jun/23/ |
https://static.simonwillison.net/static/2025/phoenix-new.jpg |
Phoenix.new is Fly's entry into the prompt-driven app development space |
| 8892 |
https://simonwillison.net/2025/Jun/17/ |
https://static.simonwillison.net/static/2025/gemini-2.5-pro.png |
Trying out the new Gemini 2.5 model family |
| 8890 |
https://simonwillison.net/2025/Jun/15/ |
https://static.simonwillison.net/static/2025/google-hybrid-card.jpg |
An Introduction to Google’s Approach to AI Agent Security |
| 8889 |
https://simonwillison.net/2025/Jun/13/ |
https://static.simonwillison.net/static/2025/design-patterns-card.jpg |
Design Patterns for Securing LLM Agents against Prompt Injections |
| 8888 |
https://simonwillison.net/2025/Jun/16/ |
https://static.simonwillison.net/static/2025/lethaltrifecta.jpg |
The lethal trifecta for AI agents: private data, untrusted content, and external communication |
| 8886 |
https://simonwillison.net/2025/Jun/6/ |
https://static.simonwillison.net/static/2025/ai-worlds-fair/ai-worlds-fair-2025-01.jpeg |
The last six months in LLMs, illustrated by pelicans on bicycles |
| 8884 |
https://simonwillison.net/2025/May/31/ |
https://static.simonwillison.net/static/2025/snitch.jpg |
How often do LLMs snitch? Recreating Theo's SnitchBench with LLM |
| 8883 |
https://simonwillison.net/2025/May/30/ |
https://static.simonwillison.net/static/2025/news-nation-ai-jobs.jpg |
Talking AI and jobs with Natasha Zouves for News Nation |
| 8882 |
https://simonwillison.net/2025/May/27/ |
https://static.simonwillison.net/static/2025/llm-tools-qwen.jpg |
Large Language Models can run tools in your terminal with LLM 0.26 |
| 8881 |
https://simonwillison.net/2025/May/25/ |
https://static.simonwillison.net/static/2025/opus-sonnet-diff.jpg |
Highlights from the Claude 4 system prompt |
| 8879 |
https://simonwillison.net/2025/May/21/ |
https://static.simonwillison.net/static/2025/user-interaction-metadata-card.jpg |
I really don't like ChatGPT's new memory dossier |
| 8878 |
https://simonwillison.net/2025/May/15/ |
https://static.simonwillison.net/static/2025/building-apps-on-llms/llm-tutorial-intro.001.jpeg |
Building software on top of Large Language Models |
| 8877 |
https://simonwillison.net/2025/May/10/ |
https://static.simonwillison.net/static/2025/llama-server-vision.jpg |
Trying out llama.cpp's new vision support |
| 8875 |
https://simonwillison.net/2025/May/5/ |
https://static.simonwillison.net/static/2025/cleo-still.jpg |
Feed a video to a vision LLM as a sequence of JPEG frames on the CLI (also LLM 0.25) |
| 8865 |
https://simonwillison.net/2025/May/1/ |
https://static.simonwillison.net/static/2025/vibe-coding-books-card.jpg |
Two publishers and three authors fail to understand what "vibe coding" means |
| 8864 |
https://simonwillison.net/2025/Apr/30/ |
https://static.simonwillison.net/static/2025/leaderboard-illusion.jpg |
Understanding the recent criticism of the Chatbot Arena |
| 8863 |
https://simonwillison.net/2025/Apr/29/ |
https://static.simonwillison.net/static/2025/qwen3-32b-pelican.jpg |
Qwen 3 offers a case study in how to effectively release a model |
| 8862 |
https://simonwillison.net/2025/Apr/26/ |
https://static.simonwillison.net/static/2025/social-card-2.jpg |
Watching o3 guess a photo's location is surreal, dystopian and wildly entertaining |
| 8861 |
https://simonwillison.net/2025/Apr/24/ |
https://static.simonwillison.net/static/2025/promptfoo-web.jpg |
Exploring Promptfoo via Dave Guarino's SNAP evals |
| 8860 |
https://simonwillison.net/2025/Apr/21/ |
https://static.simonwillison.net/static/2025/search-works-card.jpg |
AI assisted search-based research actually works now |
| 8859 |
https://simonwillison.net/2025/Apr/19/ |
https://static.simonwillison.net/static/2025/recital-89.jpg |
Maybe Meta's Llama claims to be open source because of the EU AI act |
| 8858 |
https://simonwillison.net/2025/Apr/18/ |
https://static.simonwillison.net/static/2025/mask-tool-social-card.jpg |
Image segmentation using Gemini 2.5 |
| 8857 |
https://simonwillison.net/2025/Apr/14/ |
https://static.simonwillison.net/static/2025/gpt-4.1-pelican.jpg |
GPT-4.1: Three new million token input models from OpenAI, including their cheapest model yet |
| 8856 |
https://simonwillison.net/2025/Apr/11/ |
https://static.simonwillison.net/static/2025/camel-card.jpg |
CaMeL offers a promising new direction for mitigating prompt injection attacks |
| 8855 |
https://simonwillison.net/2025/Apr/9/ |
https://static.simonwillison.net/static/2025/stolen-data-card.jpg |
Model Context Protocol has prompt injection security problems |
| 8854 |
https://simonwillison.net/2025/Apr/7/ |
https://static.simonwillison.net/static/2025/llm-024.jpg |
Long context support in LLM 0.24 using fragments and template plugins |
| 8852 |
https://simonwillison.net/2025/Mar/25/ |
https://static.simonwillison.net/static/2025/gemini-pelicans-bbox.jpg |
Putting Gemini 2.5 Pro through its paces |
| 8851 |
https://simonwillison.net/2025/Mar/20/ |
https://static.simonwillison.net/static/2025/openai-fm.jpg |
New audio models from OpenAI, but how much can we rely on them? |
| 8848 |
https://simonwillison.net/2025/Mar/13/ |
https://static.simonwillison.net/static/2025/colophon-llm-prices.jpg |
Adding AI-generated descriptions to my tools collection |
| 8847 |
https://simonwillison.net/2025/Mar/12/ |
https://static.simonwillison.net/static/2025/gemma-3-pelican.jpg |
Notes on Google's Gemma 3 |
| 8846 |
https://simonwillison.net/2025/Mar/11/ |
https://static.simonwillison.net/static/2025/colophon.jpg |
Here's how I use LLMs to help me write code |
| 8845 |
https://simonwillison.net/2025/Mar/8/ |
https://static.simonwillison.net/static/2025/nicar-llms/llms.001.jpeg |
What's new in the world of LLMs, for NICAR 2025 |
| 8844 |
https://simonwillison.net/2025/Mar/4/ |
https://static.simonwillison.net/static/2025/squadron.jpg |
I built an automaton called Squadron |
| 8843 |
https://simonwillison.net/2025/Mar/2/ |
https://img.youtube.com/vi/zoxpEM6TLEU/maxresdefault.jpg |
Notes from my Accessibility and Gen AI podcast appearance |
| 8811 |
https://simonwillison.net/2025/Feb/28/ |
https://static.simonwillison.net/static/2025/schemas-card.jpg |
Structured data extraction from unstructured content using LLM schemas |
| 8810 |
https://simonwillison.net/2025/Feb/27/ |
https://static.simonwillison.net/static/2025/gpt-win-rates.jpg |
Initial impressions of GPT-4.5 |
| 8809 |
https://simonwillison.net/2025/Feb/25/ |
https://static.simonwillison.net/static/2025/sonnet-37-card.jpg |
Claude 3.7 Sonnet, extended thinking and long output, llm-anthropic 0.14 |
| 8779 |
https://simonwillison.net/2025/Feb/15/ |
https://static.simonwillison.net/static/2025/mlx-download-llama-33.jpg |
Run LLMs on macOS using llm-mlx and Apple's MLX framework |
| 8778 |
https://simonwillison.net/2025/Feb/13/ |
https://static.simonwillison.net/static/2025/datasette-lite-bug.jpg |
URL-addressable Pyodide Python environments |
| 8777 |
https://simonwillison.net/2025/Feb/7/ |
https://static.simonwillison.net/static/2025/smol-card.jpg |
Using pip to install a Large Language Model that's under 100MB |
| 8744 |
https://simonwillison.net/2025/Jan/24/ |
https://static.simonwillison.net/static/2025/E_236_Podcast_Title.jpg |
A selfish personal argument for releasing code as Open Source |
| 8743 |
https://simonwillison.net/2025/Jan/24/ |
https://static.simonwillison.net/static/2025/citations-social-media-card.jpg |
Anthropic's new Citations API |
| 8711 |
https://simonwillison.net/2025/Jan/22/ |
https://static.simonwillison.net/static/2025/jan-21-card.jpg |
Six short video demos of LLM and Datasette projects |
| 8710 |
https://simonwillison.net/2025/Jan/20/ |
https://static.simonwillison.net/static/2025/r1-card.jpg |
DeepSeek-R1 and exploring DeepSeek-R1-Distill-Llama-8B |
| 8686 |
https://simonwillison.net/2025/Jan/2/ |
https://static.simonwillison.net/static/2025/2024-tag-cloud.jpg |
Ending a year long posting streak |
| 8685 |
https://simonwillison.net/2024/Dec/31/ |
https://static.simonwillison.net/static/2024/arena-dec-2024.jpg |
Things we learned about LLMs in 2024 |
| 8684 |
https://simonwillison.net/2024/Dec/24/ |
https://static.simonwillison.net/static/2024/count-pelicans-easy.jpg |
Trying out QvQ - Qwen's new visual reasoning model |
| 8683 |
https://simonwillison.net/2024/Dec/22/ |
https://static.simonwillison.net/static/2024/link-blog-card.jpg |
My approach to running a link blog |
| 8682 |
https://simonwillison.net/2024/Dec/20/ |
https://img.youtube.com/vi/SKBG1sqdyIU/maxresdefault.jpg |
Live blog: the 12th day of OpenAI - "Early evals for OpenAI o3" |
| 8680 |
https://simonwillison.net/2024/Dec/19/ |
https://static.simonwillison.net/static/2024/overlap-card.jpg |
Gemini 2.0 Flash "Thinking mode" |
| 8679 |
https://simonwillison.net/2024/Dec/19/ |
https://static.simonwillison.net/static/2024/s3-debug-social-media-card.jpg |
Building Python tools with a one-shot prompt using uv run and Claude Projects |
| 8678 |
https://simonwillison.net/2024/Dec/11/ |
https://static.simonwillison.net/static/2024/3d-bbox.jpg |
Gemini 2.0 Flash: An outstanding multi-modal LLM with a sci-fi streaming mode |
| 8677 |
https://simonwillison.net/2024/Dec/10/ |
https://static.simonwillison.net/static/2024/run-python-code.jpg |
ChatGPT Canvas can make API requests now, but it's complicated |
| 8647 |
https://simonwillison.net/2024/Dec/9/ |
https://static.simonwillison.net/static/2024/livebench-llama.jpg |
I can now run a GPT-4 class model on my laptop |
| 8646 |
https://simonwillison.net/2024/Dec/7/ |
https://static.simonwillison.net/static/2024/prompts-js-card.jpg |
Prompts.js |
| 8645 |
https://simonwillison.net/2024/Dec/4/ |
https://static.simonwillison.net/static/2024/nova-prices-card.jpg |
First impressions of the new Amazon Nova LLMs (via a new llm-bedrock plugin) |
| 8644 |
https://simonwillison.net/2024/Nov/27/ |
https://static.simonwillison.net/static/2024/google-calendar-social-media-card.jpg |
Storing times for human events |
| 8613 |
https://simonwillison.net/2024/Nov/25/ |
https://static.simonwillison.net/static/2024/sqlite-utils-ask.png |
Ask questions of SQLite databases and CSV/JSON files in your terminal |
| 8611 |
https://simonwillison.net/2024/Nov/19/ |
https://static.simonwillison.net/static/2024/bing-chat.jpg |
Notes from Bing Chat—Our First Encounter With Manipulative AI |
| 8588 |
https://simonwillison.net/2024/Nov/16/ |
https://static.simonwillison.net/static/2024/civic-band-card.jpg |
Project: Civic Band - scraping and searching PDF meeting minutes from hundreds of municipalities |
| 8587 |
https://simonwillison.net/2024/Nov/12/ |
https://static.simonwillison.net/static/2024/mlx-fractal.jpg |
Qwen2.5-Coder-32B is an LLM that can code well that runs on my Mac |
| 8586 |
https://simonwillison.net/2024/Nov/9/ |
https://static.simonwillison.net/static/2024/joined-precincts.jpg |
Visualizing local election results with Datasette, Observable and MapLibre GL |
| 8585 |
https://simonwillison.net/2024/Nov/7/ |
https://static.simonwillison.net/static/2024/verdad-1.jpg |
Project: VERDAD - tracking misinformation in radio broadcasts using Gemini 1.5 |
| 8584 |
https://simonwillison.net/2024/Nov/4/ |
https://static.simonwillison.net/static/2024/pricing-table.jpg |
Claude 3.5 Haiku |
| 8582 |
https://simonwillison.net/2024/Oct/29/ |
https://static.simonwillison.net/static/2024/pelican.jpg |
You can now run prompts against images, audio and video in your terminal using LLM |
| 8581 |
https://simonwillison.net/2024/Oct/27/ |
https://static.simonwillison.net/static/2024/llm-jq-card.jpg |
Run a prompt to generate and execute jq programs using llm-jq |
| 8580 |
https://simonwillison.net/2024/Oct/24/ |
https://static.simonwillison.net/static/2024/analysis-uv-lock.jpg |
Notes on the new Claude analysis JavaScript code execution tool |
| 8579 |
https://simonwillison.net/2024/Oct/22/ |
https://static.simonwillison.net/static/2024/computer-use-sudoku.jpg |
Initial explorations of Anthropic's new Computer Use capability |
| 8578 |
https://simonwillison.net/2024/Oct/21/ |
https://static.simonwillison.net/static/2024/claude-artifacts/sqlite-wasm.jpg |
Everything I built with Claude Artifacts this week |
| 8548 |
https://simonwillison.net/2024/Oct/19/ |
https://static.simonwillison.net/static/2024/mistral-rs-terminal.jpg |
Running Llama 3.2 Vision and Phi-3.5 Vision on a Mac with mistral.rs |
| 8547 |
https://simonwillison.net/2024/Oct/18/ |
https://static.simonwillison.net/static/2024/openai-audio-card.jpg |
Experimenting with audio input and output for the OpenAI Chat Completion API |
| 8546 |
https://simonwillison.net/2024/Oct/17/ |
https://static.simonwillison.net/static/2024/video-scraping.jpg |
Video scraping: extracting JSON data from a 35 second screen capture for less than 1/10th of a cent |
| 8545 |
https://simonwillison.net/2024/Oct/15/ |
https://static.simonwillison.net/static/2024/remember-cheese.jpg |
ChatGPT will happily write you a thinly disguised horoscope |
| 8524 |
https://simonwillison.net/2024/Oct/2/ |
https://static.simonwillison.net/static/2024/websocket-interruptions.jpg |
OpenAI DevDay: Let’s build developer tools, not digital God |
| 8523 |
https://simonwillison.net/2024/Oct/1/ |
https://static.simonwillison.net/static/2024/earth.jpg |
OpenAI DevDay 2024 live blog |
| 8521 |
https://simonwillison.net/2024/Sep/29/ |
https://static.simonwillison.net/static/2024/notebooklm-ego.jpg |
NotebookLM's automatically generated podcasts are surprisingly effective |
| 8520 |
https://simonwillison.net/2024/Sep/27/ |
https://static.simonwillison.net/static/2024/dsf-diagram.jpg |
Themes from DjangoCon US 2024 |
| 8519 |
https://simonwillison.net/2024/Sep/25/ |
https://static.simonwillison.net/static/2024/djp-django-plugins.jpg |
DJP: A plugin system for Django |
| 8518 |
https://simonwillison.net/2024/Sep/20/ |
https://img.youtube.com/vi/CRpHNB87gRY/maxresdefault.jpg |
Notes on using LLMs for code |
| 8514 |
https://simonwillison.net/2024/Sep/10/ |
https://static.simonwillison.net/static/2024/pocast-misadventures-card.jpg |
Notes from my appearance on the Software Misadventures Podcast |
| 8513 |
https://simonwillison.net/2024/Sep/8/ |
https://static.simonwillison.net/static/2024/teresa-t-pelican.jpg |
Teresa T is name of the whale in Pillar Point Harbor near Half Moon Bay |
| 8512 |
https://simonwillison.net/2024/Sep/6/ |
https://static.simonwillison.net/static/2024/goats-bbox-fixed.jpg |
Calling LLMs from client-side JavaScript, converting PDFs to HTML + weeknotes |
| 8482 |
https://simonwillison.net/2024/Aug/26/ |
https://static.simonwillison.net/static/2024/goats-bbox-fixed.jpg |
Building a tool showing how Gemini Pro can return bounding boxes for objects in images |
| 8481 |
https://simonwillison.net/2024/Aug/23/ |
https://static.simonwillison.net/static/2024/cleo-haiku-card.jpg |
Claude's API now supports CORS requests, enabling client-side applications |
| 8480 |
https://simonwillison.net/2024/Aug/22/ |
https://static.simonwillison.net/static/2024/datasette-pretty-traces-error.jpg |
Optimizing Datasette (and other weeknotes) |
| 8479 |
https://simonwillison.net/2024/Aug/8/ |
https://static.simonwillison.net/static/2024/django-http-debug-add-endpoint-2.jpg |
django-http-debug, a new Django app mostly written by Claude |
| 8451 |
https://simonwillison.net/2024/Aug/5/ |
https://static.simonwillison.net/static/2024/1-0-alpha-14-card.jpg |
Datasette 1.0a14: The annotated release notes |
| 8449 |
https://simonwillison.net/2023/May/8/ |
https://static.simonwillison.net/static/2023/big-opportunities-small-data.001.jpeg |
Big Opportunities in Small Data |
| 8448 |
https://simonwillison.net/2024/Jul/14/ |
https://static.simonwillison.net/static/2024/simonw-pycon-2024/simonw-pycon-2024.001.jpeg |
Imitation Intelligence, my keynote for PyCon US 2024 |
| 8447 |
https://simonwillison.net/2017/Aug/16/ |
https://static.simonwillison.net/static/2017/denorm-query-engine.jpg |
The denormalized query engine design pattern |
| 8414 |
https://simonwillison.net/2024/Jul/2/ |
https://static.simonwillison.net/static/2024/tag-cloud-new-colours.jpg |
Weeknotes: a livestream, a surprise keynote and progress on Datasette Cloud billing |
| 8413 |
https://simonwillison.net/2024/Jun/27/ |
https://static.simonwillison.net/static/2024/ai-worlds-fair/slide.001.jpeg |
Open challenges for AI engineering |
| 8382 |
https://simonwillison.net/2024/Jun/21/ |
https://static.simonwillison.net/static/2024/claude-rag/frame_010550.jpg |
Building search-based RAG using Claude, Datasette and Val Town |
| 8381 |
https://simonwillison.net/2024/Jun/19/ |
https://static.simonwillison.net/static/2024/datasette-studio.jpg |
Weeknotes: Datasette Studio and a whole lot of blogging |
| 8380 |
https://simonwillison.net/2024/Jun/17/ |
https://static.simonwillison.net/static/2024/llm/frame_000341.jpg |
Language models on the command-line |
| 8379 |
https://simonwillison.net/2024/Jun/12/ |
https://static.simonwillison.net/static/2024/homepage-new.jpg |
A homepage redesign for my blog's 22nd birthday |
| 8346 |
https://simonwillison.net/2024/Jun/10/ |
https://static.simonwillison.net/static/2024/apple-ai-card.jpg |
Thoughts on the WWDC 2024 keynote on Apple Intelligence |
| 8345 |
https://simonwillison.net/2024/Jun/6/ |
https://static.simonwillison.net/static/2024/gerbil-card.jpg |
Accidental prompt injection against RAG applications |
| 8342 |
https://simonwillison.net/2024/May/15/ |
https://static.simonwillison.net/static/2024/chatgpt-4o-card.jpg |
ChatGPT in "4o" mode is not running the new features yet |
| 8341 |
https://simonwillison.net/2024/May/8/ |
https://static.simonwillison.net/static/2024/slom.jpg |
Slop is the new name for unwanted AI-generated content |
| 8340 |
https://simonwillison.net/2024/May/7/ |
https://static.simonwillison.net/static/2024/manage-secrets-card.jpg |
Weeknotes: more datasette-secrets, plus a mystery video project |
| 8339 |
https://simonwillison.net/2024/Apr/23/ |
https://static.simonwillison.net/static/2024/datasette-secrets.jpg |
Weeknotes: Llama 3, AI for Data Journalism, llm-evals and datasette-secrets |
| 8338 |
https://simonwillison.net/2024/Apr/22/ |
https://static.simonwillison.net/static/2024/owl-sonnet-card.jpg |
Options for accessing Llama 3 from the terminal using LLM |
| 8337 |
https://simonwillison.net/2024/Apr/17/ |
https://static.simonwillison.net/static/2024/story-discovery-at-scale/frame_000008.jpg |
AI for Data Journalism: demonstrating what we can do with this stuff right now |
| 8336 |
https://simonwillison.net/2024/Apr/10/ |
https://static.simonwillison.net/static/2024/action-menus.png |
Three major LLM releases in 24 hours (plus weeknotes) |
| 8335 |
https://simonwillison.net/2024/Apr/8/ |
https://static.simonwillison.net/static/2024/file-to-prompt-card.jpg |
Building files-to-prompt entirely using Claude 3 Opus |
| 8334 |
https://simonwillison.net/2024/Mar/30/ |
https://static.simonwillison.net/static/2024/ocr-card.png |
Running OCR against PDFs and images directly in your browser |
| 8333 |
https://simonwillison.net/2024/Mar/26/ |
https://static.simonwillison.net/static/2024/llm-cmd-card.jpg |
llm cmd undo last git commit - a new plugin for LLM |
| 8332 |
https://simonwillison.net/2024/Mar/23/ |
https://static.simonwillison.net/static/2024/chatgpt-sqlite-extension.jpg |
Building and testing C extensions for SQLite with ChatGPT Code Interpreter |
| 8331 |
https://simonwillison.net/2024/Mar/22/ |
https://static.simonwillison.net/static/2024/shapely-chatgpt-1.jpg |
Claude and ChatGPT for ad-hoc sidequests |
| 8330 |
https://simonwillison.net/2024/Mar/16/ |
https://static.simonwillison.net/static/2024/action-buttons.gif |
Weeknotes: the aftermath of NICAR |
| 8327 |
https://simonwillison.net/2024/Mar/3/ |
https://static.simonwillison.net/static/2024/pypi-dashboard.gif |
Interesting ideas in Observable Framework |
| 8325 |
https://simonwillison.net/2024/Feb/21/ |
https://static.simonwillison.net/static/2024/gemini-pro-card.jpg |
The killer app of Gemini Pro 1.5 is video |
| 8320 |
https://simonwillison.net/2024/Jan/17/ |
https://static.simonwillison.net/static/2024/oxide-and-friends.jpg |
Talking about Open Source LLMs on Oxide and Friends |
| 8319 |
https://simonwillison.net/2024/Jan/16/ |
https://static.simonwillison.net/static/2024/template-repo-create.jpg |
Publish Python packages to PyPI with a python-lib cookiecutter template and GitHub Actions |
| 8315 |
https://simonwillison.net/2024/Jan/2/ |
https://static.simonwillison.net/static/2024/duolingo-streak-1826.jpg |
Tom Scott, and the formidable power of escalating streaks |
| 8314 |
https://simonwillison.net/2023/Dec/31/ |
https://static.simonwillison.net/static/2023/2023-tag-cloud.jpg |
Stuff we figured out about AI in 2023 |
| 8312 |
https://simonwillison.net/2023/Dec/20/ |
https://img.youtube.com/vi/tWp77I-L2KY/maxresdefault.jpg |
Recommendations to help mitigate prompt injection: limit the blast radius |
| 8311 |
https://simonwillison.net/2023/Dec/18/ |
https://static.simonwillison.net/static/2023/mixtral-card.jpg |
Many options for running Mistral models in your terminal using LLM |
| 8310 |
https://simonwillison.net/2023/Dec/14/ |
https://static.simonwillison.net/static/2023/dropbox-third-party.png |
The AI trust crisis |
| 8309 |
https://simonwillison.net/2023/Dec/8/ |
https://static.simonwillison.net/static/2023/datasette-comments.jpg |
Weeknotes: datasette-enrichments, datasette-comments, sqlite-chronicle |
| 8308 |
https://simonwillison.net/2023/Dec/1/ |
https://static.simonwillison.net/static/2023/enrichments-geocoder.jpg |
Datasette Enrichments: a new plugin framework for augmenting your data |
| 8307 |
https://simonwillison.net/2023/Nov/29/ |
https://static.simonwillison.net/static/2023/llamafile.jpg |
llamafile is the new best way to run an LLM on your own computer |
| 8306 |
https://simonwillison.net/2023/Nov/27/ |
https://static.simonwillison.net/static/2023/newsroom-robots.jpg |
Prompt injection explained, November 2023 edition |
| 8305 |
https://simonwillison.net/2023/Nov/25/ |
https://static.simonwillison.net/static/2023/newsroom-robots.jpg |
I'm on the Newsroom Robots podcast, with thoughts on the OpenAI board |
| 8302 |
https://simonwillison.net/2023/Nov/15/ |
https://static.simonwillison.net/static/2023/gpt-deno.jpg |
Exploring GPTs: ChatGPT in a trench coat? |
| 8301 |
https://simonwillison.net/2023/Nov/10/ |
https://static.simonwillison.net/static/2023/universe/universe-01.jpg |
Financial sustainability for open source projects at GitHub Universe |
| 8299 |
https://simonwillison.net/2023/Oct/30/ |
https://static.simonwillison.net/static/2023/protomaps.jpg |
DALL-E 3, GPT4All, PMTiles, sqlite-migrate, datasette-edit-schema |
| 8298 |
https://simonwillison.net/2023/Oct/26/ |
https://static.simonwillison.net/static/2023/dalle-3/pelican-walrus-muppet-bowtie.png |
Now add a walrus: Prompt engineering in DALL‑E 3 |
| 8296 |
https://simonwillison.net/2023/Oct/23/ |
https://static.simonwillison.net/static/2023/embeddings/embeddings.003.jpeg |
Embeddings: What they are and why they matter |
| 8294 |
https://simonwillison.net/2023/Oct/17/ |
https://static.simonwillison.net/static/2023/open-questions-llms/simon-willison-open-questions.001.jpeg |
Open questions for AI engineering |
| 8293 |
https://simonwillison.net/2023/Oct/14/ |
https://static.simonwillison.net/static/2023/gpt4v-attack-1.jpg |
Multi-modal prompt injection image attacks against GPT-4V |
| 8290 |
https://simonwillison.net/2023/Sep/29/ |
https://static.simonwillison.net/static/2023/rooftop-ruby.jpg |
Talking Large Language Models with Rooftop Ruby |
| 8288 |
https://simonwillison.net/2023/Sep/12/ |
https://static.simonwillison.net/static/2023/IMG_4801.jpg |
Build an image search engine with llm-clip, chat with models with llm chat |
| 8287 |
https://simonwillison.net/2023/Sep/4/ |
https://static.simonwillison.net/static/2023/wordcamp-llms/llm-work-for-you.055.jpeg |
LLM now provides tools for working with embeddings |
| 8285 |
https://simonwillison.net/2023/Aug/27/ |
https://static.simonwillison.net/static/2023/wordcamp-llms/llm-work-for-you.001.jpeg |
Making Large Language Models work for you |
| 8284 |
https://simonwillison.net/2023/Aug/16/ |
https://static.simonwillison.net/static/2023/pick-region.jpg |
Datasette Cloud, Datasette 1.0a3, llm-mlc and more |
| 8283 |
https://simonwillison.net/2023/Aug/6/ |
https://static.simonwillison.net/static/2023/annotated-tool.jpg |
How I make annotated presentations |
| 8282 |
https://simonwillison.net/2023/Aug/5/ |
https://static.simonwillison.net/static/2023/sqlite-utils-litecli.jpg |
Weeknotes: Plugins for LLM, sqlite-utils and Datasette |
| 8281 |
https://simonwillison.net/2023/Aug/3/ |
https://static.simonwillison.net/static/2023/weird-world-llms/weird-world-llms.001.jpeg |
Catching up on the weird world of LLMs |
| 8279 |
https://simonwillison.net/2023/Jul/24/ |
https://static.simonwillison.net/static/2023/sqlite-utils-shell-ml.jpg |
sqlite-utils now supports plugins |
| 8278 |
https://simonwillison.net/2023/Jul/18/ |
https://static.simonwillison.net/static/2023/llm-replicate.jpg |
Accessing Llama 2 from the command-line with the llm-replicate plugin |
| 8276 |
https://simonwillison.net/2023/Jul/12/ |
https://static.simonwillison.net/static/2023/llm-vicuna-card.jpg |
My LLM CLI tool now supports self-hosted language models via plugins |
| 8274 |
https://simonwillison.net/2023/Jun/18/ |
https://static.simonwillison.net/static/2023/symbex-card.jpg |
Symbex: search Python code for functions and classes, then pipe them into a LLM |
| 8273 |
https://simonwillison.net/2023/Jun/8/ |
https://static.simonwillison.net/static/2023/gpt-token-encoder-decoder.jpg |
Understanding GPT tokenizers |
| 8270 |
https://simonwillison.net/2023/May/30/ |
https://static.simonwillison.net/static/2023/chatgpt-mockup-trending.jpg |
ChatGPT should include inline tips |
| 8269 |
https://simonwillison.net/2023/May/27/ |
https://static.simonwillison.net/static/2023/chatgpt-lawyer-screenshot-2.jpg |
Lawyer cites fake cases invented by ChatGPT, judge is not amused |
| 8268 |
https://simonwillison.net/2023/May/18/ |
https://static.simonwillison.net/static/2023/llm-nytimes-card.jpg |
llm, ttok and strip-tags - CLI tools for working with ChatGPT and other LLMs |
| 8267 |
https://simonwillison.net/2023/May/11/ |
https://static.simonwillison.net/static/2023/prompt-injection-delimiters-break-2.jpg |
Delimiters won't save you from prompt injection |
| 8265 |
https://simonwillison.net/2023/May/4/ |
https://static.simonwillison.net/static/2023/vicuna-chart.jpg |
Leaked Google document: "We Have No Moat, And Neither Does OpenAI" |
| 8264 |
https://simonwillison.net/2023/May/4/ |
https://static.simonwillison.net/static/2023/pelican-tea-party-5-1.jpg |
Midjourney 5.1 |
| 8263 |
https://simonwillison.net/2023/May/2/ |
https://static.simonwillison.net/static/2023/langchain-webinar-may/prompt-injection.015.jpeg |
Prompt injection explained, with video, slides, and a transcript |