Sign up

Simon Willison's Weblog Supports Webmention
Text

Google AI Edge Gallery

Google AI Edge Gallery Terrible name, really great app: this is Google's official app for running their Gemma 4 models (the E2B and E4B sizes, plus some members of the Gemma 3 family) directly on your iPhone. It works really well. The E2B model is a 2.54GB download and is bo...

Simon Willison's Weblog Supports Webmention
Text

datasette-ports 0.2

Release: datasette-ports 0.2

  • No longer requires Datasette - running uvx datasette-ports now works as well.
  • Installing it as a Datasette plugin continues to provide the datasette ports command.

Tags: datasette

Simon Willison's Weblog Supports Webmention
Text

scan-for-secrets 0.3

Release: scan-for-secrets 0.3

  • New -r/--redact option which shows the list of matches, asks for confirmation and then replaces every match with REDACTED, taking escaping rules into account.
  • New Python function redact_file(file_path: str | Path, secrets: list[str], replacement: str = "REDACTED") -> int.

Tags: projects

Simon Willison's Weblog Supports Webmention
Text

Cleanup Claude Code Paste

Tool: Cleanup Claude Code Paste

Super-niche tool this. I sometimes copy prompts out of the Claude Code terminal app and they come out with a bunch of weird additional whitespace. This tool cleans that up.

Screenshot of a web tool titled "Cleanup Claude Code Paste" with the subtitle "Paste terminal output to remove the ❯ prompt, fix wrapped-line whitespace, and join lines into clean text." An input textarea contains pasted terminal output starting with "❯ Add a -r/--redact option which asks for user approval (after telling it how many replacements will happen and in which files and which lines – standard output basically) and then rewrites the files in that folder to replace all matched secrets with REDACTED. Run tests with 'uv run pytest' and use red/green TDD". Below is a "Cleaned output:" section showing the same text with the ❯ prompt removed and whitespace cleaned up. A blue "Copy to clipboard" button appears at the bottom.

Tags: tools, claude-code

Simon Willison's Weblog Supports Webmention
Text

datasette-ports 0.1

Release: datasette-ports 0.1

Another example of README-driven development, this time solving a problem that might be unique to me.

I often find myself running a bunch of different Datasette instances with different databases and different in-development plugins, spreads across dozens of different terminal windows - enough that I frequently lose them!

Now I can run this:

datasette install datasette-ports
datasette ports

And get a list of every running instance that looks something like this:

http://127.0.0.1:8333/ - v1.0a26
  Databases: data
  Plugins: datasette-enrichments, datasette-enrichments-llm, datasette-llm, datasette-secrets
http://127.0.0.1:8001/ - v1.0a26
  Databases: creatures
  Plugins: datasette-extract, datasette-llm, datasette-secrets
http://127.0.0.1:8900/ - v0.65.2
  Databases: logs

Tags: datasette

Simon Willison's Weblog Supports Webmention
Text

Eight years of wanting, three months of building with AI

Eight years of wanting, three months of building with AI Lalit Maganti provides one of my favorite pieces of long-form writing on agentic engineering I've seen in ages. They spent eight years thinking about and then three months building syntaqlite, which they describe as "h...

The Atlas Obscura Podcast Updates instantly via WebSub
Audio • SiriusXM Podcasts & Atlas Obscura

AO Mailbag: Best Movie to Watch on an Airplane?

Co-host Kelly McEvers and producers Johanna and Jerome answer questions about whether you should experience certain places with other people, the best movies to watch on an airplane, and the delicate etiquette of traveling to places where you know people.

If you have a question for our next mailbag episode, give us a call at 315-992-7902 and leave a message. You can also record a voice memo and email it to us at Hello@AtlasObscura.com, or simply email your question.


Hosted by Simplecast, an AdsWizz company. See pcm.adswizz.com for information about our collection and use of personal data for advertising.

Simon Willison's Weblog Supports Webmention
Text

Quoting Chengpeng Mou

From anonymized U.S. ChatGPT data, we are seeing:

  • ~2M weekly messages on health insurance
  • ~600K weekly messages [classified as healthcare] from people living in “hospital deserts” (30 min drive to nearest hospital)
  • 7 out of 10 msgs happen outside clinic hours

— Chengpeng Mou, Head of Business Finance, OpenAI

Tags: ai-ethics, generative-ai, openai, chatgpt, ai, llms

Rick Beato Updates instantly via WebSub
Video

Why This 8-Note Phrase Is Pure Musical Genius

In today's livestream I talk about a movie theme that is pure musical genius.

Simon Willison's Weblog Supports Webmention
Text

Syntaqlite Playground

Tool: Syntaqlite Playground

Lalit Maganti's syntaqlite is currently being discussed on Hacker News thanks to Eight years of wanting, three months of building with AI, a deep dive into exactly how it was built.

This inspired me to revisit a research project I ran when Lalit first released it a couple of weeks ago, where I tried it out and then compiled it to a WebAssembly wheel so it could run in Pyodide in a browser (the library itself uses C and Rust).

This new playground loads up the Python library and provides a UI for trying out its different features: formating, parsing into an AST, validating, and tokenizing SQLite SQL queries.

Screenshot of a dark-themed SQL validation playground called SyntaqLite. The "Validate" tab is selected from options including Format, Parse, Validate, and Tokenize. The SQL input contains "SELECT id, name FROM usr WHERE active = 1" with a schema defining "users" and "posts" tables. Example buttons for "Table typo", "Column typo", and "Valid query" are shown above a red "Validate SQL" button. The Diagnostics panel shows an error for unknown table 'usr' with the suggestion "did you mean 'users'?", and the JSON panel displays the corresponding error object with severity, message, and offset fields.

Tags: sql, ai-assisted-programming, sqlite, tools, agentic-engineering

Daniel Pietzsch Verified Updates instantly via WebSub Supports Webmention Valid
Video

🎥 Brutal Unrest - Flüssig und Geil (Live in Monheim)

Brutal Unrest - Flüssig und Geil (Live in Monheim)

The opener from our set at the Sojus7 in Monheim on 28.03.2026.

Dan’s Polaroids
Text

05.04.2026

A kid with a bunny decoration searching for Easter eggs amongst garden plants.
On Easter egg hunt.

Daring Fireball Valid
Text • John Gruber

An Easter Morning Message of Hope From the Winner of the FIFA Peace Prize

truthsocial.com/@realDonaldTrump/posts/116351998782539414

Donald Trump, sitting president of the United States, on his blog: Tuesday will be Power Plant Day, and Bridge Day, all wrapped up in one, in Iran. There will be nothing like it!!! Open the Fuckin’ Strait, you crazy bastards, or you’ll be living in Hell - JUST WATCH! Pra...

Simon Willison's Weblog Supports Webmention
Text

scan-for-secrets 0.2

Release: scan-for-secrets 0.2

  • CLI tool now streams results as they are found rather than waiting until the end, which is better for large directories.
  • -d/--directory option can now be used multiple times to scan multiple directories.
  • New -f/--file option for specifying one or more individual files to scan.
  • New scan_directory_iter(), scan_file() and scan_file_iter() Python API functions.
  • New -v/--verbose option which shows each directory that is being scanned.

Simon Willison's Weblog Supports Webmention
Text

scan-for-secrets 0.1.1

Release: scan-for-secrets 0.1.1

  • Added documentation of the escaping schemes that are also scanned.
  • Removed unnecessary repr escaping scheme, which was already covered by json.

Simon Willison's Weblog Supports Webmention
Text

scan-for-secrets 0.1

Release: scan-for-secrets 0.1 I like publishing transcripts of local Claude Code sessions using my claude-code-transcripts tool but I'm often paranoid that one of my API keys or similar secrets might inadvertently be revealed in the detailed log files. I built this new P...

Simon Willison's Weblog Supports Webmention
Text

research-llm-apis 2026-04-04

Release: research-llm-apis 2026-04-04

I'm working on a major change to my LLM Python library and CLI tool. LLM provides an abstraction layer over hundreds of different LLMs from dozens of different vendors thanks to its plugin system, and some of those vendors have grown new features over the past year which LLM's abstraction layer can't handle, such as server-side tool execution.

To help design that new abstraction layer I had Claude Code read through the Python client libraries for Anthropic, OpenAI, Gemini and Mistral and use those to help craft curl commands to access the raw JSON for both streaming and non-streaming modes across a range of different scenarios. Both the scripts and the captured outputs now live in this new repo.

Tags: llm, apis, json, llms

Daring Fireball Valid
Text • John Gruber

Sponsorship Openings for Daring Fireball

daringfireball.net/feeds/sponsors/

Sponsorships have been selling briskly, of late. Knock on wood. As of yesterday, the next opening on the schedule wasn’t until the very end of July. However, due to some schedule rejiggering, next week is now open. After that, the next opening remains the week starting July 27.

If you’ve got a product or service you think would be of interest to DF’s audience of people obsessed with high quality and good design, get in touch — especially if you can act quick for next week’s opening. I’m also booking sponsorships for Q3 and Q4 2026, and over half of those weeks are already sold.

Link: daringfireball.net/feeds/sponsors/

Daring Fireball Valid
Text • John Gruber

iOS 26 Feels Faster Than iOS 18

daringfireball.net/linked/2026/04/03/ios-18-update-for-holdouts

One more follow-up point after I spent two days using an iPhone 16 Pro running iOS 18.7.7 as my main phone. At some point late in the iOS 26 beta cycle last summer, it became obvious that Apple had sped up a bunch of system-level animations. Prime example: the animation when...

Daring Fireball Valid
Text • John Gruber

Material Security

material.security/lp-cloud-office-security?utm_source=third-party&utm_medium=email&utm_campaign=20260330-daringfireball

My thanks to Material Security for sponsoring this week at DF. Most security teams don’t have a talent problem, they have a noise problem. Manual phishing remediation, chasing risky OAuth permissions, and auditing file shares shouldn’t be a full-time job.

Material Security unifies your cloud workspace, bringing detection and response for email, files, and accounts into one place. It’s security that actually works: augmenting the native gaps in Google and Microsoft without the usual enterprise bloat. Stop fighting fragmented consoles and start focusing on strategy. It’s time to simplify your SecOps.

See for yourself how Material scales.

Link: material.security/lp-cloud-office-security?utm_source=third…