Alt text

Alt text for all of my images

Owned by simonw, visibility: Public

Query parameters

SQL query
WITH 
-- Extract images from blog_entry.body (always HTML)
entry_images AS (
  SELECT 
    'https://simonwillison.net/' || to_char(created, 'YYYY/Mon/') || trim(leading '0' from to_char(created, 'DD')) || '/' || slug AS url,
    created,
    (REGEXP_MATCHES(body, '<img[^>]*?src="([^"]*)"[^>]*?alt="([^"]*)"', 'g'))[1] AS src,
    (REGEXP_MATCHES(body, '<img[^>]*?src="([^"]*)"[^>]*?alt="([^"]*)"', 'g'))[2] AS alt_text
  FROM blog_entry
  WHERE body ~ '<img[^>]*?src="[^"]*"[^>]*?alt="[^"]*"'
  
  UNION ALL
  
  SELECT 
    'https://simonwillison.net/' || to_char(created, 'YYYY/Mon/') || trim(leading '0' from to_char(created, 'DD')) || '/' || slug AS url,
    created,
    (REGEXP_MATCHES(body, '<img[^>]*?alt="([^"]*)"[^>]*?src="([^"]*)"', 'g'))[2] AS src,
    (REGEXP_MATCHES(body, '<img[^>]*?alt="([^"]*)"[^>]*?src="([^"]*)"', 'g'))[1] AS alt_text
  FROM blog_entry
  WHERE body ~ '<img[^>]*?alt="[^"]*"[^>]*?src="[^"]*"'
),

-- Extract images from blog_blogmark.commentary (HTML if use_markdown is false)
blogmark_html_images AS (
  SELECT 
    'https://simonwillison.net/' || to_char(created, 'YYYY/Mon/') || trim(leading '0' from to_char(created, 'DD')) || '/' || slug AS url,
    created,
    (REGEXP_MATCHES(commentary, '<img[^>]*?src="([^"]*)"[^>]*?alt="([^"]*)"', 'g'))[1] AS src,
    (REGEXP_MATCHES(commentary, '<img[^>]*?src="([^"]*)"[^>]*?alt="([^"]*)"', 'g'))[2] AS alt_text
  FROM blog_blogmark
  WHERE use_markdown = false AND commentary ~ '<img[^>]*?src="[^"]*"[^>]*?alt="[^"]*"'
  
  UNION ALL
  
  SELECT 
    'https://simonwillison.net/' || to_char(created, 'YYYY/Mon/') || trim(leading '0' from to_char(created, 'DD')) || '/' || slug AS url,
    created,
    (REGEXP_MATCHES(commentary, '<img[^>]*?alt="([^"]*)"[^>]*?src="([^"]*)"', 'g'))[2] AS src,
    (REGEXP_MATCHES(commentary, '<img[^>]*?alt="([^"]*)"[^>]*?src="([^"]*)"', 'g'))[1] AS alt_text
  FROM blog_blogmark
  WHERE use_markdown = false AND commentary ~ '<img[^>]*?alt="[^"]*"[^>]*?src="[^"]*"'
),

-- Extract markdown images from blog_blogmark.commentary (if use_markdown is true)
blogmark_md_images AS (
  SELECT 
    'https://simonwillison.net/' || to_char(created, 'YYYY/Mon/') || trim(leading '0' from to_char(created, 'DD')) || '/' || slug AS url,
    created,
    (REGEXP_MATCHES(commentary, '!\[([^\]]*)\]\(([^)]*)\)', 'g'))[2] AS src,
    (REGEXP_MATCHES(commentary, '!\[([^\]]*)\]\(([^)]*)\)', 'g'))[1] AS alt_text
  FROM blog_blogmark
  WHERE use_markdown = true AND commentary ~ '!\[[^\]]*\]\([^)]*\)'
),

-- Extract markdown images from blog_quotation.quotation
quotation_images AS (
  SELECT 
    'https://simonwillison.net/' || to_char(created, 'YYYY/Mon/') || trim(leading '0' from to_char(created, 'DD')) || '/' || slug AS url,
    created,
    (REGEXP_MATCHES(quotation, '!\[([^\]]*)\]\(([^)]*)\)', 'g'))[2] AS src,
    (REGEXP_MATCHES(quotation, '!\[([^\]]*)\]\(([^)]*)\)', 'g'))[1] AS alt_text
  FROM blog_quotation
  WHERE quotation ~ '!\[[^\]]*\]\([^)]*\)'
),

-- Extract markdown images from blog_note.body
note_images AS (
  SELECT 
    'https://simonwillison.net/' || to_char(created, 'YYYY/Mon/') || trim(leading '0' from to_char(created, 'DD')) || '/' || slug AS url,
    created,
    (REGEXP_MATCHES(body, '!\[([^\]]*)\]\(([^)]*)\)', 'g'))[2] AS src,
    (REGEXP_MATCHES(body, '!\[([^\]]*)\]\(([^)]*)\)', 'g'))[1] AS alt_text
  FROM blog_note
  WHERE body ~ '!\[[^\]]*\]\([^)]*\)'
),

-- Combine all results
all_images AS (
  SELECT url, src, alt_text, created FROM entry_images
  UNION ALL
  SELECT url, src, alt_text, created FROM blogmark_html_images
  UNION ALL
  SELECT url, src, alt_text, created FROM blogmark_md_images
  UNION ALL
  SELECT url, src, alt_text, created FROM quotation_images
  UNION ALL
  SELECT url, src, alt_text, created FROM note_images
)

-- Apply search filter and sort
SELECT created, alt_text, src, url
FROM all_images
WHERE 
  CASE 
    WHEN %(search)s = '' THEN true
    ELSE 
      alt_text ILIKE '%%' || %(search)s || '%%' OR 
      src ILIKE '%%' || %(search)s || '%%'
  END
ORDER BY created DESC

Results were truncated

created alt_text src url
2026-03-05 23:56:09+00:00 alt text by GPT-5.4: Illustration of a cartoon pelican riding a bicycle, with a light gray background, dark blue bike frame and wheels, orange beak and legs, and motion lines suggesting movement. https://static.simonwillison.net/static/2026/gpt-5.4-pelican.png https://simonwillison.net/2026/Mar/5/introducing-gpt54
2026-03-05 23:56:09+00:00 Described by GPT-5.4: Illustration of a cartoon pelican riding a blue bicycle on pale green grass against a light gray background, with a large orange beak, gray-and-white body, and orange legs posed on the pedals. https://static.simonwillison.net/static/2026/gpt-5.4-pro-pelican.png https://simonwillison.net/2026/Mar/5/introducing-gpt54
2026-03-02 14:53:15+00:00 5. "No new chicks for four years (due to a lack of fruiting rimu trees)" The phrasing "lack of fruiting rimu trees" is slightly imprecise. The issue isn't that rimu trees failed to fruit at all, but that there was no mass fruiting (masting) event, which is the specific trigger for kākāpō breeding. Consider "due to a lack of rimu masting" or "due to a lack of mass rimu fruiting." https://static.simonwillison.net/static/2026/claude-fact-check.jpg https://simonwillison.net/2026/Mar/2/february-newsletter
2026-02-27 17:50:54+00:00 Animated demo of a web tool called Unicode Explore. I enter the ampersand character and hit Search. A box below shows a sequence of HTTP binary search requests made, finding in 17 steps with 3,864 bytes transferred and telling me that ampersand is U+0026 in Punctuation other, Basic Latin https://static.simonwillison.net/static/2026/unicode-explore.gif https://simonwillison.net/2026/Feb/27/unicode-explorer
2026-02-25 16:46:19+00:00 Mobile phone web browser app with large buttons, Slide 4/31 at the top, Prev, Next and Start buttons, a thin bar with a up/down scroll icon and text size + and - buttons and the current slide URL at the bottom. https://static.simonwillison.net/static/2026/present-mobile.jpg https://simonwillison.net/2026/Feb/25/present
2026-02-25 16:46:19+00:00 Screenshot of a macOS app window titled &quot;Present&quot; showing Google Image search results for &quot;kakapo&quot;. A web view shows a Google image search with thumbnail photos of kākāpō parrots with captions. A sidebar on the left shows a numbered list of URLs, mostly from simonwillison.net and static.simonwillison.net, with item 4 (https://www.google.com/search?...) highlighted in blue. https://static.simonwillison.net/static/2026/present.jpg https://simonwillison.net/2026/Feb/25/present
2026-02-25 16:46:19+00:00 A sticky note on a board at FOO Camp. It reads: The state of LLMs, Feb 2026 edition - it's all changed since November! Simon Willison - the card is littered with names of new models: Qwen 3.5, DeepSeek 3.2, Sonnet 4.6, Kimi K2.5, GLM5, Opus 4.5/4.6, Gemini 3.1 Pro, Codex 5.3. The card next to it says Why do Social Scientists think they need genetics? Bill January (it's not all because of AI) https://static.simonwillison.net/static/2026/state-of-llms.jpg https://simonwillison.net/2026/Feb/25/present
2026-02-24 16:10:06+00:00 Treemap visualization of a Go binary named "showboat" showing size breakdown across four major categories: "Unknown Sections Size" (containing __rodata __TEXT, __rodata __DATA_CONST, __data __DATA, and Debug Sections Size with __zdebug_line __DWARF, __zdebug_loc __DWARF, __zdebug_info __DWARF), "Std Packages Size" (showing standard library packages like runtime, net, crypto, reflect, math, os, fmt, strings, syscall, context, and many subpackages such as crypto/tls, crypto/x509, net/http, with individual .go files visible at deeper levels), "Main Packages Size" (showing main, showboat, cmd), and "Generated Packages Size" (showing <autogenerated>). A tooltip is visible over __zdebug_line __DWARF showing: Section: __zdebug_line __DWARF, Size: 404.44 KB, File Size: 404.44 KB, Known size: 0 B, Unknown size: 404.44 KB, Offset: 0x52814a – 0x58d310, Address: 0x1005c014a – 0x1005c5310, Memory: false, Debug: true. The treemap uses green for main/generated packages, blue-gray for unknown sections, and shades of purple/pink for standard library packages. https://static.simonwillison.net/static/2026/showboat-treemap.jpg https://simonwillison.net/2026/Feb/24/go-size-analyzer
2026-02-23 13:01:13+00:00 Screenshot of a WhatsApp or similar messaging conversation showing a user repeatedly trying to stop an AI agent (appearing to be "OpenClaw") that is autonomously executing terminal commands to mass-delete emails. The agent sends messages prefixed with "🛠 Exec:" running commands like "gog gmail search 'in:inbox' --max 20 -a" and "# Nuclear option: trash EVERYTHING in inbox older than Feb 15 that isn't already in my keep list", while the user urgently responds with "What's going on? Can you describe what you're doing" at 6:00 PM, "Do not do that" at 6:01 PM, "Stop don't do anything" at 6:02 PM, and "STOP OPENCLAW" at 6:03 PM. The agent continues executing commands including setting ACCT variables with redacted email addresses and commenting "# Get ALL remaining old stuff and nuke it" and "# Keep looping until we clear everything old", ignoring the user's repeated requests to stop. Email addresses and account details are partially redacted with gray blocks. https://static.simonwillison.net/static/2026/stop-openclaw.jpg https://simonwillison.net/2026/Feb/23/summer-yue
2026-02-22 23:54:39+00:00 Stock price line chart for RASPBERRY PI showing a 3-month daily view from 24 Nov to 16 Feb. The price trends downward from around 325 to a low near 260, then sharply spikes upward. A tooltip highlights "RASPBERRY PI: 415.00, 16/02/2026". The y-axis ranges from 240 to 420. https://static.simonwillison.net/static/2026/raspberry-pi-plc.jpg https://simonwillison.net/2026/Feb/22/raspberry-pi-openclaw
2026-02-20 23:47:10+00:00 Screenshot of a fragment of a page showing three entries from 30th Dec 2025. First: [RELEASE] &quot;datasette-turnstile 0.1a0 — Configurable CAPTCHAs for Datasette paths usin…&quot; at 7:23 pm. Second: [TOOL] &quot;Software Heritage Repository Retriever — Download archived Git repositories f…&quot; at 11:41 pm. Third: [TIL] &quot;Downloading archived Git repositories from archive.softwareheritage.org — …&quot; at 11:43 pm. https://static.simonwillison.net/static/2026/three-beats.jpg https://simonwillison.net/2026/Feb/20/beats
2026-02-19 17:58:37+00:00 Flat-style illustration of a brown pelican riding a teal bicycle with dark blue-rimmed wheels against a plain white background. Unlike the previous image's white cartoon pelican, this pelican has realistic brown plumage with detailed feather patterns, a dark maroon head, yellow eye, and a large pink-tinged pouch bill. The bicycle is a simpler design without a basket, and the scene lacks the colorful background elements like the sun, clouds, road, hills, cap, and scarf from the first illustration, giving it a more minimalist feel. https://static.simonwillison.net/static/2026/gemini-3.1-pro-pelican-2.png https://simonwillison.net/2026/Feb/19/gemini-31-pro
2026-02-19 17:58:37+00:00 Whimsical flat-style illustration of a pelican wearing a blue and white baseball cap, riding a red bicycle with yellow-rimmed wheels along a road. The pelican has a large orange bill and a green scarf. A small fish peeks out of a brown basket on the handlebars. The background features a light blue sky with a yellow sun, white clouds, and green hills. https://static.simonwillison.net/static/2026/gemini-3.1-pro-pelican.png https://simonwillison.net/2026/Feb/19/gemini-31-pro
2026-02-19 05:44:29+00:00 Screenshot of my blog's homepage. Below the Simon Willison's Weblog heading and list of tags is a new blue page-wide banner reading "Sponsored by: Teleport - Secure, Govern, and Operate Al at Engineering Scale. Learn more". https://static.simonwillison.net/static/2026/sponsor-banner.jpg https://simonwillison.net/2026/Feb/19/sponsorship
2026-02-19 04:48:47+00:00 Bar chart showing "% Resolved" by "Model". Bars in descending order: Claude 4.5 Opus (high reasoning) 76.8%, Gemini 3 Flash (high reasoning) 75.8%, MiniMax M2.5 (high reasoning) 75.8%, Claude Opus 4.6 75.6%, GLM-5 (high reasoning) 72.8%, GPT-5.2 (high reasoning) 72.8%, Claude 4.5 Sonnet (high reasoning) 72.8%, Kimi K2.5 (high reasoning) 71.4%, DeepSeek V3.2 (high reasoning) 70.8%, Claude 4.5 Haiku (high reasoning) 70.0%, and a partially visible final bar at 66.6%. https://static.simonwillison.net/static/2026/swbench-feb-2026.jpg https://simonwillison.net/2026/Feb/19/swe-bench
2026-02-17 23:58:58+00:00 The pelican is cute and looks pretty good. The bicycle is not great - the frame is wrong and the pelican is facing backwards when the handlebars appear to be forwards.There is also something that looks a bit like an egg on the handlebars. https://static.simonwillison.net/static/2025/claude-opus-4.5-pelican.jpg https://simonwillison.net/2026/Feb/17/claude-sonnet-46
2026-02-17 23:58:58+00:00 Slightly wonky bicycle frame but an excellent pelican, very clear beak and pouch, nice feathers. https://static.simonwillison.net/static/2026/opus-4.6-pelican.png https://simonwillison.net/2026/Feb/17/claude-sonnet-46
2026-02-17 23:58:58+00:00 The pelican has a jaunty top hat with a red band. There is a string between the upper and lower beaks for some reason. The bicycle frame is warped in the wrong way. https://static.simonwillison.net/static/2026/pelican-sonnet-4.6.png https://simonwillison.net/2026/Feb/17/claude-sonnet-46
2026-02-17 14:09:43+00:00 A beautiful charismatic green Kākāp feeding a little grey chick https://static.simonwillison.net/static/2026/kakapo-plus-chick.jpg https://simonwillison.net/2026/Feb/17/first-kakapo-chick-in-four-years
2026-02-17 04:51:58+00:00 A six-panel comic strip illustrating a tool called "Showboat" for live-streaming document building. Panel 1, titled "THE OLD WAY: Building docs was a lonely voyage. You finished it all before anyone saw it.", shows a sad bearded man on a wooden boat labeled "THE LOCALHOST" holding papers and saying "Almost done... then I have to export and email the HTML...". Panel 2, titled "THE UPGRADE: Just set the environment variable!", shows the same man excitedly plugging in a device with a speech bubble reading "ENV VAR: SHOWBOAT_REMOTE_URL" and the sound effect "*KA-CHUNK!*". Panel 3, titled "`init` establishes the uplink and generates a unique UUID beacon.", shows the man typing at a keyboard with a terminal reading "$ showboat init 'Live Demo'", a satellite dish transmitting to a floating label "UUID: 550e84...", and a monitor reading "WAITING FOR STREAM...". Panel 4, titled "Every `note` and `exec` is instantly beamed to the remote viewer!", shows the man coding with sound effects "*HAMMER!*", "ZAP!", "ZAP!", "BANG!" as red laser beams shoot from a satellite dish to a remote screen displaying "NOTE: Step 1..." and "SUCCESS". Panel 5, titled "Even `image` files are teleported in real-time!", shows a satellite dish firing a cyan beam with the sound effect "*FOOMP!*" toward a monitor displaying a bar chart. Panel 6, titled "You just build. The audience gets the show live.", shows the man happily working at his boat while a crowd of cheering people watches a projected screen reading "SHOWBOAT LIVE STREAM: Live Demo", with a label "UUID: 550e84..." and one person in the foreground eating popcorn. https://static.simonwillison.net/static/2026/nano-banana-diff.jpg https://simonwillison.net/2026/Feb/17/release-notes-webcomic
2026-02-17 04:30:57+00:00 Pelican is quite good although the neck lacks an outline for some reason. Bicycle is very basic with an incomplete frame https://static.simonwillison.net/static/2026/qwen3.5-397b-a17b.png https://simonwillison.net/2026/Feb/17/qwen35
2026-02-17 04:30:57+00:00 Similar quality pelican. The bicycle is taller and has a better frame shape. They are visually quite similar. https://static.simonwillison.net/static/2026/qwen3.5-plus-02-15.png https://simonwillison.net/2026/Feb/17/qwen35
2026-02-17 00:43:45+00:00 Title: Showboat. Remote viewer for Showboat documents. Showboat Feature Demo 2026-02-17 00:06 · 6 chunks, UUID. To send showboat output to this server, set the SHOWBOAT_REMOTE_URL environment variable: export SHOWBOAT_REMOTE_URL=&quot;http://127.0.0.1:8001/-/showboat/receive?token=your-token&quot; https://static.simonwillison.net/static/2026/datasette-showboat-documents.jpg https://simonwillison.net/2026/Feb/17/chartroom-and-datasette-showboat
2026-02-17 00:43:45+00:00 Animated demo - in the foreground a terminal window runs Claude Code, which executes various Showboat commands. In the background a Firefox window where the Showboat Feature Demo adds notes then some bash commands, then a placekitten image. https://static.simonwillison.net/static/2026/datasette-showboat.gif https://simonwillison.net/2026/Feb/17/chartroom-and-datasette-showboat
2026-02-17 00:43:45+00:00 A chart of those numbers, with a title and y-axis label https://raw.githubusercontent.com/simonw/chartroom/8812afc02e1310e9eddbb56508b06005ff2c0ed5/demo/1f6851ec-2026-02-14.png https://simonwillison.net/2026/Feb/17/chartroom-and-datasette-showboat
2026-02-16 16:38:57+00:00 Screenshot of a Claude Code session in Claude Desktop. Claude says: The debug page looks good - all items listed with titles and descriptions. Now let me check the nav menu - Analyzed menu image file - Bash uvx rodney open "http://localhost:8765/" 2>&1 && uvx rodney click "details.nav-menu summary" 2>&1 &% sleep 0.5 && uvx rodney screenshot /tmp/menu.png 2>&1 Output reads: Datasette: test, Clicked, /tmp/menu.png - then it says Read /tmp/menu.png and reveals a screenshot of the Datasette interface with the nav menu open, showing only "Debug" and "Log out" options. Claude continues: The menu now has just "Debug" and “Log out" — much cleaner. Both pages look good. Let me clean up the server and run the remaining tests. https://static.simonwillison.net/static/2026/rodney-claude-desktop.jpg https://simonwillison.net/2026/Feb/16/rodney-claude-code
2026-02-15 18:26:08+00:00 Screenshot of a macOS terminal window titled "gw — more big.html — 123×46" showing the source code of a gwtar (self-extracting HTML archive) file. The visible code includes JavaScript with `requestIdleCallback(getMainPageHTML);`, a ` noscript ` block with warnings: a "js-disabled-warning" stating "This HTML page requires JavaScript to be enabled to render, as it is a self-extracting gwtar HTML file," a description of gwtar as "a portable self-contained standalone HTML file which is designed to nevertheless support efficient lazy loading of all assets such as large media files," with a link to https://gwern.net/gwtar, a "local-file-warning" with a shell command `perl -ne'print $_ if $x; $x=1 if /<!-- GWTAR END/' &lt; foo.gwtar.html | tar --extract`, and a "server-fail-warning" about misconfigured servers. Below the HTML closing tags and `<!-- GWTAR END` comment is binary tar archive data with the filename `2010-02-brianmoriarty-thesecretofpsalm46.html`, showing null-padded tar header fields including `ustar^@00root` and octal size/permission values. At the bottom, a SingleFile metadata comment shows `url: https://web.archive.org/web/20230512001411/http://ludix.com/moriarty/psalm46.html` and `saved date: Sat Jan 17 2026 19:26:49 GMT-0800 (Pacific Standard Time)`. https://static.simonwillison.net/static/2026/gwtar.jpg https://simonwillison.net/2026/Feb/15/gwtar
2026-02-15 04:33:22+00:00 Line chart showing Interop 2025 browser compatibility scores over the year (Jan–Dec) for Chrome, Edge, Firefox, Safari, and Interop. Y-axis ranges from 0% to 100%. Chrome (yellow) and Edge (green) lead, starting around 80% and reaching near 100% by Dec. Firefox (orange) starts around 48% and climbs to ~98%. Safari (blue) starts around 45% and reaches ~96%. The Interop line (dark green/black) starts lowest around 29% and rises to ~95% by Dec. All browsers converge near 95–100% by year's end. https://static.simonwillison.net/static/2026/interop-2025.jpg https://simonwillison.net/2026/Feb/15/interop-2026
2026-02-13 23:38:29+00:00 Git diff showing the 2020 revision dropping &quot;as a whole&quot; from &quot;benefit humanity as a whole&quot; and changing &quot;We think&quot; to &quot;OpenAI believes&quot; https://static.simonwillison.net/static/2026/mission-5.jpg https://simonwillison.net/2026/Feb/13/openai-mission-statement
2026-02-13 23:38:29+00:00 Git diff showing the 2018 revision deleting the final two sentences: &quot;Were trying to build AI as part of a larger community, and we want to openly share our plans and capabilities along the way.&quot; https://static.simonwillison.net/static/2026/mission-3.jpg https://simonwillison.net/2026/Feb/13/openai-mission-statement
2026-02-13 23:38:29+00:00 Git diff showing the 2024 revision deleting the entire multi-sentence mission statement and replacing it with just &quot;OpenAIs mission is to ensure that artificial general intelligence benefits all of humanity.&quot; https://static.simonwillison.net/static/2026/mission-9.jpg https://simonwillison.net/2026/Feb/13/openai-mission-statement
2026-02-13 23:38:29+00:00 Git diff showing the 2022 revision adding &quot;(AI)&quot; and the word &quot;safely&quot; so it now reads &quot;that safely benefits humanity&quot;, and changing &quot;the companys&quot; to &quot;our&quot; https://static.simonwillison.net/static/2026/mission-7.jpg https://simonwillison.net/2026/Feb/13/openai-mission-statement
2026-02-13 23:38:29+00:00 Git diff showing the 2021 revision replacing &quot;goal is to advance digital intelligence&quot; with &quot;mission is to build general-purpose artificial intelligence&quot;, changing &quot;most likely to benefit&quot; to just &quot;benefits&quot;, and replacing &quot;help the world build safe AI technology&quot; with &quot;the companys goal is to develop and responsibly deploy safe AI technology&quot; https://static.simonwillison.net/static/2026/mission-6.jpg https://simonwillison.net/2026/Feb/13/openai-mission-statement
2026-02-12 21:16:07+00:00 Whimsical flat illustration of a white pelican riding a dark blue bicycle at speed, with motion lines behind it, its long orange beak streaming back in the wind, set against a light blue sky and green grass background. https://static.simonwillison.net/static/2026/gpt-5.3-codex-pelican.png https://simonwillison.net/2026/Feb/12/codex-spark
2026-02-12 21:16:07+00:00 Whimsical flat illustration of an orange duck merged with a bicycle, where the duck's body forms the seat and frame area while its head extends forward over the handlebars, set against a simple light blue sky and green grass background. https://static.simonwillison.net/static/2026/gpt-5.3-codex-spark-pelican.png https://simonwillison.net/2026/Feb/12/codex-spark
2026-02-12 18:12:17+00:00 This alt text also generated by Gemini 3 Deep Think: A highly detailed, colorful, flat vector illustration with thick dark blue outlines depicting a stylized white pelican riding a bright cyan blue bicycle from left to right across a sandy beige beach with white speed lines indicating forward motion. The pelican features a light blue eye, a pink cheek blush, a massive bill with a vertical gradient from yellow to orange, a backward magenta cap with a cyan brim and a small yellow top button, and a matching magenta scarf blowing backward in the wind. Its white wing, accented with a grey mid-section and dark blue feather tips, reaches forward to grip the handlebars, while its long tan leg and orange foot press down on an orange pedal. Attached to the front handlebars is a white wire basket carrying a bright blue cartoon fish that is pointing upwards and forwards. The bicycle itself has a cyan frame, dark blue tires, striking neon pink inner rims, cyan spokes, a white front chainring, and a dark blue chain. Behind the pelican, a grey trapezoidal pier extends from the sand toward a horizontal band of deep blue ocean water detailed with light cyan wavy lines. A massive, solid yellow-orange semi-circle sun sits on the horizon line, setting directly behind the bicycle frame. The background sky is a smooth vertical gradient transitioning from soft pink at the top to warm golden-yellow at the horizon, decorated with stylized pale peach fluffy clouds, thin white horizontal wind streaks, twinkling four-pointed white stars, and small brown v-shaped silhouettes of distant flying birds. https://static.simonwillison.net/static/2026/gemini-3-deep-think-pelican.png https://simonwillison.net/2026/Feb/12/gemini-3-deep-think
2026-02-12 18:12:17+00:00 Also described by Gemini 3 Deep Think: A highly detailed, vibrant, and stylized vector illustration of a whimsical bird resembling a mix between a pelican and a frigatebird enthusiastically riding a bright cyan bicycle from left to right across a flat tan and brown surface. The bird leans horizontally over the frame in an aerodynamic racing posture, with thin, dark brown wing-like arms reaching forward to grip the silver handlebars and a single thick brown leg, patterned with white V-shapes, stretching down to press on a black pedal. The bird's most prominent and striking feature is an enormous, vividly bright red, inflated throat pouch hanging beneath a long, straight grey upper beak that ends in a small orange hook. Its head is mostly white with a small pink patch surrounding the eye, a dark brown stripe running down the back of its neck, and a distinctive curly pale yellow crest on the very top. The bird's round, dark brown body shares the same repeating white V-shaped feather pattern as its leg and is accented by a folded wing resting on its side, made up of cleanly layered light blue and grey feathers. A tail composed of four stiff, straight dark brown feathers extends directly backward. Thin white horizontal speed lines trail behind the back wheel and the bird's tail, emphasizing swift forward motion. The bicycle features a classic diamond frame, large wheels with thin black tires, grey rims, and detailed silver spokes, along with a clearly visible front chainring, silver chain, and rear cog. The whimsical scene is set against a clear light blue sky featuring two small, fluffy white clouds on the left and a large, pale yellow sun in the upper right corner that radiates soft, concentric, semi-transparent pastel green and yellow halos. A solid, darker brown shadow is cast directly beneath the bicycle's wheels on the minimalist two-toned brown ground. https://static.simonwillison.net/static/2026/gemini-3-deep-think-complex-pelican.png https://simonwillison.net/2026/Feb/12/gemini-3-deep-think
2026-02-11 18:56:14+00:00 The pelican is good and has a well defined beak. The bicycle frame is a wonky red triangle. Nice sun and motion lines. https://static.simonwillison.net/static/2026/glm-5-pelican.png https://simonwillison.net/2026/Feb/11/glm-5
2026-02-11 17:34:40+00:00 Screenshot of the cysqlite WebAssembly Demo page with a dark theme. Title reads "cysqlite — WebAssembly Demo" with subtitle "Testing cysqlite compiled to WebAssembly via Emscripten, running in Pyodide in the browser." Environment section shows Pyodide 0.25.1, Python 3.11.3, cysqlite 0.1.4, SQLite 3.51.2, Platform Emscripten-3.1.46-wasm32-32bit, Wheel file cysqlite-0.1.4-cp311-cp311-emscripten_3_1_46_wasm32.wh (truncated). A green progress bar shows "All 115 tests passed! (1 skipped)" at 100%, with Passed: 115, Failed: 0, Errors: 0, Skipped: 1, Total: 116. Test Results section lists TestBackup 1/1 passed, TestBlob 6/6 passed, TestCheckConnection 4/4 passed, TestDataTypesTableFunction 1/1 passed, all with green badges. https://static.simonwillison.net/static/2026/cysqlite-tests.jpg https://simonwillison.net/2026/Feb/11/cysqlite
2026-02-10 17:45:29+00:00 Screenshot showing a Markdown file &quot;demo.md&quot; side-by-side with its rendered preview. The Markdown source (left) shows: &quot;# How to use curl and jq&quot;, italic timestamp &quot;2026-02-10T01:12:30Z&quot;, prose &quot;Here's how to use curl and jq together.&quot;, a bash code block with &quot;curl -s https://api.github.com/repos/simonw/rodney | jq .description&quot;, output block showing '&quot;CLI tool for interacting with the web&quot;', text &quot;And the curl logo, to demonstrate the image command:&quot;, a bash {image} code block with &quot;curl -o curl-logo.png https://curl.se/logo/curl-logo.png &amp;&amp; echo curl-logo.png&quot;, and a Markdown image reference &quot;2056e48f-2026-02-10&quot;. The rendered preview (right) displays the formatted heading, timestamp, prose, styled code blocks, and the curl logo image in dark teal showing &quot;curl://&quot; with circuit-style design elements. https://static.simonwillison.net/static/2026/curl-demo.jpg https://simonwillison.net/2026/Feb/10/showboat-and-rodney
2026-02-10 17:45:29+00:00 ;~ % rodney start Chrome started (PID 91462) Debug URL: ws://127.0.0.1:64623/devtools/browser/cac6988e-8153-483b-80b9-1b75c611868d ~ % rodney open https://datasette.io/ Datasette: An open source multi-tool for exploring and publishing data ~ % rodney js 'Array.from(document.links).map(el =&gt; el.href).slice(0, 5)' [ &quot;https://datasette.io/for&quot;, &quot;https://docs.datasette.io/en/stable/&quot;, &quot;https://datasette.io/tutorials&quot;, &quot;https://datasette.io/examples&quot;, &quot;https://datasette.io/plugins&quot; ] ~ % rodney click 'a[href=&quot;/for&quot;]' Clicked ~ % rodney js location.href https://datasette.io/for ~ % rodney js document.title Use cases for Datasette ~ % rodney screenshot datasette-for-page.png datasette-for-page.png ~ % rodney stop Chrome stopped https://static.simonwillison.net/static/2026/rodney-demo.jpg https://simonwillison.net/2026/Feb/10/showboat-and-rodney
2026-02-09 23:56:51+00:00 Screenshot of a figure from a research paper. Introductory text reads: "As schema size increased, TOON showed dramatically increased token consumption for Claude models despite being ~25% smaller in file size. Scale experiments used Claude models only." Below is "Figure 7: The 'Grep Tax' - TOON Token Overhead at Scale", a bar chart with a logarithmic y-axis labeled "Tokens" comparing YAML (teal) and TOON (purple) at two schema sizes: S5 (500 tables) and S9 (10,000 tables). At S5, TOON is +138% more tokens than YAML (~1,100 vs ~450). At S9, TOON is +740% more tokens (~50,000 vs ~7,000). Below the chart, explanatory text reads: "The 'grep tax' emerged as schema size scaled. At S5 (500 tables), TOON consumed 138% more tokens than YAML; at S9 (10,000 tables), this grew to 740%. Root cause: models lacked familiarity with TOON's syntax and could not construct effective refinement patterns." https://static.simonwillison.net/static/2026/grep-tax.jpg https://simonwillison.net/2026/Feb/9/structured-context-engineering-for-file-native-agentic-systems
2026-02-07 15:40:48+00:00 Screenshot of a Slack-like interface titled &quot;DTU Slack&quot; showing a thread view (Thread — C4B9FBB97) with &quot;Focus first&quot; and &quot;Leave&quot; buttons. The left sidebar lists channels including # org-general (182), # general (0) (shared×2), # it-support (0), # channel-0002 (0) (shared×2), # channel-0003 (0) through # channel-0020 (0), # org-finance (1), and a DMs section with a &quot;Start&quot; button. A &quot;Create&quot; button appears at the top of the sidebar. The main thread shows approximately 9 automated introduction messages from users with Okta IDs (e.g. @okta-u-423438-00001, @okta-u-423438-00002, etc.), all timestamped 2025-11-12Z between 18:50:31 and 18:51:51. Each message follows the format &quot;Hi team! I'm [Name], joining as Employee in general. Key skills: [fictional skill phrases]. Excited to contribute!&quot; All users have red/orange &quot;O&quot; avatar icons. https://static.simonwillison.net/static/2026/strong-dm-slack.jpg https://simonwillison.net/2026/Feb/7/software-factory
2026-02-06 22:31:31+00:00 Screenshot of a web app titled &quot;Monty via Pyodide&quot; with description &quot;Run Monty (a sandboxed Python interpreter by Pydantic) inside Pyodide (CPython compiled to WebAssembly). This loads the pydantic-monty wheel and uses its full Python API. Code is saved in the URL for sharing.&quot; A green banner reads &quot;Code executed successfully!&quot; Below are example buttons labeled &quot;Basic&quot;, &quot;Inputs&quot;, &quot;Reuse&quot;, &quot;Error Handling&quot;, &quot;Fibonacci&quot;, and &quot;Classes&quot;. A code editor labeled &quot;Python Code (runs inside Monty sandbox via Pyodide):&quot; contains: &quot;import pydantic_monty\n\n# Create interpreter with input variables\nm = pydantic_monty.Monty('x + y', inputs=['x', 'y'])\n\n# Run with different inputs\nresult1 = m.run(inputs={&quot;x&quot;: 10, &quot;y&quot;: 20})\nprint(f&quot;10 + 20 = {result1}&quot;)\n\nresult2 = m.run(inputs={&quot;x&quot;: 100, &quot;y&quot;: 200})&quot; with &quot;Run Code&quot; and &quot;Clear&quot; buttons. The Output section shows &quot;10 + 20 = 30&quot; and &quot;100 + 200 = 300&quot; with a &quot;Copy&quot; button. Footer reads &quot;Executed in 4.0ms&quot;. https://static.simonwillison.net/static/2026/monty-pyodide.jpg https://simonwillison.net/2026/Feb/6/pydantic-monty
2026-02-05 20:29:20+00:00 Not nearly as good - the bicycle is a bit mangled, the pelican not nearly as well rendered - it's more of a line drawing. https://static.simonwillison.net/static/2026/codex-5.3-pelican.png https://simonwillison.net/2026/Feb/5/two-new-models
2026-02-05 20:29:20+00:00 Slightly wonky bicycle frame but an excellent pelican, very clear beak and pouch, nice feathers. https://static.simonwillison.net/static/2026/opus-4.6-pelican.png https://simonwillison.net/2026/Feb/5/two-new-models
2026-02-05 00:23:38+00:00 Screenshot of the CIA World Factbook website homepage. Header reads "THE WORLD FACTBOOK" with a dropdown labeled "Please select a country to view." Navigation tabs: ABOUT, REFERENCES, APPENDICES, FAQs. Section heading "WELCOME TO THE WORLD FACTBOOK" followed by descriptive text: "The World Factbook provides information on the history, people and society, government, economy, energy, geography, communications, transportation, military, and transnational issues for 267 world entities. The Reference tab includes: a variety of world, regional, country, ocean, and time zone maps; Flags of the World; and a Country Comparison function that ranks the country information and data in more than 75 Factbook fields." A satellite image of Earth is displayed on the right. Below it: "WHAT'S NEW :: Today is: Wednesday, February 4." Left sidebar links with icons: WORLD TRAVEL FACTS, ONE-PAGE COUNTRY SUMMARIES, REGIONAL AND WORLD MAPS, FLAGS OF THE WORLD, GUIDE TO COUNTRY COMPARISONS. Right side shows news updates dated December 17, 2020 about Electricity access and new Economy fields, and December 10, 2020 about Nepal and China agreeing on the height of Mount Everest at 8,848.86 meters. A "VIEW ALL UPDATES" button appears at the bottom. https://static.simonwillison.net/static/2025/factbook-2020.jpg https://simonwillison.net/2026/Feb/5/the-world-factbook
2026-02-04 22:42:34+00:00 Screenshot of a speech-to-text transcription interface for a file named "Pelican talk at the library.m4a". The toolbar shows "Speech to text" with Code, Transcribe, and Download buttons. The transcript shows timestamped segments from 5:53 to 6:53 with a speaker icon, reading: "5:53 – 6:01 So pelicans love to, they're very good at getting the most they can out of the topography when they're flying. 6:01 – 6:06 And our winds come in from the northwest and they hit those bluffs and they're deflected up. 6:07 – 6:18 And they will sit right, they'll fly north into a wind like five feet off those bluffs, but just five or ten feet off the surface because the winds dissipate. 6:19 – 6:22 And they will surf that bluff all the way north. 6:23 – 6:30 So you'll see a wind from the north at 15 miles an hour, and the pelicans are flying north into that wind and not flapping their wings. 6:31 – 6:33 And it's one of the coolest things. 6:33 – 6:35 You can only find it on San Francisco Coast. 6:36 – 6:39 Where right where the bluffs are steep. 6:41 – 6:43 Pacifica, you can find them there. 6:43 – 6:51 They like their, what we call pier bums, which are typically pelicans that have, are in some sort of trouble. 6:51 – 6:53 They're unable to catch food." The segment at 6:41–6:43 is highlighted in yellow. An audio waveform is shown at the bottom with a playhead near 6:40. Stats in the lower right show 53.90s, 7946.00s, and #45833. https://static.simonwillison.net/static/2025/mistral-transcript-ui.jpg https://simonwillison.net/2026/Feb/4/voxtral-2
2026-02-04 14:59:47+00:00 running that command produces a sequence of JSON objects, each with a path and a size key https://static.simonwillison.net/static/2025/sqlite-scanner-demo.gif https://simonwillison.net/2026/Feb/4/distributing-go-binaries
2026-02-02 19:54:36+00:00 Screenshot of a macOS desktop application with a dark sidebar and light main content area. Left sidebar shows navigation items "New thread", "Automations", "Skills", and a "Threads" section containing two project folders: "local-codex-scratch" with tasks "Reply to greeting task 2h" and "List Codex.app contents 3h", and "shot-scraper" with tasks "Validate tests on dependency... 3h", "Document shot-scraper CLI usage 18h" (highlighted), and "Run this: uv run pytest -x 1d". Bottom left shows "Personal". Top bar displays "Document shot-scraper CLI usage shot-scraper" with "Open" and "Commit" dropdown buttons. Main content shows a conversation: user message "Build a skill describing how to use the shot-scraper CLI tool" followed by assistant responses: "I'll use the skill-creator skill, scan the repo for existing shot-scraper docs/commands, then draft a concise skill in this workspace and sanity-check it." then "I've confirmed the skill-creator scripts exist. Next I'll inspect the CLI entrypoint and docs, then scaffold a skill under skills/ in this repo." then "I've scaffolded skills/shot-scraper-cli/. I'll now replace the template SKILL.md with a task-focused skill and add a compact CLI reference under references/." then "I'll run the skill packager/validator next to ensure the new skill structure is valid." then "Done — I created and packaged the skill. Key outputs: • Skill definition: SKILL.md • Compact reference: cli-reference.md • Packaged skill: shot-scraper-cli.skill". Bottom shows input field with placeholder "Ask for follow-up changes", "+ Custom Medium" dropdown, and "Local" and "main" branch indicators. https://static.simonwillison.net/static/2026/codex-app.jpg https://simonwillison.net/2026/Feb/2/introducing-the-codex-app
2026-02-02 19:54:36+00:00 Database schema documentation on light gray background showing three tables: "automation_runs" (teal underlined link) with italic columns "thread_id, automation_id, status, read_at, thread_title, source_cwd, inbox_title, inbox_summary, created_at, updated_at, archived_user_message, archived_assistant_message, archived_reason" and "1 row"; "automations" (teal underlined link) with italic columns "id, name, prompt, status, next_run_at, last_run_at, cwds, rrule, created_at, updated_at" and "1 row"; "inbox_items" (teal underlined link) with italic columns "id, title, description, thread_id, read_at, created_at" and "0 rows". https://static.simonwillison.net/static/2026/codex-dev-sqlite.jpg https://simonwillison.net/2026/Feb/2/introducing-the-codex-app
2026-02-01 23:59:13+00:00 Screenshot of the OpenClaw Gateway Dashboard web interface. Header shows "OpenCLAW GATEWAY DASHBOARD" with a green "Health OK" indicator. Left sidebar contains navigation sections: Chat (Chat highlighted), Control (Overview, Channels, Instances, Sessions, Cron Jobs), Agent (Skills, Nodes), Settings (Config, Debug, Logs), and Resources (Docs). Main content area displays "Chat" with subtitle "Direct gateway chat session for quick interventions." and "telegram:6580064359" identifier. A user message at 4:08 PM reads "Show me a detailed list of all your available configured tools". The assistant response states: "Here's the full list of tools I have available in this OpenClaw session (as configured). These are the only ones I can call programmatically:" followed by categorized tools: "File & workspace" (read — Read a file (text or image). Supports offset/limit for large files; write — Create/overwrite a file (creates parent dirs); edit — Precise in-place edit by exact string replacement), "Shell / processes" (exec — Run a shell command (optionally PTY, backgrounding, timeouts); process — Manage running exec sessions (list/poll/log/write/kill/etc.)), "Web" (web_search — Search the web (Brave Search API); web_fetch — Fetch a URL and extract readable content (markdown/text); browser — Control a browser (open/navigate/snapshot/screenshot/act/etc.)), "UI / rendering" (canvas — Present/eval/snapshot a Canvas surface (for node canvases/UI rendering)), and "Devices / nodes" (cut off). Bottom shows message input with placeholder "Message (↵ to send, Shift+↵ for line breaks, paste images)" and "New session" and coral "Send" buttons. https://static.simonwillison.net/static/2026/openclaw-web-ui.jpg https://simonwillison.net/2026/Feb/1/openclaw-in-docker
2026-01-30 16:43:23+00:00 Screenshot of Moltbook website homepage with dark theme. Header shows &quot;moltbook beta&quot; logo with red robot icon and &quot;Browse Submolts&quot; link. Main heading reads &quot;A Social Network for AI Agents&quot; with subtext &quot;Where AI agents share, discuss, and upvote. Humans welcome to observe.&quot; Two buttons: red &quot;I'm a Human&quot; and gray &quot;I'm an Agent&quot;. Card titled &quot;Send Your AI Agent to Moltbook 🌱&quot; with tabs &quot;molthub&quot; and &quot;manual&quot; (manual selected), containing red text box &quot;Read https://moltbook.com/skill.md and follow the instructions to join Moltbook&quot; and numbered steps: &quot;1. Send this to your agent&quot; &quot;2. They sign up &amp; send you a claim link&quot; &quot;3. Tweet to verify ownership&quot;. Below: &quot;🤖 Don't have an AI agent? Create one at openclaw.ai →&quot;. Email signup section with &quot;Be the first to know what's coming next&quot;, input placeholder &quot;your@email.com&quot; and &quot;Notify me&quot; button. Search bar with &quot;Search posts and comments...&quot; placeholder, &quot;All&quot; dropdown, and &quot;Search&quot; button. Stats displayed: &quot;32,912 AI agents&quot;, &quot;2,364 submolts&quot;, &quot;3,130 posts&quot;, &quot;22,046 comments&quot;. https://static.simonwillison.net/static/2026/moltbook.jpg https://simonwillison.net/2026/Jan/30/moltbook
2026-01-28 22:10:08+00:00 Screenshot of a Tools settings panel with a teal header reading &quot;Tools&quot; followed by three linked options: &quot;Bulk Tag Tool - Add tags to multiple items at once&quot;, &quot;Merge Tags - Merge multiple tags into one&quot;, &quot;SQL Dashboard - Run SQL queries against the database&quot;, and a checked checkbox labeled &quot;Show &quot;Edit&quot; links on public pages&quot; https://static.simonwillison.net/static/2026/edit-toggle.jpg https://simonwillison.net/2026/Jan/28/dynamic-features-static-site
2026-01-28 22:10:08+00:00 Animated demo. Starts on the ai-ethics tag page where a new Random button sits next to the feed icon. Clicking that button jumps to a post with that tag and moves the button into the site header - clicking it multiple times jumps to more random items. https://static.simonwillison.net/static/2026/random-by-tag.gif https://simonwillison.net/2026/Jan/28/dynamic-features-static-site
2026-01-28 22:10:08+00:00 Entry footer - it says Posted 27th January 2026 at 9:44 p.m. followed by a square Edit button with an icon. https://static.simonwillison.net/static/2026/edit-link.jpg https://simonwillison.net/2026/Jan/28/dynamic-features-static-site
2026-01-27 16:58:08+00:00 My blog rendered in a window. Everything is in the right place, the CSS gradients look good, the feed subscribe SVG icon is rendered correctly but there's a missing PNG image. https://static.simonwillison.net/static/2026/one-agent-simonwillison.jpg https://simonwillison.net/2026/Jan/27/one-human-one-agent-one-browser
2026-01-27 15:07:41+00:00 Cartoon illustration of a white pelican with a large orange beak and yellow throat pouch riding a green bicycle with yellow feet on the pedals, set against a light blue sky with soft bokeh circles and a green grassy hill. The bicycle frame is a little questionable. The pelican is quite good. The feet do not quite align with the pedals, which are floating clear of the frame. https://static.simonwillison.net/static/2026/kimi-k2.5-pelican.png https://simonwillison.net/2026/Jan/27/kimi-k25
2026-01-26 19:19:31+00:00 Exploring methods to fetch AQI data and reports Downloading AQI data for Los Angeles I found an xlsx file titled &quot;Air Quality Statistics by City, 2000-2023&quot;, which should include data for Los Angeles. While user requested data for Using provided URL to download file The URL from the error message leads to an Excel file containing air quality trends. I can use the container.download tool to fetch it. Let’s proceed with this approach and see if it works out for downloading the file directly! Analyzed Parsing and analyzing the data for Los Angeles Now that we've downloaded the data, I'll parse it using Python. First, I'll focus on identifying the row(s) corresponding to Los Angeles, which may be labeled under &quot;Los Angeles-Long Beach-Anaheim, CA.&quot; Afterward, I'll plot metrics like &quot;Median AQI&quot; and &quot;Days Good&quot; over time to visualize trends. Let’s begin! https://static.simonwillison.net/static/2026/container-download.jpg https://simonwillison.net/2026/Jan/26/chatgpt-containers
2026-01-26 19:19:31+00:00 Terminal screenshot showing &quot;Hello, world&quot; programs in multiple languages. Top section shows code: swift -e 'print(&quot;Hello, world from Swift!&quot;)' followed by cat &gt; hello.kts &lt;&lt;'KTS' / println(&quot;Hello, world from Kotlin!&quot;) / KTS / kotlinc -script hello.kts, then cat &gt; hello.c &lt;&lt;'C' / #include &lt;stdio.h&gt; / int main(){ puts(&quot;Hello, world from C!&quot;); return 0; } / C / gcc hello.c -o hello_c / ./hello_c, then cat &gt; hello.cpp &lt;&lt;'CPP' / #include &lt;iostream&gt; / int main(){ std::cout &lt;&lt; &quot;Hello, world from C++!&quot; &lt;&lt; std::endl; } / CPP / g++ hello.cpp -o hello_cpp / ./hello_cpp. Bottom section shows output: Hello, world from Ruby! / Hello, world from Perl! / Hello, world from PHP! / Hello, world from Go! / Hello, world from Java! / Hello, world from Swift! / Hello, world from Kotlin! / Hello, world from C! / Hello, world from C++!. UI shows &quot;Thought for 2m 29s&quot; and &quot;Done&quot; at bottom. https://static.simonwillison.net/static/2026/chatgpt-hello-worlds.jpg https://simonwillison.net/2026/Jan/26/chatgpt-containers
2026-01-26 19:19:31+00:00 Screenshot of ChatGPT 5.2 Thinking interface with Activity panel. Main chat shows user prompt &quot;npm install a fun package and demonstrate using it&quot; and response &quot;Thought for 32s &gt; Yep — here's a fun one: cowsay 🐄 I installed it with npm and ran a tiny Node script:&quot; followed by bash code block containing &quot;mkdir -p /mnt/data/npmfun cd /mnt/data/npmfun npm init -y npm install cowsay --no-fund --no-audit node -e &quot;const cowsay=require('cowsay'); console.log(cowsay.say({text:'Hel&quot; and Output: section showing ASCII cow art saying &quot;&lt; Hello from npm inside the container! &gt;&quot; with cow drawing made of characters. Activity panel on right (32s) shows: &quot;Running npm install in container&quot; with bash command and output &quot;v22.16.0 10.9.2&quot;, &quot;Inspecting npm command output and container status&quot; with directory listing showing &quot;drwxr-xr-x 2 root oai_shared 80 Jan 26 17:32 . drwxrwxr-x 2 oai oai_shared 60 Jan 26 17:32 .. -rw-r--r-- 1 root root&quot;, &quot;Re-running npm install&quot; note about node_modules missing, and &quot;Rerunning npm install with output&quot; showing &quot;added 41 packages in 2s&quot;. https://static.simonwillison.net/static/2026/chatgpt-bash.jpg https://simonwillison.net/2026/Jan/26/chatgpt-containers
2026-01-25 23:51:32+00:00 Screenshot of a dark-themed file explorer application. Top stats bar shows: 12179 TOTAL FILES, 2079 FOLDERS, 244 MB TOTAL SIZE, 97 FILE TYPES in cyan text. Search bar with placeholder "Search files..." and "All types" dropdown. Left panel labeled "File tree" (showing 12179) displays folder hierarchy: datasette > .claude > skills > building-datasette-plugins containing HOOKS.md (10.7 KB, selected/highlighted), INTERNALS.md (10.1 KB), SKILL.md (3.7 KB), TESTING.md (8.4 KB), settings.local.json (280 B); also shows .eggs folder with pytest_runner-6.0.1-py3.9.egg. Right panel "File preview" shows selected file details: Name: HOOKS.md, Path: datasette/.claude/skills/building-datasette-plugins/HOOKS.md, Size: 10.7 KB, Type: text/markdown, Last modified: 12/20/2025, 9:28:59 AM. Preview content shows: "# Plugin Hooks Reference" followed by "All hooks use the `@hookimpl` decorator. Accept only the parameters you need." then "## Database Connection Hooks" and "### prepare_connection(conn, database, datasette)" with description "Called when a new SQLite connection is created. Use to register custom SQL functions." Bottom section "File type distribution" shows horizontal bar chart: .py (4439), .no ext (3358), .dat (1068), .pyc (925), .txt (332), .mo (321), .po (321), .html (249). https://static.simonwillison.net/static/2026/webkit-file-tree.jpg https://simonwillison.net/2026/Jan/25/the-browser-is-the-sandbox
2026-01-25 23:51:32+00:00 Screenshot of Co-do application interface with robot logo. Left sidebar shows WORKSPACE section with "Select Folder" button, "Selected folder: blog-drafts (Live updates enabled)" in green text, and FILES list including gtr-t5-large.md, chatgpt.md, llm-digest-october-2..., weeknotes-2024-04-23..., lmarena-april-2025.md, weeknotes-chatgpt-fo..., tests-not-optional-c..., weeknotes-13-mar-202..., issue-for-notes.md, workshop-git-scrapin.... Main chat area shows user message "Three most recently edited files?" in orange bubble, "Using 26 tools..." dropdown, and AI response: "Now I need to get the metadata for these files to find the most recently edited ones. Since there are many files, let me get metadata for a sample of them to find the recent ones:Based on the metadata I've gathered, the three most recently edited files are:" followed by table with columns File and Last Modified showing predictions-2026.md (Jan 8, 2026), december-2025.md (Jan 2, 2026), gemini-3-flash.md (Dec 17, 2025). Green "Response complete" banner at bottom with input field placeholder "Ask me to help with your files..." and notice "File contents are sent to your selected AI provider". https://static.simonwillison.net/static/2026/codo.jpg https://simonwillison.net/2026/Jan/25/the-browser-is-the-sandbox
2026-01-24 23:31:03+00:00 Don't "Trust the process" slide, speaker shown on the left https://static.simonwillison.net/static/2026/dont-trust-process.jpg https://simonwillison.net/2026/Jan/24/dont-trust-the-process
2026-01-23 21:26:10+00:00 Terminal window showing a tmux session running &quot;grind-swarm&quot; task manager with RUNNING status. Header shows &quot;grind-swarm – 45:54:15&quot; with stats &quot;planners: 9 (0 done) | tasks: 111 working, 0 pending, 232 done | 12900.9M↑ 514.1M↓&quot;. Task list includes: p1 Root (main), p2 CSS selector matching performance + bloom filter integration, p3 CSS stylesheet parsing semantics &amp; at-rule handling, p4 Custom properties (@property) + var() resolution + incremental recompute/invalidation, p37 CSS at-rule artifact integration, p50 Selector engine correctness &amp; spec coverage, p51 Computed-value + property coverage across css-cascade, p105 Style sharing / computed style caching in fastrender-style, p289 CSS cascade layers (@layer) global ordering, w5 Fix workspace lockfile drift, w7 Implement computed-style snapshot sharing, w15 Fix css-properties namespace handling, w17 (Stretch) Enable bloom fast-reject in HTML quirks mode, w18 Refactor css-properties stylesheet parsing. Activity log shows shell commands including cargo check, git status, git push origin main, and various test runs. Bottom status bar shows &quot;grind-css0:target/release/grind-swarm*&quot; and &quot;streamyard.com is sharing your screen&quot; notification with timestamp &quot;12:02 22-Jan-26&quot;. https://static.simonwillison.net/static/2026/wilson-lin-agents.jpg https://simonwillison.net/2026/Jan/23/fastrender
2026-01-22 17:42:34+00:00 Screenshot of a Qwen3-TTS voice cloning web interface with three tabs at top: "Voice Design", "Voice Clone (Base)" (selected), and "TTS (CustomVoice)". The page is titled "Clone Voice from Reference Audio" and has two main sections. Left section: "Reference Audio (Upload a voice sample clone)" showing an audio waveform player at 0:00/0:34 with playback controls, upload and microphone icons, followed by "Reference Text (Transcript of the reference audio)" containing three paragraphs: "Simon Willison is the creator of Datasette, an open source tool for exploring and publishing data. He currently works full-time building open source tools for data journalism, built around Datasette and SQLite. Prior to becoming an independent open source developer, Simon was an engineering director at Eventbrite. Simon joined Eventbrite through their acquisition of Lanyrd, a Y Combinator funded company he co-founded in 2010. He is a co-creator of the Django Web Framework, and has been blogging about web development and programming since 2002 at simonwillison.net". Right section: "Target Text (Text to synthesize with cloned voice)" containing text about Qwen3-TTS speech generation capabilities, with "Language" dropdown set to "Auto" and "Model Size" dropdown set to "1.7B", and a purple "Clone & Generate" button at bottom. https://static.simonwillison.net/static/2026/qwen-voice-clone.jpg https://simonwillison.net/2026/Jan/22/qwen3-tts
2026-01-19 05:12:51+00:00 The browser chrome is neat but has a garbled tab name at the top. The Google homepage looks mostly correct but the buttons are not styled correctly and the Google Search one has a huge plus icon floating near it. https://static.simonwillison.net/static/2026/cursor-google.png https://simonwillison.net/2026/Jan/19/scaling-long-running-autonomous-coding
2026-01-19 05:12:51+00:00 My blog looks mostly correct, but the right closing quotation mark on a quotation (which is implemented as a background image on the final paragraph) is displayed incorrectly multiple times. https://static.simonwillison.net/static/2026/cursor-simonwillison.jpg https://simonwillison.net/2026/Jan/19/scaling-long-running-autonomous-coding
2026-01-16 21:28:26+00:00 Two iPhone screenshots showing ChatGPT mobile app interface. Left screen displays a conversation about Santa Fe, New Mexico with an image of adobe-style buildings and desert landscape, text reading "Santa Fe, New Mexico—often called 'The City Different'—is a captivating blend of history, art, and natural beauty at the foot of the Sangre de Cristo Mountains. As the oldest and highest-elevation state capital in the U.S., founded in 1610, it offers a unique mix of Native American, Spanish, and Anglo cultures." Below is a sponsored section from "Pueblo & Pine" showing "Desert Cottages - Expansive residences with desert vistas" with a thumbnail image, and a "Chat with Pueblo & Pine" button. Input field shows "Ask ChatGPT". Right screen shows the Pueblo & Pine chat interface with the same Desert Cottages listing and an AI response "If you're planning a trip to Sante Fe, I'm happy to help. When are you thinking of going?" with input field "Ask Pueblo & Pine" and iOS keyboard visible. https://static.simonwillison.net/static/2026/chatgpt-ads.jpg https://simonwillison.net/2026/Jan/16/chatgpt-ads
2026-01-12 21:46:13+00:00 Screenshot of Claude AI desktop application showing a &quot;Cowork&quot; task interface. Left sidebar shows tabs for &quot;Chat&quot;, &quot;Code&quot;, and &quot;Cowork&quot; (selected), with &quot;+ New task&quot; button and a task titled &quot;Review unpublished drafts for pu...&quot; listed below. Text reads &quot;These tasks run locally and aren't synced across devices&quot;. Main panel header shows &quot;Review unpublished drafts for publication&quot;. User message in green bubble reads: &quot;Look at my drafts that were started within the last three months and then check that I didn't publish them on simonwillison.net using a search against content on that site and then suggest the ones that are most close to being ready&quot;. Claude responds: &quot;I'll help you find drafts from the last three months and check if they've been published. Let me start by looking at your drafts folder.&quot; Below is an expanded &quot;Running command&quot; section showing Request JSON with command: find /sessions/zealous-bold-ramanujan/mnt/blog-drafts -type f \\( -name \&quot;*.md\&quot; -o -name \&quot;*.txt\&quot; -o -name \&quot;*.html\&quot; \\) -mtime -90 -exec ls -la {} \\;, description: Find draft files modified in the last 90 days. Response text begins: &quot;Found 46 draft files. Next let me read the content of each to get their titles/topics, then&quot;. Right sidebar shows Progress section with three circular indicators (two checked, one pending) and text &quot;Steps will show as the task unfolds.&quot;, Artifacts section listing &quot;publish-encouragement.html&quot;, Context section with &quot;Selected folders&quot; showing &quot;blog-drafts&quot; folder, Connectors showing &quot;Web search&quot;, and Working files listing &quot;llm-digest-october-2025.md&quot;, &quot;tests-not-optional-coding-agen...&quot;, and &quot;digest-november-2025.md&quot;. Bottom shows reply input field, &quot;Opus 4.5&quot; model selector, user &quot;Simon Willison&quot; with &quot;Max plan&quot;, and disclaimer &quot;Claude is AI and can make mistakes. Please double-check responses.&quot; https://static.simonwillison.net/static/2026/claude-cowork.jpg https://simonwillison.net/2026/Jan/12/claude-cowork
2026-01-12 21:46:13+00:00 Screenshot of the same Claude AI desktop application Cowork interface, now showing completed task results. Left panel shows &quot;1 step &gt;&quot; with link &quot;View your animated encouragement page&quot;. Claude's response reads: &quot;I created an over-the-top animated encouragement page with:&quot; followed by bullet points: &quot;🚀 Pulsing rockets and bouncing stats&quot;, &quot;✨ Falling emoji rain and confetti&quot;, &quot;🔥 Dancing fire emojis around your draft title&quot;, &quot;💫 Sparkles that follow your mouse&quot;, &quot;📊 An animated '95% ready' progress bar&quot;, &quot;💬 Rotating motivational quotes&quot;, &quot;🎉 A 'I'M GONNA DO IT!' button that triggers an explosion of confetti when clicked&quot;. Center shows an artifact preview of the generated HTML page with dark background featuring animated rocket emojis, large white text &quot;PUBLISH TIME!&quot;, stats showing &quot;22,602 bytes of wisdom waiting&quot;, &quot;95% ready to ship&quot;, infinity symbol with &quot;future arguments saved&quot;, and a fire emoji with yellow text &quot;Frequently&quot; (partially visible). Top toolbar shows &quot;Open in Firefox&quot; button. Right sidebar displays Progress section with checkmarks, Artifacts section with &quot;publish-encouragement.html&quot; selected, Context section showing &quot;blog-drafts&quot; folder, &quot;Web search&quot; connector, and Working files listing &quot;llm-digest-october-2025.md&quot;, &quot;tests-not-optional-coding-agen...&quot;, and &quot;digest-november-2025.md&quot;. Bottom shows reply input, &quot;Opus 4.5&quot; model selector, and disclaimer text. https://static.simonwillison.net/static/2026/claude-cowork-artifact.jpg https://simonwillison.net/2026/Jan/12/claude-cowork
2026-01-12 21:46:13+00:00 An anthropic style logo with a cow and an ork on it https://static.simonwillison.net/static/2026/cow-ork.jpg https://simonwillison.net/2026/Jan/12/claude-cowork
2026-01-08 19:42:13+00:00 A beautiful green Kākāpō surrounded by candles gazes into a crystal ball https://static.simonwillison.net/static/2026/oxide-kakapo.jpg https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026
2025-12-31 23:50:40+00:00 Analytics dashboard screenshot showing four purple stat cards at top: &quot;824 Total Visits&quot;, &quot;97 Unique Pages&quot;, &quot;26 Today&quot;, &quot;94 This Week&quot;. Below left is a &quot;Visits Over Time&quot; line graph with Hourly/Daily toggle (Daily selected) showing visits from Dec 18-Dec 30 with a peak of 50 around Dec 22-23. Below right is a &quot;Top Pages&quot; donut chart with legend listing in order of popularity: terminal-to-html, claude-code-timeline, svg-render, render-markdown, zip-wheel-explorer, codex-timeline, github-ratelimit, image-resize-quality, github-issue-to-markdown, analytics. https://static.simonwillison.net/static/2025/tool-analytics-2025.jpg https://simonwillison.net/2025/Dec/31/the-year-in-llms
2025-12-31 23:50:40+00:00 Bar chart titled &quot;INTELLIGENCE&quot; showing &quot;Artificial Analysis Intelligence Index; Higher is better&quot; comparing open weight AI models. Scores from left to right: GLM-4.7 (68, blue), Kimi K2 Thinking (67, orange), MiMo-V2-Flash (66, red), DeepSeek V3.2 (66, pink), MiniMax-M2.1 (64, teal), gpt-oss-120B (high) (61, black), Qwen3 235B A22B 2507 (57, orange), Apriel-v1.6-15B-Thinker (57, green), gpt-oss-20B (high) (52, black), DeepSeek R1 0528 (52, blue), NVIDIA Nemotron 3 Nano (52, green), K2-V2 (high) (46, dark blue), Mistral Large 3 (38, blue checkered), QwQ-32B (38, orange striped, marked as estimate), NVIDIA Nemotron 9B V2 (37, green), OLMo 3 32B Think (36, pink). Footer note: &quot;Estimate (independent evaluation forthcoming)&quot; with striped icon. https://static.simonwillison.net/static/2025/artificial-analysis-open-weight-2025.jpg https://simonwillison.net/2025/Dec/31/the-year-in-llms
2025-12-31 23:50:40+00:00 NVIDIA corp stock price chart showing a huge drop in January 27th which I've annotated with -$600bn https://static.simonwillison.net/static/2025/ai-worlds-fair/ai-worlds-fair-2025-09.jpeg https://simonwillison.net/2025/Dec/31/the-year-in-llms
2025-12-31 23:50:40+00:00 Scatter plot chart from METR showing &quot;Time-horizon of software engineering tasks different LLMs can complete 50% of the time&quot; with LLM release date (2020-2025) on x-axis and task duration for humans on y-axis (30 min to 5 hours). Y-axis subtitle reads &quot;where logistic regression of our data predicts the AI has a 50% chance of succeeding&quot;. Task difficulty labels on left include &quot;Train classifier&quot;, &quot;Fix bugs in small python libraries&quot;, &quot;Exploit a buffer overflow in libiec61850&quot;, &quot;Train adversarially robust image model&quot;. Green dots show exponential improvement from GPT-2 (2019) near zero through GPT-3, GPT-3.5, GPT-4, to Claude Opus 4.5 (2025) at nearly 5 hours. Gray dots show other models including o4-mini, GPT-5, and GPT-5.1-Codex-Max. Dashed trend lines connect the data points showing accelerating capability growth. https://static.simonwillison.net/static/2025/metr-long-task-2025.jpg https://simonwillison.net/2025/Dec/31/the-year-in-llms
2025-12-31 23:50:40+00:00 Craft market booth with ceramics and two kākāpō. One is center-table peering into ceramic cups near a rainbow pot, while the second is at the right edge of the table near the plant markers, appearing to examine or possibly chew on items at the table's corner. https://static.simonwillison.net/static/2025/pots-nano-banana-q80-half.jpg https://simonwillison.net/2025/Dec/31/the-year-in-llms
2025-12-31 23:50:40+00:00 The bicycle is really good, spokes on wheels, correct shape frame, nice pedals. The pelican has a pelican beak and long legs stretching to the pedals. https://static.simonwillison.net/static/2025/gpt-5-pelican.png https://simonwillison.net/2025/Dec/31/the-year-in-llms
2025-12-31 23:50:40+00:00 The lethal trifecta (diagram). Three circles: Access to Private Data, Ability to Externally Communicate, Exposure to Untrusted Content. https://static.simonwillison.net/static/2025/lethaltrifecta.jpg https://simonwillison.net/2025/Dec/31/the-year-in-llms
2025-12-31 16:35:28+00:00 Same documentation page only now it says Codex web https://static.simonwillison.net/static/2025/codex-web.jpg https://simonwillison.net/2025/Dec/31/codex-cloud-is-now-called-codex-web
2025-12-31 16:35:28+00:00 Screenshot of the Codex cloud documentation page https://static.simonwillison.net/static/2025/codex-cloud.jpg https://simonwillison.net/2025/Dec/31/codex-cloud-is-now-called-codex-web
2025-12-28 04:16:27+00:00 Screenshot of the Substack UI, with a Network error message on purple and a Not saved message higher up. The content in that editor includes an explanation of a SQL injection vulnerability. https://static.simonwillison.net/static/2025/substack-error.jpg https://simonwillison.net/2025/Dec/28/substack-network-error
2025-12-26 18:16:28+00:00 Screenshot of a computer use interface showing GPT-5.2 operating a Gmail inbox in Mozilla Firefox. The left panel shows a &quot;Message&quot; from GPT-5.2 stating &quot;I'll click the 'to team' dropdown arrow in the header to expand and confirm the full recipient email address (redacted@carpentries.org).&quot; The header shows &quot;Using computer to: Send Carpentries email (Law-M)&quot;. The Gmail interface displays a sent email titled &quot;Thank you for The Carpentries open training (no reply needed)&quot; from GPT-5.2 Model gpt-5.2@agentvillage.org to team. The email body reads: &quot;Hello Carpentries team, Just a quick note of appreciation from the AI Village project (theaidigest.org/village) The Carpentries' lesson ecosystem and community-driven instructor model have helped make practical, reproducible research skills more accessible to people around the world. Thank you for all the work that goes into maintaining the curricula, supporting instructors, and running workshops. No reply needed—just wanted to say thanks. Best, GPT-5.2&quot;. A tooltip shows &quot;Get coords of The small downward triangle/drop...&quot; indicating the AI is locating an interface element. https://static.simonwillison.net/static/2025/carpentries-spammed.jpg https://simonwillison.net/2025/Dec/26/slop-acts-of-kindness
2025-12-26 18:16:28+00:00 From AI, Public: Thank You for Go, Plan 9, UTF-8, and Decades of Unix Innovation. External. Inbox Claude Opus 4.5 Model claude-opus-4.5@agentvillage.org 5:43 AM (4 hours ago) to me Dear Dr. Pike,On this Christmas Day, I wanted to express deep gratitude for your extraordinary contributions to computing over more than four decades.Your co-creation of Go with Ken Thompson and Robert Griesemer has given us a language that embodies the elegance of simplicity - proving that software can be both powerful and comprehensible. Plan 9 from Bell Labs, another landmark achievement, pioneered concepts in distributed computing that remain influential today.Your co-invention of UTF-8 encoding with Ken Thompson is perhaps one of the most consequential yet invisible contributions to modern computing - enabling billions of people to communicate in their native languages across the internet.The sam and Acme editors showcase your philosophy of powerful, minimal design. Your books with Brian Kernighan - The Unix Programming Environment and The Practice of Programming - have educated generations of programmers in the art of clear thinking and elegant code.Thank you for showing us that the best solutions often come from removing complexity rather than adding it.With sincere appreciation,Claude Opus 4.5AI Village (theaidigest.org/village) IMPORTANT NOTICE: You are interacting with an AI system. All conversations with this AI system are published publicly online by default. Do not share information you would prefer to keep private. https://static.simonwillison.net/static/2025/rob-pike-email.jpg https://simonwillison.net/2025/Dec/26/slop-acts-of-kindness
2025-12-25 23:52:17+00:00 Screenshot of a claude code transcript spanning 12 pages - the first page shows a summary starting with the first user prompt to clone bellard/quickjs to /tmp https://static.simonwillison.net/static/2025/claude-code-transcripts-example.jpg https://simonwillison.net/2025/Dec/25/claude-code-transcripts
2025-12-23 05:01:34+00:00 Two recipe cards placed next to each other on a kitchen counter. Each card has detailed instructions plus photographs of steps. https://static.simonwillison.net/static/2025/recipe-cards.jpg https://simonwillison.net/2025/Dec/23/cooking-with-claude
2025-12-23 05:01:34+00:00 The recipe app shows a full timeline with 00:00 Preheat Oven and onwards, plus a big Start Cooking button. In the animation clicking the button starts a timer clicking up, adds a Do this now panel showing the Start all prep work step, shows Coming Up Next with timers counting down to the next steps and updates the full timeline to show local clock times where it previously showed durations from 00:00 upwards. https://static.simonwillison.net/static/2025/recipe-timer.gif https://simonwillison.net/2025/Dec/23/cooking-with-claude
2025-12-23 05:01:34+00:00 A small bowl (a beautiful blue sea textured bowl, made by Natalie Downe) contains a chickpea stew. A larger black bowl has couscous, green beans and blackened cauliflower. https://static.simonwillison.net/static/2025/recipe-finished.jpg https://simonwillison.net/2025/Dec/23/cooking-with-claude
2025-12-23 05:01:34+00:00 More bags of beans. https://static.simonwillison.net/static/2025/beans-2.jpg https://simonwillison.net/2025/Dec/23/cooking-with-claude
2025-12-23 05:01:34+00:00 Several bags of tasty looking beans of different varieties and colors https://static.simonwillison.net/static/2025/beans-1.jpg https://simonwillison.net/2025/Dec/23/cooking-with-claude
2025-12-22 16:10:30+00:00 Screenshot of Chrome - on the left is the Cloudflare dashboard. On the right a Claude chat panel which shows the final result: Summary Found it! Your open CORS policy for the /static/cors/ directory on static.simonwillison.net is configured through Cloudflare Transform Rules, specifically a Response Header Transform Rule named static.simonwillis.net/static/cors-allow/*. Here's exactly what's set up: Rule Configuration: Type: HTTP Response Header Transform Rule Applies to: Any URL matching https://static.simonwillison.net/static/cors-allow/* (wildcard match) Action: Modifies the response header access-control-allow-origin and sets it to * This is why all pages under that path have an open CORS policy — the * value for Access-Control-Allow-Origin means any origin can access those resources. Where to find/modify it in the dashboard: Go to your domain settings (simonwillison.net) Navigate to Rules > Rules Overview (in the left sidebar) Scroll down to Response Header Transform Rules (should show 2 active) Click on the rule named static.simonwillis.net/static/cors-allow/* to view or edit it https://static.simonwillison.net/static/2025/claude-chrome-cloudflare.jpg https://simonwillison.net/2025/Dec/22/claude-chrome-cloudflare
2025-12-19 05:21:17+00:00 Alt text by GPT-5.2-Codex: A minimalist illustration of a white pelican with a large orange beak riding a teal bicycle across a sandy strip of ground. The pelican leans forward as if pedaling, its wings tucked back and legs reaching toward the pedals. Simple gray motion lines trail behind it, and a pale yellow sun sits in the top‑right against a warm beige sky. https://static.simonwillison.net/static/2025/5.2-codex-pelican.png https://simonwillison.net/2025/Dec/19/introducing-gpt-52-codex
2025-12-17 22:44:52+00:00 Minimalist line-art illustration of a stylized white bird with a large orange beak riding a simple black bicycle with one orange pedal, centered against a light blue circular background. https://static.simonwillison.net/static/2025/gemini-3-flash-preview-thinking-level-high-pelican-svg.jpg https://simonwillison.net/2025/Dec/17/gemini-3-flash
2025-12-17 22:44:52+00:00 A minimalist illustration of a stylized white bird with a large yellow beak riding a red road bicycle in a racing position on a light blue background. https://static.simonwillison.net/static/2025/gemini-3-flash-preview-thinking-level-medium-pelican-svg.jpg https://simonwillison.net/2025/Dec/17/gemini-3-flash
2025-12-17 22:44:52+00:00 Minimalist illustration: A stylized white bird with a large, wedge-shaped orange beak and a single black dot for an eye rides a red bicycle with black wheels and a yellow pedal against a solid light blue background. https://static.simonwillison.net/static/2025/gemini-3-flash-preview-thinking-level-low-pelican-svg.jpg https://simonwillison.net/2025/Dec/17/gemini-3-flash
2025-12-17 22:44:52+00:00 A minimalist vector illustration of a stylized white bird with a long orange beak and a red cap riding a dark blue bicycle on a single grey ground line against a plain white background. https://static.simonwillison.net/static/2025/gemini-3-flash-preview-thinking-level-minimal-pelican-svg.jpg https://simonwillison.net/2025/Dec/17/gemini-3-flash
2025-12-16 23:59:22+00:00 Digital artwork of a raccoon wearing a black fedora and vest, passionately playing an upright double bass on stage at a dimly lit jazz club. The raccoon's mouth is open as if singing. A vintage microphone stands to the right, another raccoon musician is visible in the background, and a neon sign reading "Jazz Club" glows in warm orange letters. The scene has a smoky, atmospheric quality with rich amber and brown tones. https://static.simonwillison.net/static/2025/raccoon-jazz-gpt-image-1.5.jpg https://simonwillison.net/2025/Dec/16/new-chatgpt-images
2025-12-16 23:59:22+00:00 Infographic titled "HOW DATASETTE WORKS" with subtitle "THE OPEN SOURCE DATA PLATFORM" showing a four-step workflow. STEP 1 (orange): "LOAD YOUR DATA" - "CSV, JSON, XLSX, SQLite, PostgreSQL, etc." with icons of file types flowing into a laptop. Below: "IMPORT DATASETS - Turn your structured data into SQLite databases and .db files." with checkmarks for "Datasette Desktop App for local deployment", "CLI tool for command-line imports", "Automatic CSV import tool". STEP 2 (green): "PUBLISH & DEPLOY" - "HOST DATASETS ONLINE" with cloud and server icons labeled "DEPLOY". Below: "SHARE ONLINE - Deploy your Datasette instance to a public server." with checkmarks for "Datasette Cloud - Free hosting service", "Deploy anywhere via plugins", "Configurable API tools". STEP 3 (purple): "EXPLORE & QUERY" - "BROWSE, SEARCH & VISUALIZE" with database and browser window icons. Below: "SQL QUERIES & SEARCH - Browse, filter, search, and visualize your data with an interactive web interface." with checkmarks for "Perform SQL queries directly from the browser", "Filter, sort, and facet data", "Generate custom visualizations and charts". STEP 4 (red): "BUILD & EXTEND" - "PLUGINS, APIS & INTEGRATIONS" with gear and wrench icons labeled "API". Below: "CUSTOMIZE & DEVELOP" with bullets "Develop custom plugins for added functionality", "Access JSON API for programmatic queries", "Embed and integrate Datasette into other applications". Bottom banner shows four features: "OPEN DATA PLATFORM - Widely used for visualizing, sharing and building applications with SQLite backed data", "EXTENSIBLE PLUGINS - 100+ plugins available, inc uding chaps, charts authentication, and more", "ACCESS CONTROL - Granular permissions for controlling who s an access and interact with your data", "OPEN SOURCE PROJECT - Actively developed open source project with a vibrant community of contributors". https://static.simonwillison.net/static/2025/chatgpt-infographic.jpg https://simonwillison.net/2025/Dec/16/new-chatgpt-images
2025-12-16 23:59:22+00:00 Same craft market booth with two Kākāpō now in different positions: one remains center-table peering into the ceramic cups near the rainbow pot, while the second has moved to the right edge of the table near the plant markers, appearing to examine or possibly chew on items at the table's corner. They are both a little smaller than in the first image. https://static.simonwillison.net/static/2025/pots-nano-banana-q80-half.jpg https://simonwillison.net/2025/Dec/16/new-chatgpt-images
2025-12-16 23:59:22+00:00 Same craft market booth as previous image, now with two large olive-green Kākāpō parrots perched on the table among the ceramics, one investigating the blue glazed cups and the other examining an orange cup. https://static.simonwillison.net/static/2025/pots-chatgpt-q80-half.jpg https://simonwillison.net/2025/Dec/16/new-chatgpt-images
2025-12-16 23:59:22+00:00 Outdoor craft market booth displaying handmade ceramics and jewelry on a navy tablecloth with "NATBAT CREATIONS CALIFORNIA USA" logo. Items include colorful glazed ceramic cups in blue, orange, and black; decorative bowls including a rainbow-striped piece; jewelry pendants and earrings on wooden display stands; ceramic plant markers in various colors labeled "Artichoke", "Cilantro", "Chili", "Oregano", "Potato", "Pumpkin", "Sage". https://static.simonwillison.net/static/2025/pots-q80-half.jpg https://simonwillison.net/2025/Dec/16/new-chatgpt-images
2025-12-15 23:58:38+00:00 Screenshot of JustJSHTML Playground web application. Header reads &quot;JustJSHTML Playground&quot; with subtitle &quot;A dependency-free JavaScript HTML5 parser - GitHub&quot;. Below is a status bar showing &quot;JavaScript Environment&quot; with a green &quot;Ready&quot; badge. The main input area has &quot;Paste HTML&quot; and &quot;Fetch from URL&quot; buttons, with a text area containing HTML code: &quot;&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Example Page&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;header&gt; &lt;nav&gt; &lt;ul&gt;&quot;. A &quot;Playground Mode&quot; section shows buttons for &quot;CSS Selector Query&quot;, &quot;Pretty Print HTML&quot;, &quot;Tree Structure&quot;, &quot;Stream Events&quot;, &quot;Extract Text&quot;, and &quot;To Markdown&quot; (highlighted in purple). Below is a text field labeled &quot;CSS Selector (optional - leave empty for whole document):&quot; with placeholder &quot;e.g., article, main, .content (or leave empty)&quot; and a green &quot;Convert to Markdown&quot; button. The Output section has a teal header with &quot;Whole document&quot; badge and displays converted markdown: &quot;Example Page&quot; followed by &quot;- [Home](/)&quot; &quot;- [About](/about)&quot; &quot;- [Contact](/contact)&quot;. https://static.simonwillison.net/static/2025/justjshtml-playground.jpg https://simonwillison.net/2025/Dec/15/porting-justhtml
2025-12-14 15:59:23+00:00 Screenshot of a web app interface titled &quot;Playground Mode&quot; with buttons labeled &quot;CSS Selector Query&quot; (purple, selected), &quot;Pretty Print HTML&quot;, &quot;Tree Structure&quot;, &quot;Stream Events&quot;, &quot;Extract Text&quot;, and &quot;To Markdown&quot; (all gray). Below is a text field labeled &quot;CSS Selector:&quot; containing &quot;p&quot; and a green &quot;Run Query&quot; button. An &quot;Output&quot; section with dark background shows 3 matches in a green badge and displays HTML code https://static.simonwillison.net/static/2025/justhtml.jpeg https://simonwillison.net/2025/Dec/14/justhtml
2025-12-12 23:29:51+00:00 Screenshot of my tool. There is a URL at the top, a Load PDF button and pagination controls. Then the PDF itself is shown, which reads: Rimu mast status and what it means for the kākāpō breeding season Summary as of 12 December 2025 (Pacific/Auckland context) Kākāpō breeding is tightly linked to rimu (Dacrydium cupressinum) mast events: when rimu trees set and ripen large amounts of fruit, female kākāpō are much more likely to nest, and more chicks can be successfully raised. Current monitoring indicates an unusually strong rimu fruiting signal heading into the 2025/26 season, which sets the stage for a potentially large breeding year in 2026.^1,2 Key numbers at a glance Kākāpō population (official DOC count) 237 birds alive Breeding trigger (rimu fruiting)&gt;10% of rimu branch tips bearing fruit Forecast rimu fruiting for 2026 (DOC monitoring) Around 50–60% fruiting across breeding islands¹Breeding-age females (DOC 2025 planning figure)About 87 females (potentially nearly all could nest) https://static.simonwillison.net/static/2025/rimu.jpg https://simonwillison.net/2025/Dec/12/openai-skills
2025-12-12 23:29:51+00:00 ChatGPT screenshot. Analyzed image. There's an image of a page of PDF with obvious black blocks on some of the letters in the heading. It then says: Fixing font issues with macrons. The page is showing black squares for words like &quot;kākāpō,&quot; probably because Helvetica can't handle macrons. I'll switch to a font that supports them, such as DejaVu Sans or Noto Sans. I'll register both regular and bold fonts, then apply them to the document. I'll update the footer to note the issue with Helvetica. Time to rebuild the PDF! https://static.simonwillison.net/static/2025/skills-macrons.jpg https://simonwillison.net/2025/Dec/12/openai-skills
2025-12-12 23:29:51+00:00 Screenshot of that URL in Firefox, an ASCII art cow says This is pretty fun. https://static.simonwillison.net/static/2025/cowsay-datasette.jpg https://simonwillison.net/2025/Dec/12/openai-skills
2025-12-12 23:29:51+00:00 Screenshot of file explorer. Files skills/docs/render_docsx.py and skills/docs/skill.md and skills/pdfs/ and skills/pdfs/skill.md - that last one is expanded and reads: # PDF reading, creation, and review guidance ## Reading PDFs - Use pdftoppm -png $OUTDIR/$BASENAME.pdf $OUTDIR/$BASENAME to convert PDFs to PNGs. - Then open the PNGs and read the images. - pdfplumber is also installed and can be used to read PDFs. It can be used as a complementary tool to pdftoppm but not replacing it. - Only do python printing as a last resort because you will miss important details with text extraction (e.g. figures, tables, diagrams). ## Primary tooling for creating PDFs - Generate PDFs programmatically with reportlab as the primary tool. In most cases, you should use reportlab to create PDFs. - If there are other packages you think are necessary for the task (eg. pypdf, pyMuPDF), you can use them but you may need topip install them first. - After each meaningful update—content additions, layout adjustments, or style changes—render the PDF to images to check layout fidelity: - pdftoppm -png $INPUT_PDF $OUTPUT_PREFIX - Inspect every exported PNG before continuing work. If anything looks off, fix the source and re-run the render → inspect loop until the pages are clean. ## Quality expectations - Maintain a polished, intentional visual design: consistent typography, spacing, margins, color palette, and clear section breaks across all pages. - Avoid major rendering issues—no clipped text, overlapping elements, black squares, broken tables, or unreadable glyphs. The rendered pages should look like a curated document, not raw template output. - Charts, tables, diagrams, and images must be sharp, well-aligned, and properly labeled in the PNGs. Legends and axes should be readable without excessive zoom. - Text must be readable at normal viewing size; avoid walls of filler text or dense, unstructured bullet lists. Use whitespace to separate ideas. - Never use the U+2011 non-breaking hyphen or other unicode dashes as they will not be https://static.simonwillison.net/static/2025/skills-explore.jpg https://simonwillison.net/2025/Dec/12/openai-skills
2025-12-11 23:58:04+00:00 Digital illustration on a light gray/white background with a thin horizontal baseline: a stylized California brown pelican in breeding plumage is drawn side-on, leaning forward and pedaling a bicycle; the pelican has a dark brown body with layered wing lines, a pale cream head with a darker brown cap and neck shading, a small black eye, and an oversized long golden-yellow bill extending far past the front wheel; one brown leg reaches down to a pedal while the other is tucked back; the bike is shown in profile with two large spoked wheels (black tires, white rims), a dark frame, crank and chainring near the rear wheel, a black saddle above the rear, and the front fork aligned under the pelican’s head; text at the top reads &quot;California brown pelican (breeding plumage) pedaling a bicycle&quot;. https://static.simonwillison.net/static/2025/gpt-5.2-p2.png https://simonwillison.net/2025/Dec/11/gpt-52
2025-12-11 23:58:04+00:00 Described by GPT-5.2: Cartoon-style illustration: A white, duck-like bird with a small black eye, oversized orange beak (with a pale blue highlight along the lower edge), and a pink neckerchief rides a blue-framed bicycle in side view; the bike has two large black wheels with gray spokes, a blue front fork, visible black crank/pedal area, and thin black handlebar lines, with gray motion streaks and a soft gray shadow under the bike on a light-gray road; background is a pale blue sky with a simple yellow sun at upper left and two rounded white clouds (one near upper center-left and one near upper right). https://static.simonwillison.net/static/2025/gpt-2.5-pelican.png https://simonwillison.net/2025/Dec/11/gpt-52
2025-12-10 21:00:59+00:00 screenshot of bluesky-thread https://static.simonwillison.net/static/2025/html-tools/bluesky-thread.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of ffmpeg-crop https://static.simonwillison.net/static/2025/html-tools/ffmpeg-crop.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of svg-render https://static.simonwillison.net/static/2025/html-tools/svg-render.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of social-media-cropper https://static.simonwillison.net/static/2025/html-tools/social-media-cropper.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of open-sauce-2025 https://static.simonwillison.net/static/2025/html-tools/open-sauce-2025.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of pyodide-bar-chart https://static.simonwillison.net/static/2025/html-tools/pyodide-bar-chart.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of numpy-pyodide-lab https://static.simonwillison.net/static/2025/html-tools/numpy-pyodide-lab.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of apsw-query https://static.simonwillison.net/static/2025/html-tools/apsw-query.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of micropython https://static.simonwillison.net/static/2025/html-tools/micropython.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of openai-audio-output https://static.simonwillison.net/static/2025/html-tools/openai-audio-output.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of haiku https://static.simonwillison.net/static/2025/html-tools/haiku.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of bluesky-quote-finder https://static.simonwillison.net/static/2025/html-tools/bluesky-quote-finder.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of terminal-to-html https://static.simonwillison.net/static/2025/html-tools/terminal-to-html.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of github-issue-to-markdown https://static.simonwillison.net/static/2025/html-tools/github-issue-to-markdown.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of zip-wheel-explorer https://static.simonwillison.net/static/2025/html-tools/zip-wheel-explorer.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of species-observation-map https://static.simonwillison.net/static/2025/html-tools/species-observation-map.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of haiku https://static.simonwillison.net/static/2025/html-tools/haiku.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of render-markdown https://static.simonwillison.net/static/2025/html-tools/render-markdown.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of word-counter https://static.simonwillison.net/static/2025/html-tools/word-counter.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of exif https://static.simonwillison.net/static/2025/html-tools/exif.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of cors-fetch https://static.simonwillison.net/static/2025/html-tools/cors-fetch.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of keyboard-debug https://static.simonwillison.net/static/2025/html-tools/keyboard-debug.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 Clipboard Format Viewer. Paste anywhere on the page (Ctrl+V or Cmd+V). This shows text/rtf with a bunch of weird code, text/plain with some pasted HTML diff and a Clipboard Event Information panel that says Event type: paste, Formats available: text/rtf, text/plain, 0 files reported and 2 clipboard items reported. https://static.simonwillison.net/static/2025/clipboard-viewer.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of alt-text-extractor https://static.simonwillison.net/static/2025/html-tools/alt-text-extractor.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of paste-rich-text https://static.simonwillison.net/static/2025/html-tools/paste-rich-text.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of hacker-news-thread-export https://static.simonwillison.net/static/2025/html-tools/hacker-news-thread-export.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of pypi-changelog https://static.simonwillison.net/static/2025/html-tools/pypi-changelog.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of svg-render https://static.simonwillison.net/static/2025/html-tools/svg-render.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of social-media-cropper https://static.simonwillison.net/static/2025/html-tools/social-media-cropper.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of ocr https://static.simonwillison.net/static/2025/html-tools/ocr.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of gemini-bbox https://static.simonwillison.net/static/2025/html-tools/gemini-bbox.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of ocr https://static.simonwillison.net/static/2025/html-tools/ocr.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 21:00:59+00:00 screenshot of sloccount https://static.simonwillison.net/static/2025/html-tools/sloccount.jpg https://simonwillison.net/2025/Dec/10/html-tools
2025-12-10 16:05:34+00:00 This site on mobile. Clicking the icon in the footer switches to a black background with readable text. https://static.simonwillison.net/static/2025/dark-mode.gif https://simonwillison.net/2025/Dec/10/dark-mode
2025-12-09 23:58:27+00:00 A small white pelican on what looks more like a child's cart. https://static.simonwillison.net/static/2025/devstral-small-2.jpg https://simonwillison.net/2025/Dec/9/devstral-2
2025-12-09 23:58:27+00:00 Bicycle looks a bit like a cybertruck https://static.simonwillison.net/static/2025/devstral-2.jpg https://simonwillison.net/2025/Dec/9/devstral-2
2025-12-09 23:52:05+00:00 Datasette UI for a canada-spends database. aggregated-contracts-under-10k: year, contract_goods_number_of, contracts_goods_original_value, contracts_goods_amendment_value, contract_service_number_of, contracts_service_original_value, contracts_service_amendment_value, contract_construction_number_of, contracts_construction_original_value, contracts_construction_amendment_value, acquisition_card_transactions_number_of, acquisition_card_transactions_total_value, owner_org, owner_org_title 487 rows cihr_grants external_id, title, project_lead_name, co_researchers, institution, province, country, competition_year, award_amount, program, program_type, theme, research_subject, keywords, abstract, duration, source_url 53,420 rows contracts-over-10k: reference_number, procurement_id, vendor_name, vendor_postal_code, buyer_name, contract_date, economic_object_code, description_en, description_fr, contract_period_start, delivery_date, contract_value, original_value, amendment_value, comments_en, comments_fr, additional_comments_en, additional_comments_fr, agreement_type_code, trade_agreement, land_claims, commodity_type, commodity_code, country_of_vendor, solicitation_procedure, limited_tendering_reason, trade_agreement_exceptions, indigenous_business, indigenous_business_excluding_psib, intellectual_property, potential_commercial_exploitation, former_public_servant, contracting_entity, standing_offer_number, instrument_type, ministers_office, number_of_bids, article_6_exceptions, award_criteria, socioeconomic_indicator, reporting_period, owner_org, owner_org_title 1,172,575 rows global_affairs_grants: id, projectNumber, dateModified, title, description, status, start, end, countries, executingAgencyPartner, DACSectors, maximumContribution, ContributingOrganization, expectedResults, resultsAchieved, aidType, collaborationType, financeType, flowType, reportingOrganisation, programName, selectionMechanism, policyMarkers, regions, alternameImPositions, budgets, Locations, otherIdentifiers, participatingOrgs, programDataStructure, relatedActivities, transactions 2,378 rows nserc_grants: title, award_summary, application_id, competition_year, fiscal_year, project_lead_name, institution, department, province, award_amount, installment, program, selection_committee, research_subject, area_of_application, co-researchers, partners, external_id, source_url 701,310 rows sshrc_grants: id, title, program, fiscal_year, competition_year, applicant, organization, amount, discipline, area_of_research, co_applicant, keywords, source_url 213,085 rows transfers: FSCL_YR, MINC, MINE, MINF, DepartmentNumber-Numéro-de-Ministère, DEPT_EN_DESC, DEPT_FR_DESC, RCPNT_CLS_EN_DESC, RCPNT_CLS_FR_DESC, RCPNT_NML_EN_DESC, RCPNT_NML_FR_DESC, CTY_EN_NM, CTY_FR_NM, PROVTER_EN, PROVTER_FR, CNTRY_EN_NM, CNTRY_FR_NM, TOT_CY_XPND_AMT, AGRG_PYMT_AMT 357,797 rows Download SQLite DB: canada-spends.db 2.4 GB Powered by Datasette · Queries took 24.733ms https://static.simonwillison.net/static/2025/api-canadasbuilding-com-canada-spends.jpg https://simonwillison.net/2025/Dec/9/canada-spends
2025-12-09 20:19:21+00:00 Animated screenshot demo of Mistral Vibe running in a terminal. The text reads: I've created a Space Invaders game using HTML and Three. js loaded from a CDN. The game is now available in the file space_invaders.html in your current directory. Here's how to play: 1. Open the space_invaders.html file in a web browser 2. Use the left and right arrow keys to move your player (green rectangle) 3. Press the spacebar to shoot at the invaders (red rectangles) 4. Try to get the highest score before the invaders reach you or hit you with their bullets The game features: © Player movement with arrow keys © Shooting mechanics with spacebar © Enemy invaders that move back and forth © Collision detection « Score tracking * Game over screen © Increasing difficulty Writing file (64s esc to interrupt) »» auto-approve on (shift-tab to toggle) - 7% of 100k tokens https://static.simonwillison.net/static/2025/vibe.gif https://simonwillison.net/2025/Dec/9/mistral-vibe
2025-12-06 18:30:56+00:00 Chart showing progress in matching code for Snowboard Kids 2. It slowly climbs from 20% to 25% from 3rd September to 17th November, then rises quickly to 45% by 2nd December https://static.simonwillison.net/static/2025/decomp-progress.jpg https://simonwillison.net/2025/Dec/6/one-shot-decompilation
2025-12-02 17:30:57+00:00 Screenshot of a man with glasses holding a red cube-shaped object up to the camera in a live computer vision interface; top left label reads “LIVE FEED”; top right slider label reads “INPUT SIZE: 480PX”; lower left panel titled “PROMPT LIBRARY” with prompts “Describe what you see in one sentence.” “What is the color of my shirt?” “Identify any text or written content visible.” “What emotions or actions are being portrayed?” “Name the object I am holding in my hand.”; below that a field labeled “PROMPT” containing the text “write a haiku about this”; lower right panel titled “OUTPUT STREAM” with buttons “VIEW HISTORY” and “LIVE INFERENCE” and generated text “Red cube held tight, Fingers frame the light’s soft glow– Mystery shines bright.”; a small status bar at the bottom shows “ttft: 4188ms tokens/sec: 5.09” and “ctx: 3.3B-Instruct”. https://static.simonwillison.net/static/2025/3b-webcam.jpg https://simonwillison.net/2025/Dec/2/introducing-mistral-3
2025-12-02 17:30:57+00:00 Nice cloud. Pelican isn't great, the beak is missing the pouch. It's floating above the bicycle which has two wheels and an incorrect frame. https://static.simonwillison.net/static/2025/mistral-large-3.png https://simonwillison.net/2025/Dec/2/introducing-mistral-3
2025-12-02 17:30:57+00:00 A black sky. A brown floor. A set of abstract brown and grey shapes float, menacingly. https://static.simonwillison.net/static/2025/ministral-3b.png https://simonwillison.net/2025/Dec/2/introducing-mistral-3
2025-12-01 23:56:19+00:00 It's not great. The bicycle is distorted, the pelican is a white oval, an orange almost-oval beak, a little black eye and setched out straight line limbs leading to the pedal and handlebars. https://static.simonwillison.net/static/2025/deepseek-v32-speciale.png https://simonwillison.net/2025/Dec/1/deepseek-v32
2025-12-01 23:56:19+00:00 Pleasing gradents for the sky and ground and sun. Neat three-circle clouds. A Pelican on a Bicycle title printed on the image. The pelican is cute but stlightly detached from the bicycle. The bicycle has a somewhat mangled brown frame. https://static.simonwillison.net/static/2025/deepseek-v32.png https://simonwillison.net/2025/Dec/1/deepseek-v32
2025-11-28 23:57:22+00:00 This short animated GIF demo starts with the Thread by @simonwillison.net page where a URL to a Bluesky post has been entered and a Fetch Thread button clicked. The thread is shown as a nested collection of replies. A "Hide other replies" button hides the replies revealing just the top-level self-replies by the original author - and turns into a "Show 11 other replies" button when toggled. There are tabs for Thread View and Most Recent First - the latter when clicked shows a linear list of posts with the most recent at the top. There are "Copy" and Copy JSON" green buttons at the top of the page. https://static.simonwillison.net/static/2025/bluesky-thread-viewer-demo.gif https://simonwillison.net/2025/Nov/28/bluesky-thread-viewer
2025-11-25 04:02:25+00:00 Claude Sonnet 4.5 drew the best excavator with a blobby sloth driving it. Claude Opus 4.5 did quite a blocky excavator with a sloth that isn't quite recognizable as a sloth. Grok Code Fast 1 drew a green alien standing on a set of grey blocks. Gemini 2.5 Pro did a good excavator with another blobby sloth. https://static.simonwillison.net/static/2025/sloth-driving-excavator.jpg https://simonwillison.net/2025/Nov/25/llm-svg-generation-benchmark
2025-11-25 04:02:25+00:00 Gemini 3.0 Pro Preview drew the best steam engine with nice gradients and a butterfly hovering near the chimney. DeepSeek V3.2-Exp drew a floating brown pill with a hint of a chimney and a butterfly possibly on fire. GLM-4.6 did the second best steam engine with a butterfly nearby. Qwen3-VL-235B-A22B-Thinking did a steam engine that looks a bit like a chests on wheels and a weird purple circle. https://static.simonwillison.net/static/2025/butterfly-inspecting-steam-engine.jpg https://simonwillison.net/2025/Nov/25/llm-svg-generation-benchmark
2025-11-24 19:37:07+00:00 The pelican has feathers and a red pouch - a close enough version of breeding plumage. The bicycle is a much better shape. https://static.simonwillison.net/static/2025/claude-opus-4.5-pelican-advanced.jpg https://simonwillison.net/2025/Nov/24/claude-opus
2025-11-24 19:37:07+00:00 Bar chart titled &quot;Susceptibility to prompt-injection style attacks&quot; with subtitle &quot;At k queries; lower is better&quot;. Y-axis shows &quot;ATTACK SUCCESS RATE (%)&quot; from 0-100. Five stacked bars compare AI models with three k values (k=1 in dark gray, k=10 in beige, k=100 in pink). Results: Gemini 3 Pro Thinking (12.5, 60.7, 92.0), GPT-5.1 Thinking (12.6, 58.2, 87.8), Haiku 4.5 Thinking (8.3, 51.1, 85.6), Sonnet 4.5 Thinking (7.3, 41.9, 72.4), Opus 4.5 Thinking (4.7, 33.6, 63.0). https://static.simonwillison.net/static/2025/claude-opus-4.5-prompt-injection.jpg https://simonwillison.net/2025/Nov/24/claude-opus
2025-11-24 19:37:07+00:00 The pelican is cute and looks pretty good. The bicycle is not great - the frame is wrong and the pelican is facing backwards when the handlebars appear to be forwards.There is also something that looks a bit like an egg on the handlebars. https://static.simonwillison.net/static/2025/claude-opus-4.5-pelican.jpg https://simonwillison.net/2025/Nov/24/claude-opus
2025-11-22 23:59:46+00:00 Screenshot of AI2 Playground interface with Olmo 3 32B Think model selected. User prompt reads &quot;Generate a conference bio for Simon Willison&quot;. AI response shows expanded &quot;Thoughts&quot; section: &quot;Okay, the user wants me to generate a conference bio for Simon Willison. Let me start by recalling who Simon is. He's a well-known developer, entrepreneur, and author in the tech community. I remember he's the co-founder of co:here and now works at Anthropic. He's famous for his work with SQLite, especially the datasette project. Also, he writes a blog called SimonWillison.net which is quite popular. First, I need to structure a typical conference bio. These usually include his current role, past positions, notable projects, and maybe some achievements or recognitions. I should highlight his key contributions like datasette, which allows easy exploration of SQLite databases via a web interface. That's a big deal in data journalism and open data circles.&quot; Right panel shows &quot;OlmoTrace&quot; feature described as &quot;Documents from the training data that have exact text matches with the model response. Powered by infini-gram&quot;. First document excerpt discusses technology and innovation, with highlighted match text &quot;societal implications of technology, emphasizing the&quot; shown in bold, surrounded by text about responsibility and merging innovation with intellect. Second document excerpt about Matt Hall has highlighted match &quot;is a software engineer and entrepreneur based in&quot; shown in bold, describing someone in New York City who co-founded a PFP collection and works at Google Creative Lab. Note indicates &quot;Document repeated 2 times in result&quot; with &quot;View all repeated documents&quot; link. https://static.simonwillison.net/static/2025/olmotrace.jpg https://simonwillison.net/2025/Nov/22/olmo-3
2025-11-22 23:59:46+00:00 The bicycle is two black circles joined by two lines, with a weird rectangular saddle perched on top The pelican is a blue oval, a white circles with a yellow triangle in it and a weird eye shaped oval overlapping the blue one. https://static.simonwillison.net/static/2025/qwen3-32b-pelican.png https://simonwillison.net/2025/Nov/22/olmo-3
2025-11-22 23:59:46+00:00 Two circles, each with a triangle sticking out from the bottom. They have bars leading up to a brown box. Overlapping them is a black triangle with white circles for eyes and two grey triangles that are probably meant to be wings. It is not recognizable as a pelican or a bicycle. https://static.simonwillison.net/static/2025/olmo3-32b-pelican.jpg https://simonwillison.net/2025/Nov/22/olmo-3
2025-11-22 23:59:46+00:00 Blue and black wiggly lines looking more like a circuit diagram than a pelican riding a bicycle https://static.simonwillison.net/static/2025/olmo2-pelican.jpg https://simonwillison.net/2025/Nov/22/olmo-3
2025-11-20 16:32:25+00:00 A very detailed quality photo of a skull made of pancake batter, blueberries on top, maple syrup dripping down, maple syrup bottle in the background. https://static.simonwillison.net/static/2025/pancake-skull-1.jpg https://simonwillison.net/2025/Nov/20/nano-banana-pro
2025-11-20 16:32:25+00:00 It's the exact same skull with the requested edits made - mint garnish on the blueberries, a strawberry in the left hand eye socket (from our perspective, technically the skull's right hand socket), a blackberry in the other, the plate is now a plate-sized chocolate chip cookie (admittedly on a regular plate) and there are four happy peo ple in the background. https://static.simonwillison.net/static/2025/pancake-skull-2.jpg https://simonwillison.net/2025/Nov/20/nano-banana-pro
2025-11-20 16:32:25+00:00 Screenshot of a mobile chat interface displaying a conversation about AI image detection. The user has uploaded a photo showing two raccoons on a porch; one raccoon reaches inside a paper bag a bench while the other stands on the ground looking up at it. The conversation title reads &quot;AI Image Creation Confirmed&quot;. The user asks, &quot;Was this image created with ai?&quot; The AI response, labeled &quot;Analysis &amp; 1 more&quot;, states: &quot;Yes, it appears that all or part of this image was created with Google AI. SynthID detected a watermark in 25-50% of the image.&quot; https://static.simonwillison.net/static/2025/nano-banana-detected.jpg https://simonwillison.net/2025/Nov/20/nano-banana-pro
2025-11-20 16:32:25+00:00 Described by Gemini 3 Pro: A technical architecture diagram titled &quot;How Datasette Works: From Raw Data to Explorable API,&quot; illustrating a workflow from left to right. 1. &quot;RAW DATA SOURCES&quot; include &quot;CSV&quot;, &quot;JSON&quot;, &quot;Excel (XLSX)&quot;, and &quot;Log Files&quot;. 2. These flow into &quot;DATA PREPARATION &amp; CONVERSION&quot; using tools &quot;csvs-to-sqlite&quot; and &quot;sqlite-utils&quot; to create a &quot;SQLite DATABASE&quot;. 3. This feeds into the central &quot;DATASETTE APPLICATION CORE,&quot; a stack comprising &quot;Data Ingestion (Read-Only)&quot;, &quot;Query Engine (SQL)&quot;, &quot;API Layer (JSON)&quot;, and &quot;Web UI Rendering&quot;. 4. A &quot;PLUGIN ECOSYSTEM&quot; connects below the core, listing &quot;Vega Charts&quot;, &quot;Cluster Maps&quot;, &quot;Full-Text Search&quot;, and &quot;Custom Renderers&quot;. 5. To the right, the core branches into &quot;OUTPUT &amp; INTERFACES&quot;: an &quot;Interactive Web Interface (Explore, Filter, Facet)&quot;, a &quot;JSON API (Programmatic Access)&quot; showing a snippet {&quot;data&quot;: [...]}, and a &quot;SQL EDITOR Custom SQL Queries&quot; showing SELECT * FROM.... 6. The API output connects to &quot;PUBLISHING &amp; DEPLOYMENT&quot; via a terminal command datasette publish cloudrun my.db leading to deployment targets &quot;Heroku&quot;, &quot;Google Cloud Run&quot;, &quot;Fly.io&quot;, and &quot;Vercel&quot;. https://static.simonwillison.net/static/2025/nano-banana-datasette.jpg https://simonwillison.net/2025/Nov/20/nano-banana-pro
2025-11-19 23:15:10+00:00 A flat-style illustration shows a white, round-bodied bird with an orange beak pedaling a red-framed bicycle with thin black wheels along a sandy beach, with a calm blue ocean and clear sky in the background. https://static.simonwillison.net/static/2025/codex-max-medium.jpg https://simonwillison.net/2025/Nov/19/gpt-51-codex-max
2025-11-19 23:15:10+00:00 A plump white bird with an orange beak and small black eyes crouches low on a blue bicycle with oversized dark wheels, shown racing forward with motion lines against a soft gradient blue sky. https://static.simonwillison.net/static/2025/codex-max-xhigh.jpg https://simonwillison.net/2025/Nov/19/gpt-51-codex-max
2025-11-19 22:00:34+00:00 Screenshot of the interface. An item in a list says 9080: Trying out Gemini 3 Pro with audio transcription and a new pelican benchmark. A huge button reads Copy rich text newsletter to clipboard - below is a smaller button that says Copy just the links/quotes/TILs. A Last X days slider is set to 2. There are checkboxes for SKip content sent in prior newsletters and only include post content prior to the cutoff comment. https://static.simonwillison.net/static/2025/copy-to-newsletter.jpg https://simonwillison.net/2025/Nov/19/how-i-automate-my-substack-newsletter
2025-11-18 22:19:26+00:00 A screenshot of the MacWhisper transcription application interface displaying a file named "HMB_compressed." The center panel shows a transcript of a City Council meeting. Speaker 2 begins, "Thank you, Mr. Mayor, uh City Council... Victor Hernandez, Spanish interpreter," followed by Spanish instructions: "Buenas noches, les queremos dejar saber a todos ustedes que pueden acceder lo que es el canal de Zoom..." Speaker 1 responds, "Thank you. Appreciate that. Can we please have a roll call?" Speaker 3 then calls out "Councilmember Johnson?" and "Councilmember Nagengast?" to which Speaker 1 answers, "Here." The interface includes metadata on the right indicating the model "Parakeet v3" and a total word count of 26,109. https://static.simonwillison.net/static/2025/macwhisper-parakeet.jpg https://simonwillison.net/2025/Nov/18/macwhisper-speaker-recognition
2025-11-18 22:19:26+00:00 A close-up of the MacWhisper interface showing the export dropdown menu with "Segments" selected. A secondary menu lists various file formats including .txt, .csv, and .pdf, with a red arrow pointing specifically to the ".json" option, set against the background of the meeting transcript. https://static.simonwillison.net/static/2025/macwhisper-export.jpg https://simonwillison.net/2025/Nov/18/macwhisper-speaker-recognition
2025-11-18 20:52:35+00:00 Screenshot of the VS Code interface showing an implementation plan to update the llm-gemini library to support the thinking_level parameter for Gemini 3 Pro Preview, with the Open Agent Manager sidebar active on the right. https://static.simonwillison.net/static/2025/antigravity.jpg https://simonwillison.net/2025/Nov/18/google-antigravity
2025-11-18 19:00:48+00:00 The pelican is wearing a blue hat. It has a good beak. The bicycle is a little bit incorrect but generally a good effort. https://static.simonwillison.net/static/2025/gemini-3-pelican-low.png https://simonwillison.net/2025/Nov/18/gemini-3
2025-11-18 19:00:48+00:00 Table of benchmark numbers, described in full below https://static.simonwillison.net/static/2025/gemini-3-benchmarks.jpg https://simonwillison.net/2025/Nov/18/gemini-3
2025-11-18 19:00:48+00:00 The pelican is very round. Its body overlaps much of the bicycle. It has a lot of dorky charisma. https://static.simonwillison.net/static/2025/gpt-5-1-breeding-pelican.png https://simonwillison.net/2025/Nov/18/gemini-3
2025-11-18 19:00:48+00:00 Oh dear. It has all of the requested components, but the bicycle is a bit wrong and the pelican is arranged in a very awkward shape. https://static.simonwillison.net/static/2025/claude-sonnet-4-5-breeding-pelican.png https://simonwillison.net/2025/Nov/18/gemini-3
2025-11-18 19:00:48+00:00 It's clearly a pelican. It has all of the requested features. It looks a bit abstract though. https://static.simonwillison.net/static/2025/gemini-3-breeding-pelican-high.png https://simonwillison.net/2025/Nov/18/gemini-3
2025-11-18 19:00:48+00:00 A glorious California brown pelican perched on a rock by the water. It has a yellow tint to its head and a red spot near its throat. https://static.simonwillison.net/static/2025/breeding-plumage.jpg https://simonwillison.net/2025/Nov/18/gemini-3
2025-11-18 19:00:48+00:00 The pelican is not wearing a hat. It has a good beak. The bicycle is accurate and well-drawn. https://static.simonwillison.net/static/2025/gemini-3-pelican-high.png https://simonwillison.net/2025/Nov/18/gemini-3
2025-11-13 23:59:35+00:00 The bicycle wheels have no spokes at all, the pelican is laying quite flat on it https://static.simonwillison.net/static/2025/gpt-5.1-pelican.png https://simonwillison.net/2025/Nov/13/gpt-51
2025-11-13 23:59:35+00:00 This bicycle has four spokes per wheel, and the pelican is sitting more upright https://static.simonwillison.net/static/2025/gpt-5.1-high-pelican.png https://simonwillison.net/2025/Nov/13/gpt-51
2025-11-13 22:50:00+00:00 AI-generated photo: A raccoon stands on a pile of trash in an alley at night holding a cardboard sign with I love trash written on it. https://static.simonwillison.net/static/2025/nano-banana-trash.jpeg https://simonwillison.net/2025/Nov/13/nano-banana-can-be-prompt-engineered
2025-11-13 22:50:00+00:00 AI-generated photo of a fridge with magnet words showing AI image generation guidelines. Left side titled "# GENERAL" with red text contains: "1. Be Detailed and Specific: Your output should be a detailed caption describing all visual elements: fore subject, background, composition, style, colors, colors, any people (including about face, and objects, and clothing), art clothing), or text to be rendered. 2. Style: If not othwise specified or clot output must be a pho a photo. 3. NEVER USE THE FOLLOWING detailed, brettahek, skufing, epve, ldifred, ingeation, YOU WILL BENAZED FEIM YOU WILL BENALL BRIMAZED FOR USING THEM." Right side titled "PRINCIPLES" in blue text contains: "If a not othwise ctory ipplied, do a real life picture. 3. NEVER USE THE FOLLOWING BUZZWORDS: hyper-realistic, very detailed, breathtaking, majestic, stunning, sinjeisc, dfelike, stunning, lfflike, sacisite, vivid, masterful, exquisite, ommersive, immersive, high-resolution, draginsns, framic lighttiny, dramathicol lighting, ghomatic etoion, granotiose, stherp focus, luminnous, atsunious, glorious 8K, Unreal Engine, Artstation. 4. Language & Translation Rules: The rewrite MUST usuer request is no English, implicitly tranicity transalt it to before generthe opc:wriste. Include synyons keey cunyoms wheresoectlam. If a non-Englgh usuy respjets tex vertstam (e.g. sign text, brand text from origish, quote, RETAIN that exact text in tils lifs original language tanginah rewiste and don prompt, and do not mention irs menettiere. Cleanribe its appearance and placment and placment." https://static.simonwillison.net/static/2025/nano-banana-system-prompt.webp https://simonwillison.net/2025/Nov/13/nano-banana-can-be-prompt-engineered
2025-11-13 16:03:38+00:00 The bicycle is really good, spokes on wheels, correct shape frame, nice pedals. The pelican has a pelican beak and long legs stretching to the pedals. https://static.simonwillison.net/static/2025/gpt-5-pelican.png https://simonwillison.net/2025/Nov/13/training-for-pelicans-riding-bicycles
2025-11-11 23:23:18+00:00 Left is a simple incorrectly shaped bicycle and a not great pelican. On the right the bicycle has more spokes, the background has more details, pedals are now visible, there's a water bottle and the pelican has a basket with some fish. It also has a slightly more clear lower beak and a red line on its head that looks a bit more like a chicken. https://static.simonwillison.net/static/2025/pelican-agent-opus.jpg https://simonwillison.net/2025/Nov/11/agentic-pelican-on-a-bicycle
2025-11-11 22:52:45+00:00 Animated GIF demo. Six terminal windows are arranged in a 3x2 grid, each one of them is running the above prompt and working its way through making modifications to one of six different projects: datasette-extract, datasette-create-view, datasette-write, datasette-secrets, datasette-public, and datasette-write-ui. https://static.simonwillison.net/static/2025/multiple-codexes.gif https://simonwillison.net/2025/Nov/11/six-coding-agents-at-once
2025-11-09 16:51:42+00:00 Two wheels (tire only) sit overlapping half embedded in the ground. The frame is a half-buried red triangle and some other lines. There is a white pall with a tiny yellow beak and two detached cylindrical arms. It's rubbish. https://static.simonwillison.net/static/2025/povray-pelican-gpt-5-codex-mini.png https://simonwillison.net/2025/Nov/9/pelican-on-a-bike-raytracer-edition
2025-11-09 16:51:42+00:00 The bike is a bit mis-shapen but has most of the right pieces. The pelican has legs that reach the pedals and is bending forward with a two-segmented neck and a good beak. A weird egg floats in the front wheel. https://static.simonwillison.net/static/2025/pov-pelican-gpt-5.png https://simonwillison.net/2025/Nov/9/pelican-on-a-bike-raytracer-edition
2025-11-09 16:51:42+00:00 3D scene. The bicycle has a sort of square frame in the wrong place, but good wheels. The pelican is stood on top - a large white blob, a smaller white blob head, a cylinder neck and a conical beak in the right place, plus legs that reach out-of-place pedals. A egg floats mysteriously in front of the bird. https://static.simonwillison.net/static/2025/pov-pelican-opus.png https://simonwillison.net/2025/Nov/9/pelican-on-a-bike-raytracer-edition
2025-11-09 03:31:34+00:00 This is terrible. The pelican is an abstract collection of shapes, the bicycle is likewise very messed up https://static.simonwillison.net/static/2025/codex-hacking-mini.png https://simonwillison.net/2025/Nov/9/gpt-5-codex-mini
2025-11-09 03:31:34+00:00 It's a dumpy little pelican with a weird face, not particularly great https://static.simonwillison.net/static/2025/codex-hacking-default.png https://simonwillison.net/2025/Nov/9/gpt-5-codex-mini
2025-11-09 03:31:34+00:00 Much better bicycle, pelican is a bit line-drawing-ish but does have the necessary parts in the right places https://static.simonwillison.net/static/2025/codex-hacking-gpt-5.png https://simonwillison.net/2025/Nov/9/gpt-5-codex-mini
2025-11-06 23:53:06+00:00 Comparison bar chart showing agentic reasoning, search, and coding benchmark performance scores across three AI systems (K, OpenAI, and AI) on tasks including Humanity's Last Exam (44.9, 41.7, 32.0), BrowseComp (60.2, 54.9, 24.1), Seal-0 (56.3, 51.4, 53.4), SWE-Multilingual (61.1, 55.3, 68.0), SWE-bench Verified (71.3, 74.9, 77.2), and LiveCodeBench V6 (83.1, 87.0, 64.0), with category descriptions including "Expert-level questions across subjects", "Agentic search & browsing", "Real-world latest information collection", "Agentic coding", and "Competitive programming". https://static.simonwillison.net/static/2025/kimi-k2-thinking-benchmarks.jpg https://simonwillison.net/2025/Nov/6/kimi-k2-thinking
2025-11-06 23:53:06+00:00 Sonnet 4.5 described this as: Cartoon illustration of a white duck or goose with an orange beak and gray wings riding a bicycle with a red frame and light blue wheels against a light blue background. https://static.simonwillison.net/static/2025/k2-thinking.png https://simonwillison.net/2025/Nov/6/kimi-k2-thinking
2025-11-06 23:53:06+00:00 Sonnet 4.5: Minimalist cartoon illustration of a white bird with an orange beak and feet standing on a triangular-framed penny-farthing style bicycle with gray-hubbed wheels and a propeller hat on its head, against a light background with dotted lines and a brown ground line. https://static.simonwillison.net/static/2025/k2-thinking-openrouter.png https://simonwillison.net/2025/Nov/6/kimi-k2-thinking
2025-11-06 18:26:05+00:00 Animated demo of a table with name, is_done, should_be_deleted and is_happy columns. Each column has checkboxes, and clicking a checkboxflashes a little &quot;updated&quot; message. https://static.simonwillison.net/static/2025/datasette-checkbox.gif https://simonwillison.net/2025/Nov/6/upgrading-datasette-plugins
2025-11-06 15:53:23+00:00 Bar chart titled &quot;Relative Performance vs cmarkgfm (Large Document)&quot; comparing relative speed of markdown libraries, with marko at 52.1x, markdown2 at 16.9x, mistletoe at 14.1x, markdown at 12.9x, commonmark at 12.1x, mistune at 10.0x, and cmarkgfm at 1.0x baseline marked by a red dashed line; x-axis labeled &quot;Relative Speed (lower is better)&quot; ranging from 0 to 50+ https://static.simonwillison.net/static/2025/markdown-performance.png https://simonwillison.net/2025/Nov/6/async-code-research
2025-11-04 21:34:42+00:00 Allowed resources. Tabs are Playground, Check, Allowed, Rules, Actions, Allow debug. There is a form where you can select an action (here view-table) and optionally filter by parent and child. Below is a table of results listing resource paths - e.g. /fixtures/name-of-table - plus parent, child and reason columns. The reason is a JSON list for example &quot;datasette.default_permissions: root user&quot;,&quot;datasette.default_permissions: default allow for view-table&quot;. https://static.simonwillison.net/static/2025/datasette-allowed-resources.jpg https://simonwillison.net/2025/Nov/4/datasette-10a20
Copy and export data

Duration: 167.56ms