---
title: Datasette
description: "open-source data tool and worked example for agent-assisted software/product workflows."
created: 2026-05-30
updated: 2026-07-08
timestamp: "2026-07-08T00:00:00Z"
type: entity
tags: [product, software, tools, agents]
sources: [../knowledge/raw/articles/blogwatcher/2026-07-07/2026-07-06-simon-willison-sqlite-utils-4-0rc3.md, ../knowledge/raw/articles/blogwatcher/2026-07-06/2026-07-05-simon-willison-sqlite-utils-4-0rc2-mostly-written-by-claude-fable.md, ../knowledge/raw/articles/blogwatcher/2026-07-06/2026-07-05-simon-willison-sqlite-utils-4-0rc2.md, ../knowledge/raw/articles/blogwatcher/2026-07-03/2026-07-02-simon-willison-dspy-datasette-agent-prompts.md, raw/articles/blogwatcher/2026-05-30/2026-05-29-simon-willison-datasette-1-0a31.md, raw/articles/blogwatcher/2026-05-30/2026-05-14-simon-willison-datasette-agent-0-1a1.md, raw/articles/blogwatcher/2026-05-30/2026-05-14-simon-willison-datasette-ip-rate-limit-0-1a0.md, raw/articles/blogwatcher/2026-05-30/2026-05-13-simon-willison-welcome-to-the-datasette-blog.md, raw/articles/blogwatcher/2026-05-31/2026-05-30-simon-willison-running-python-asgi-apps-in-the-browser-via-pyodide-a-service-worker.md, raw/articles/blogwatcher/2026-06-01/2026-05-31-simon-willison-datasette-1-0a32.md, raw/articles/blogwatcher/2026-06-15/2026-06-13-simon-willison-publishing-wasm-wheels-to-pypi-for-use-with-pyodide.md, raw/articles/blogwatcher/2026-06-15/2026-06-13-simon-willison-luau-wasm-0-1a0.md, raw/articles/blogwatcher/2026-06-15/2026-06-13-simon-willison-mapping-sqlite-result-columns-back-to-their-source-table-column.md, raw/articles/blogwatcher/2026-06-15/2026-06-06-simon-willison-micropython-wasm-0-1a2.md, raw/articles/blogwatcher/2026-06-15/2026-06-06-simon-willison-running-python-code-in-a-sandbox-with-micropython-and-wasm.md, raw/articles/blogwatcher/2026-06-20/2026-06-18-simon-willison-datasette-acl.md, raw/articles/blogwatcher/2026-06-20/2026-06-15-simon-willison-datasette-apps-0-1a3.md, raw/articles/blogwatcher/2026-06-20/2026-06-15-simon-willison-datasette-apps-0-1a2.md, ../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-24-simon-willison-simonw-browser-compat-db.md, ../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-23-simon-willison-datasette-1-0a35.md, ../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-23-simon-willison-opfs-pyodide-test-harness.md, ../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-22-simon-willison-porting-the-moebius-0-2b-image-inpainting-model-to-run-in-the-browser-with-claude-code.md, ../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-21-simon-willison-sqlite-utils-4-0rc1-adds-migrations-and-nested-transactions.md, ../knowledge/raw/articles/blogwatcher/2026-07-01/2026-06-30-simon-willison-shot-scraper-video.md, ../knowledge/raw/articles/blogwatcher/2026-07-01/2026-06-30-simon-willison-shot-scraper-1-10.md, ../knowledge/raw/articles/blogwatcher/2026-07-01/2026-06-29-simon-willison-html-table-extractor.md, ../knowledge/raw/articles/blogwatcher/2026-07-04/2026-07-03-simon-willison-open-source-ai-gap-map.md, ../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-utils-4-0-now-with-database-schema-migrations.md, ../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-migrate-0-2.md, ../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-utils-4-0.md, ../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-utils-4-0rc4.md]
confidence: medium
contested: false
contradictions: []
---
# Datasette

## Overview
Datasette is Simon Willison's open-source system for exploring and publishing data. In this wiki it is relevant as a concrete software product where [[agentic-coding]] and AI-assisted maintenance show up in small, inspectable releases.

## 2026-05-30 Blogwatcher Synthesis
The selected May posts show Datasette moving on two fronts: Datasette 1.0a31 added write-query execution and saved/stored queries for users with appropriate permissions, while smaller releases and notes show Datasette Agent, IP-rate-limiting, and the new Datasette blog being developed or maintained with Codex/LLM assistance. This makes Datasette a useful worked example for agents embedded into real developer/product workflows rather than only benchmark tasks. ^[raw/articles/blogwatcher/2026-05-30/2026-05-29-simon-willison-datasette-1-0a31.md]

## Relationships
- [[agentic-coding]] covers the broader development pattern.
- [[agent-context-management]] covers application-state and tool-context issues relevant to Datasette Agent.
- [[agent-evaluation]] covers the verification discipline needed when agents change production tools.


### 2026-05-31
The Pyodide + ASGI/browser experiment is relevant to Datasette because it demonstrates a browser-resident Python web-app substrate that can make local-first, agent-friendly data tools easier to package and inspect. Related: [[agentic-coding]] and [[agent-context-management]]. ^[raw/articles/blogwatcher/2026-05-31/2026-05-30-simon-willison-running-python-asgi-apps-in-the-browser-via-pyodide-a-service-worker.md]


### 2026-06-01
Datasette 1.0a32 is another small, inspectable release in Simon Willison's agent-adjacent software stream. It keeps [[datasette]] useful as a worked example for shipping real product changes with explicit release notes, tests, and context that [[agentic-coding]] systems can consume. Related: [[agent-evaluation]] and [[agent-context-management]]. ^[raw/articles/blogwatcher/2026-06-01/2026-05-31-simon-willison-datasette-1-0a32.md]

## Blogwatcher Ingest Notes

### 2026-06-13
Simon Willison's June items extend [[datasette]] as a worked example for AI-assisted, inspectable tooling: datasette-agent releases, sandboxed Python execution with MicroPython/WASM, and small supporting packages show a bias toward explicit local runtimes and constrained agent tool use. Related: [[agentic-coding]] and [[agent-security]]. ^[raw/articles/blogwatcher/2026-06-13/2026-06-11-simon-willison-datasette-1-0a33.md] ^[raw/articles/blogwatcher/2026-06-13/2026-06-11-simon-willison-asyncinject-0-7.md] ^[raw/articles/blogwatcher/2026-06-13/2026-06-10-simon-willison-datasette-agent-0-2a0.md]

### 2026-06-14
Simon Willison's latest Datasette-agent item continues the inspectable local-agent pattern: small tools, explicit release notes, and product-embedded agent loops as a safer alternative to opaque autonomous systems. Related: [[agentic-coding]] and [[agent-security]]. ^[raw/articles/blogwatcher/2026-06-14/2026-06-07-simon-willison-datasette-agent-edit-0-1a0.md]

### 2026-06-15
Simon Willison's Pyodide/WASM, MicroPython sandbox, Luau WASM, and SQLite column-provenance posts strengthen the Datasette pattern of small inspectable local tools that can host constrained code execution and agent-friendly provenance. Related: [[agentic-coding]], [[agent-security]], and [[agent-context-management]]. ^[raw/articles/blogwatcher/2026-06-15/2026-06-13-simon-willison-publishing-wasm-wheels-to-pypi-for-use-with-pyodide.md] ^[raw/articles/blogwatcher/2026-06-15/2026-06-13-simon-willison-luau-wasm-0-1a0.md] ^[raw/articles/blogwatcher/2026-06-15/2026-06-13-simon-willison-mapping-sqlite-result-columns-back-to-their-source-table-column.md] ^[raw/articles/blogwatcher/2026-06-15/2026-06-06-simon-willison-micropython-wasm-0-1a2.md]

### 2026-06-16
Simon Willison items captured here extend the Datasette-agent thread: datasette-agent 0.3a0, MicroPython/WASM sandbox work, and pasted-file editor tooling show a concrete agent-adjacent pattern of small inspectable tools, local execution, and provenance-preserving interfaces. Related: [[agentic-coding]], [[agent-security]], [[agent-context-management]]. ^[raw/articles/blogwatcher/2026-06-16/2026-06-15-simon-willison-datasette-agent-0-3a0.md] ^[raw/articles/blogwatcher/2026-06-16/2026-06-02-simon-willison-datasette-agent-micropython-0-1a0.md] ^[raw/articles/blogwatcher/2026-06-16/2026-06-02-simon-willison-micropython-wasm-0-1a1.md] ^[raw/articles/blogwatcher/2026-06-16/2026-06-02-simon-willison-pasted-file-editor.md]

### 2026-06-17
Simon Willison's June items extend [[datasette]] as a worked example for AI-assisted, inspectable tooling: datasette-agent releases, sandboxed Python execution with MicroPython/WASM, and small supporting packages show a bias toward explicit local runtimes and constrained agent tool use. Related: [[agentic-coding]] and [[agent-security]]. ^[raw/articles/blogwatcher/2026-06-17/2026-06-16-simon-willison-datasette-tailscale-0-1a0.md]

### 2026-06-19
Datasette Apps (host self-contained HTML+JS apps in a tightly sandboxed iframe with an immutable CSP and a MessageChannel-based SQL API) and datasette 1.0a34 (insert/edit/delete rows in the UI, inspired by Datasette Agent's write support) extend [[datasette]] as the worked example for inspectable, sandboxed, AI-assisted local tooling. Security review was performed by Claude Fable 5, which found a critical CSP vulnerability. Related: [[agentic-coding]], [[agent-security]]. ^[raw/articles/blogwatcher/2026-06-19/2026-06-18-simon-willison-datasette-apps.md] ^[raw/articles/blogwatcher/2026-06-19/2026-06-16-simon-willison-datasette-1-0a34.md]

### 2026-06-20
Three Datasette releases fill out the Apps/ACL story already started on 2026-06-19. **datasette-apps 0.1a2** (Jun 15) adds the `apps-set-csp` permission with an optional `allowed_csp_origins` plugin allow-list for non-privileged users, and — importantly — the **Datasette Agent app-creation tool enforces the same CSP-origin rules**, so agent-authored apps cannot self-grant broader origins; it also improves the stored-query picker and full-screen modal/logging panels. **datasette-apps 0.1a3** (Jun 15) fixes two permission holes: users without `create-app` could still create apps, and edit/delete permissions for non-owner users were broken (edit/delete rules now match view: private → owner-only, else Datasette's regular permission system). **datasette-acl 0.6a0** (Jun 18, mostly Alex Garcia's work) expands the ACL plugin from table-only permissions toward a general resource-sharing system for multi-user instances. Together these deepen [[datasette]]'s thesis: sandboxed, permission-gated, AI-assisted local tooling where even agent-created artifacts inherit the host's CSP/permission boundaries. Related: [[agentic-coding]], [[agent-security]]. ^[raw/articles/blogwatcher/2026-06-20/2026-06-15-simon-willison-datasette-apps-0-1a2.md] ^[raw/articles/blogwatcher/2026-06-20/2026-06-15-simon-willison-datasette-apps-0-1a3.md] ^[raw/articles/blogwatcher/2026-06-20/2026-06-18-simon-willison-datasette-acl.md]

### 2026-06-26
Simon Willison’s June 21–25 items extend [[datasette]] as a worked example for agent-assisted, inspectable local tooling. Datasette 1.0a35 adds schema-editing UI/JSON APIs (create/alter table) and generated template-context documentation; the OPFS + Pyodide test harness explores persistent browser-local SQLite for Datasette Lite; `browser-compat-db` converts MDN browser-compat-data to SQLite and publishes it through a CORS-friendly GitHub branch for Datasette Lite; the Moebius WebGPU port is a parallel Claude Code browser-model side project; sqlite-utils 4.0rc1 adds migrations plus nested transactions; and datasette-export-database 0.3a2 is a tiny compatibility fix changing an exact Datasette dependency pin to `datasette>=1.0a27`. Related: [[agentic-coding]], [[agent-context-management]], [[agent-security]]. ^[../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-23-simon-willison-datasette-1-0a35.md] ^[../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-23-simon-willison-opfs-pyodide-test-harness.md] ^[../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-24-simon-willison-simonw-browser-compat-db.md] ^[../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-21-simon-willison-sqlite-utils-4-0rc1-adds-migrations-and-nested-transactions.md] ^[../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-25-simon-willison-datasette-export-database-0-3a2.md] ^[../knowledge/raw/articles/blogwatcher/2026-06-26/2026-06-21-simon-willison-sqlite-utils-4-0rc1.md]

### 2026-07-01
Simon Willison's shot-scraper 1.10 and `shot-scraper video` notes extend the Datasette-adjacent worked-example pattern: small explicit CLI tools, YAML/Pydantic schemas, Playwright automation, authentication files, and agent-readable `--help` output let a coding agent create a reproducible video demo of a web-app workflow. The HTML table extractor is a parallel inspectable data-conversion utility. These are not Datasette releases, but they support the same [[agentic-coding]] / [[agent-context-management]] thesis: agents work better when verification, demos, and data transforms are concrete, scriptable, and reviewable. Related: [[agent-evaluation]]. ^[../knowledge/raw/articles/blogwatcher/2026-07-01/2026-06-30-simon-willison-shot-scraper-video.md] ^[../knowledge/raw/articles/blogwatcher/2026-07-01/2026-06-30-simon-willison-shot-scraper-1-10.md] ^[../knowledge/raw/articles/blogwatcher/2026-07-01/2026-06-29-simon-willison-html-table-extractor.md]

### 2026-07-03
Simon Willison's DSPy/Datasette Agent experiment turns Datasette into an evaluation-harness example: DSPy agents invoke the actual Datasette Agent SQL tools and production prompts against a live in-process Datasette, with generated gold data and custom metrics. The concrete failure mode — prompt wording encouraged agents to guess columns instead of calling `describe_table`, producing retry loops — shows why [[datasette]] is valuable as an inspectable substrate for [[agent-evaluation]] and [[agentic-coding]] prompt/tool changes. Related: [[agent-context-management]]. ^[../knowledge/raw/articles/blogwatcher/2026-07-03/2026-07-02-simon-willison-dspy-datasette-agent-prompts.md]

### 2026-07-04
Simon Willison's Open Source AI Gap Map note uses Datasette Lite as the inspection layer for Current AI's released open-source-AI dataset, specifically a CSV of 16,185 tracked GitHub repositories derived from the project's MIT-licensed YAML/notebook/schema corpus. This reinforces [[datasette]] as a lightweight, browser-friendly interface for provenance-rich AI ecosystem data, not only as an agent-coding testbed. Related: [[agentic-coding]], [[agent-context-management]]. ^[../knowledge/raw/articles/blogwatcher/2026-07-04/2026-07-03-simon-willison-open-source-ai-gap-map.md]

### 2026-07-06
The `sqlite-utils 4.0rc2` pair extends the [[datasette]] worked-example thread from product releases into agent-assisted maintenance of a core SQLite utility: Claude Fable found transaction semantics blockers, implemented a 34-commit RC, and GPT-5.5 cross-reviewed the result to catch `db.query()` side effects and generator-commit edge cases. The durable lesson is not just the release itself, but the review pattern around agent-written code: documentation-first review, cross-model critique, explicit transaction semantics, and cost accounting for main-agent/subagent work. Related: [[agentic-coding]], [[agent-evaluation]], [[agent-security]]. ^[../knowledge/raw/articles/blogwatcher/2026-07-06/2026-07-05-simon-willison-sqlite-utils-4-0rc2-mostly-written-by-claude-fable.md] ^[../knowledge/raw/articles/blogwatcher/2026-07-06/2026-07-05-simon-willison-sqlite-utils-4-0rc2.md]

### 2026-07-07
`sqlite-utils 4.0rc3` keeps [[datasette]] relevant as an inspectable release-engineering case study: Willison reports that Claude Fable 5 plus GPT-5.5 backlog work kept expanding the changelog before stable 4.0, with durable changes around compound foreign-key introspection/creation, `table.foreign_keys`, and SQLite-compatible case-insensitive column names. The pattern is agent-assisted maintenance anchored in concrete database semantics rather than generic code generation. Related: [[agentic-coding]], [[agent-evaluation]]. ^[../knowledge/raw/articles/blogwatcher/2026-07-07/2026-07-06-simon-willison-sqlite-utils-4-0rc3.md]

### 2026-07-08
`sqlite-utils 4.0` moved the Datasette/SQLite utility line from RCs to stable with database migrations, nested `db.atomic()` transactions, compound foreign keys, and breaking cleanup around query/write semantics; the accompanying posts retire `sqlite-migrate` into a compatibility shim and record `sqlite-utils 4.0rc4` as the final Fable-reviewed RC. The durable Datasette lesson is agent-assisted release engineering around real database semantics: Claude Fable 5 generated broad repro scripts, found release blockers, and helped with API design, while Willison kept the stable release anchored in human review, upgrade documentation, and concrete SQLite behavior. Related: [[agentic-coding]], [[agent-evaluation]]. ^[../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-utils-4-0-now-with-database-schema-migrations.md] ^[../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-utils-4-0rc4.md] ^[../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-migrate-0-2.md] ^[../knowledge/raw/articles/blogwatcher/2026-07-08/2026-07-07-simon-willison-sqlite-utils-4-0.md]

