Datasette Agent: an AI assistant for Datasette built on LLM
Plus Gemini 3.5 Flash and more from Google I/O
In this newsletter:
Datasette Agent
Gemini 3.5 Flash: more expensive, but Google plan to use it for everything
Plus 2 links and 1 quotation and 1 note and 3 beats
Sponsor message: exe.dev runs persistent VMs for the agent era. SSH and root, plus HTTPS and auth out of the box. Secrets injected at the network edge stay out of the LLM's hands. Run agents, internal tools, side projects, whatever. It's just a computer.
Datasette Agent - 2026-05-21
We just announced the first release of Datasette Agent, a new extensible AI assistant for Datasette. I’ve been working on my LLM Python library for just over three years now, and Datasette Agent represents the moment that LLM and Datasette finally come together. I’m really excited about it!
Datasette Agent provides a conversational interface for asking questions of the data you have stored in Datasette. Add the datasette-agent-charts plugin and it can generate charts of your data as well.
The demo
The announcement post (on the new Datasette project blog) includes this demo video:
I recorded the video against the new agent.datasette.io live demo instance, which runs Datasette Agent against example databases including the classic global-power-plants by WRI, and a copy of the Datasette backup of my blog.
The live demo runs on Gemini 3.1 Flash-Lite - it’s cheap, fast and has no trouble writing SQLite queries.
A question I asked in the demo was:
when did Simon most recently see a pelican?
Which ran this SQL query:
SELECT
title, commentary, created
FROM
blog_beat
WHERE
beat_type = ‘sighting’
AND (title LIKE ‘%pelican%’ OR commentary LIKE ‘%pelican%’)
ORDER BY
created DESC
LIMIT
5And replied:
The most recent sighting of a pelican by Simon was recorded on May 20, 2026.
The observation included a California Brown Pelican, along with a Common Loon, Canada Goose, Striped Shore Crab, and a California Sea Lion.
Here’s that sighting on my blog, and the Markdown export of the full conversation transcript.
The plugins
My favorite feature of Datasette Agent is that, like the rest of Datasette, it’s extensible using plugins.
We’ve shipped three plugins so far:
datasette-agent-charts, shown in the video, adds charts to Datasette Agent, powered by Observable Plot.
datasette-agent-openai-imagegen adds an image generation tool to Datasette Agent using ChatGPT Images 2.0.
datasette-agent-sprites provides tools for executing code in a Fly Sprites persistent sandbox.
Building plugins is really fun. I have a bunch more prototypes that aren’t quite alpha-quality yet.
Claude Code and OpenAI Codex are both proving excellent at writing plugins - just point them at a checkout of the datasette-agent repo for reference and tell them what you want to build!
Running it against local models
I’ve also been having fun running the new plugin against local models. Here’s a uv one-liner to run the plugin against gemma-4-26b-a4b in LM Studio on a Mac:
uvx --prerelease=allow \
--with datasette-agent --with llm-lmstudio \
datasette --internal internal.db --root \
-s plugins.datasette-llm.default_model lmstudio/google/gemma-4-26b-a4b \
data.dbDatasette Agent needs reliable tool calls and the ability for a model to produce SQL queries that run against SQLite. The open weight models released in the past six months are increasingly able to handle that.
What’s next
Datasette Agent opens up so many opportunities for the LLM and Datasette ecosystem in general.
It’s already informed the major LLM 0.32a0 refactor which I’m nearly ready to roll into a stable release, maybe with some additional “LLM agent” abstractions extracte from Datasette Agent itself.
I’ve been exploring my own take on the Claude Artifacts, which is shaping up nicely as a plugin.
I’m excited to use Datasette Agent to build my own Claw - a personal AI assistant built around data imported from different parts of my digital life, which is a neat excuse to revisit my older Dogsheep family of tools.
We’ll also be rolling out Datasette Agent for users of Datasette Cloud.
Join our #datasette-agent Discord channel if you’d like to talk about the project.
Gemini 3.5 Flash: more expensive, but Google plan to use it for everything - 2026-05-19
Today at Google I/O, Google released Gemini 3.5 Flash. This one skipped the -preview modifier and went straight to general availability, and Google appear to be using it for a whole lot of their key products:
3.5 Flash is available today to billions of people globally:
For everyone via the Gemini app and AI Mode in Google Search
For developers in our agent-first development platform Google Antigravity and Gemini API in Google AI Studio and Android Studio
For enterprises in Gemini Enterprise Agent Platform and Gemini Enterprise.
As usual with Gemini, the most interesting details are tucked away in the What’s new in Gemini 3.5 Flash developer documentation. It mostly has the same set of platform features as the previous Gemini 3.x series, albeit with no computer use. The model ID is gemini-3.5-flash. The knowledge cut-off is January 2025, and it supports 1,048,576 input tokens and 65,536 maximum output tokens.
Google are also pushing a new Interactions API, currently in beta, which looks to me like their version of the patterns introduced by OpenAI Responses - in particular server-side history management.
The price has gone up
Gemini 3.5 Flash is accompanied by a notable price bump. The previous models in the “Flash” family were Gemini 3 Flash Preview and Gemini 3.1 Flash-Lite. The new 3.5 Flash is 3x the price of 3 Flash Preview and 6x the price of 3.1 Flash-Lite (see price comparison here).
At $1.50/million input and $9/million output it’s getting close in price to Google’s Gemini 3.1 Pro, which is $2 and $12.
The Gemini team promise that 3.5 Pro will roll out “next month” - presumably at an even higher price.
This fits a trend: OpenAI’s GPT-5.5 was 2x the price of GPT-5.4, and Claude Opus 4.7 is around 1.46x the price of 4.6 when you take the new tokenizer into account.
Given the price increase it’s interesting to see Google roll it out for so many of their own free-to-consumer products. It feels like all three of the major AI labs are starting to probe the price tolerance of their API customers.
Artificial Analysis publish the cost to run their proprietary benchmark against models, which is a useful way to take things like tokenization and increased volume of reasoning tokens into account. Some numbers worth comparing:
Gemini 3.5 Flash (high): $1,551.60
Gemini 3.1 Pro Preview: $892.28
Gemini 3 Flash Preview (Reasoning): $278.26
Gemini 3.1 Flash-Lite Preview: $93.60
Running the benchmark for 3.5 Flash (high) cost significantly more than 3.1 Pro Preview!
Here are some numbers from other vendors:
Claude Opus 4.7 (Non-reasoning, High Effort): $1,217.23
GPT-5.5 (xhigh): $3,357.00
GPT-5.5 (medium): $1,199.14
A pelican on a bicycle
I ran “Generate an SVG of a pelican riding a bicycle” against the Gemini API and got back this pelican, which is a lot:
From the code comments: <!-- Pelican Eye / Sunglasses (Cool Retro Aviators) -->
That pelican looks like it’s in Miami for a crypto conference.
That one cost me 11 input tokens and 14,403 output tokens, for a total cost of just under 13 cents.
Release: llm-gemini 0.32
New model
gemini-3.5-flashfor Gemini 3.5 Flash.
See also my notes on Gemini 3.5 Flash, and the pelican I drew using this upgrade to the plugin.
Release: datasette-agent-charts 0.1a1
More color! Bar and waffle charts without a color column are shaded by magnitude with a sequential color scheme; color columns holding text values use the
observable10categorical scheme. #2Now checks
execute-sqlpermission before running the query to find the column names.Charts now display interactive tooltips.
Fixed a bug where
waffleYcharts were not described to the agent.
Note 2026-05-20
It’s hard to find much to write about Google I/O this year because I have a policy of not writing about anything that I can’t try out myself, and a lot of the big announcements are “coming soon”.
I actually prefer to write about things that are in general availability, because I’ve had instances in the past where the previews didn’t match what was released to the general public later on.
Aside from Gemini 3.5 Flash the most interesting announcement looks to be Google’s upcoming OpenClaw competitor Gemini Spark, described as “your personal AI agent” which can “connect natively with your favorite Google apps like Gmail, Calendar, Drive, Docs, Sheets, Slides, YouTube, and Google Maps”. The FAQ for that also includes this confusing detail:
What Gemini model does Gemini Spark run on?
Gemini Spark runs on Gemini 3.5 Flash and Antigravity.
The antigravity.google website currently lists Antigravity as a desktop app, a CLI agent tool (written in Go), the Antigravity SDK (an open source Python wrapper around a bundled closed source Go binary), and the original Antigravity IDE (a VS Code fork).
I guess Gemini Spark, the user-facing hosted agent product, might be running on that Go binary, but I’m not sure why that’s worth mentioning in the FAQ!
Naturally I went looking for notes on how Gemini Spark intends to handle the risk of prompt injection. The best information I could find on that was in the Everything Google Cloud customers need to know coming out of Google I/O post aimed at enterprise customers, which includes:
Spark operates in a fully managed, secure runtime on Google Cloud, meaning you get enterprise-grade security without ever having to manage the underlying infrastructure. Every task executes in a fresh, strictly isolated, ephemeral VM to help ensure data never overlaps between sessions. To protect your enterprise, all traffic routes through our secure Agent Gateway that enforces Data Loss Prevention (DLP) policies, while user credentials remain fully encrypted and are never exposed directly to the agent.
Given how many people are going to be piping very sensitive data through Gemini Spark in the near future I hope they’ve made this bullet-proof, or this could be a top candidate for the agent security challenger disaster that we still haven’t seen.
Also of note: in Transitioning Gemini CLI to Antigravity CLI Google announce that the open source Gemini CLI tool (Apache 2.0 licensed TypeScript) will stop working with their AI subscription plans on June 18th, replaced by the new closed source Antigravity CLI.
Link 2026-05-20 How fast is 10 tokens per second really?:
Neat little HTML app by Mike Veerman (source code here) which simulates LLM token output speeds from 5/second to 800/second.
Useful if you see a model advertised as “30 tokens/second” and want to get a feel for what that actually looks like.
Quote 2026-05-20
We have the ability to use compute resources to support our proprietary AI applications (such as Grok 5, which is currently being trained at COLOSSUS II), while also providing access to select compute capacity to third-party customers. For example, in May 2026, we entered into Cloud Services Agreements with Anthropic PBC (“Anthropic”), an AI research and development public benefit corporation, with respect to access to compute capacity across COLOSSUS and COLOSSUS II. Pursuant to these agreements, the customer has agreed to pay us $1.25 billion per month through May 2029, with capacity ramping in May and June 2026 at a reduced fee. The agreements may be terminated by either party upon 90 days’ notice.
SpaceX S-1, highlights mine
Release: datasette-agent-sprites 0.1a0
A Datasette Agent plugin for running commands in a Fly Sprites sandbox.
Back in 2024 Cox Media Group were caught trying to sell advertisers packages based on “active listening”, with this deck which claimed:
Smart devices capture real-time intent data by listening to our conversations
Advertisers can pair this voice-data with behavioral data to target in-market consumers
I wrote about this in September 2024. My theory:
I think active listening is the term that the team came up with for “something that sounds fancy but really just means the way ad targeting platforms work already”. Then they got over-excited about the new metaphor and added that first couple of slides that talk about “voice data”, without really understanding how the tech works or what kind of a shitstorm that could kick off when people who DID understand technology started paying attention to their marketing.
This FTC press release appears to confirm that’s pretty much what happened:
CMG, MindSift and 1010 Digital Works claimed their “Active Listening” branded marketing service listened in on consumers’ conversations overheard by smart devices, in real time, to target advertising [...]
According to the complaints, this service did not, in fact, listen in on consumers’ conversations or use voice data at all—nor did the service accurately place ads in customers’ desired locations. Instead, the service the companies provided consisted of reselling—at a significant markup—email lists obtained from other data brokers.
Attempting to myth bust the conspiracy theory that our mobile devices target ads to us based on spying through the microphones continues to be my least rewarding niche online hobby. It’s nice to have a new piece of ammunition.
If you find this newsletter useful, please consider sponsoring me via GitHub. $10/month and higher sponsors get a monthly newsletter with my summary of the most important trends of the past 30 days - here are previews from January and February and March.



Was the surprising part here that the cheap/fast model was already good enough for SQLite? I’d be curious where it first breaks: schema discovery, join planning, or quietly writing a very plausible query against the wrong table.