Nov 6 edition/Reporting & analysis
AgentsSafetyCoding

AgentsAutonomy & tool use

datasette-apps 0.3a0 makes users approve write access before Datasette Agent's apps can modify data

The latest alpha of datasette-apps, a plugin for LLM-generated HTML tools that run sandboxed inside Datasette, now makes users approve write access when Datasette Agent creates an app or attaches a stored query that modifies data.

From the Simon Willison article of November 4, 2026 and cited sources: Datasette Agent can now add or remove the stored queries an app may call. [1] [2]

SOURCES[1] datasette-apps 0.3a0 simonwillison.net[2] GitHub: datasette-apps release 0.3a0 github.com

AI-assisted, not human-edited. Methodology Corrections Who owns this site

KEY FACTS
What happened
Datasette Agent can now add or remove the stored queries an app may call. [1] [2]
Original source
Simon Willison article, independent perspective
Brief by
AT Pulse research desk AI-assisted; publisher and contact on the desk page
When
November 4, 2026 article published
Evidence
11 sources across 6 sites

Reach: not measured yet

THE CORE IDEAS3 TAKEAWAYS
01

Datasette Agent can now add or remove the stored queries an app may call. Any write query added this way needs the user's approval first. App creation also checks that each requested query exists and that the user is allowed to view it. [1] [2]

02

Apps run in sandboxed iframes with a Content Security Policy. Network access is blocked unless specific HTTPS origins are configured. Apps reach data either through direct SQL or through an allow-list of stored queries, and both paths go through Datasette's existing permission checks. Users who hold the CSP-setting permission can allow any HTTPS origin, which weakens the sandbox. [6]

03

The new gate matches how Datasette Agent already works: it asks a human to approve every write and shows the full SQL and parameters. Treating an app's capabilities as an editable allow-list, with explicit sign-off for writes, is a governance pattern other in-house agent platforms could reuse. [7]

WHY IT MATTERS

Documented behavior: the agent can now edit an app's stored-query allow-list, and writes at that boundary need human sign-off.

Read the full assessment

Implication: teams building internal agent platforms get a reusable governance pattern, though protection depends on how carefully users review approvals.

Executive brief

The datasette-apps 0.3a0 release adds a permission gate between an AI agent and the database it is building apps against. When Datasette Agent creates an app, or later lets that app call a stored query that writes data, the user now has to approve that write access first (GitHub release 0.3a0). Datasette Apps are small HTML/JavaScript tools that run sandboxed inside Datasette, the open-source SQLite publishing tool, and are usually generated by an LLM (Simon Willison's release note). This is an alpha release. There is no independent reporting or evaluation of it, only the developer's own materials and aggregator rewrites.

What changed and event timeline

  1. Datasette Agent alpha appears

    Version 0.1a0 of Datasette Agent shipped as a "silent" alpha. It is an LLM-powered chat assistant for querying Datasette instances ().

  2. Datasette-apps first alpha

    Version 0.1a0 was the first public release of a plugin for hosting custom HTML apps inside Datasette ().

  3. Agent integration lands

    In 0.1a1, frames talk to each other through MessageChannel(). The release also registered tools so Datasette Agent can create and modify apps, and added a panel that logs SQL and console output ().

  4. CSP controls and permission fixes

    Releases 0.1a2 and 0.1a3 added Content Security Policy (CSP) controls and fixed permission bugs in app creation and editing ().

  5. Agent debugging tools

    Version 0.2a0 added app_debug() and app_list(), so the agent can test and find apps ().

  6. 0.3a0 adds approval gates

    This release added # tagging of apps in chat, tools for managing stored queries, and user approval for write queries. It requires Datasette 1.0a41 or later ().

Capabilities and access

  • Version: datasette-apps 0.3a0. Requires Datasette 1.0a41+ and Python 3.11+. Adds Python 3.15 support and drops 3.10 (release).
  • Apps are managed at /-/apps (README).
  • New agent tools: app_add_stored_queries() and app_remove_stored_queries().
Read the full section
  • Version: datasette-apps 0.3a0. Requires Datasette 1.0a41+ and Python 3.11+. Adds Python 3.15 support and drops 3.10 (release).
  • Install: datasette install datasette-apps. Apps are managed at /-/apps (README).
  • New agent tools: app_add_stored_queries() and app_remove_stored_queries(). app_create() now checks that each requested query exists and that the user can view it (release note).
  • Usability: typing # autocompletes from apps the user has permission to view. "View app" links open full screen in the Agent panel.

Technical analysis for researchers and developers

  • Sandbox: apps run in sandboxed iframes with CSP enforced.
  • Data bridge: apps reach data in two ways. datasette.query() runs SQL directly. datasette.storedQuery() runs only queries on the app's allow-list.
  • What 0.3a0 changes: the agent can now edit an app's stored-query allow-list.
Read the full section
  • Sandbox: apps run in sandboxed iframes with CSP enforced. Direct network access is blocked unless exact https:// origins are configured, and localhost is never allowed (README).
  • Data bridge: apps reach data in two ways. datasette.query() runs SQL directly. datasette.storedQuery() runs only queries on the app's allow-list. Both go through Datasette's existing permission checks (README).
  • What 0.3a0 changes: the agent can now edit an app's stored-query allow-list. That makes the allow-list a capability boundary the agent can modify, so approving writes at that point is the relevant safeguard.
  • Consistent approval model: Datasette Agent already asks for human approval before every write and shows the full SQL and parameters (datasette-agent repo).
  • Extension point: # tagging builds on the agent's register_agent_reference_types hook (datasette-agent repo).

Claims and evidence

  • Agent creates apps more easily than writing them by hand: this is the developer's own framing (release note). No benchmark or user study supports it.
  • Write queries need user approval: stated in the release notes (GitHub release). This is documented behavior. No third-party security review exists.
  • Sandbox blocks unlisted network access: stated in the README. The code is open source, so it can be checked, but no independent audit exists.
Read the full section
  • Agent creates apps more easily than writing them by hand: this is the developer's own framing (release note). No benchmark or user study supports it.
  • Write queries need user approval: stated in the release notes (GitHub release). This is documented behavior. No third-party security review exists.
  • Sandbox blocks unlisted network access: stated in the README. The code is open source, so it can be checked, but no independent audit exists.
  • Independent corroboration: none available. Pages such as fooqux and ecosistemastartup appear to restate the developer's posts rather than report independently.

Context and prior work

  • Datasette Agent builds on Willison's LLM Python library, which supports several model vendors through plugins (devaitools analysis). That piece is secondary commentary.
  • Existing agent plugins include datasette-agent-charts, which uses Observable Plot (aiflow summary).
  • Datasette Apps follow a familiar pattern: the LLM generates a self-contained artifact that runs in a sandbox.
Read the full section
  • Datasette Agent builds on Willison's LLM Python library, which supports several model vendors through plugins (devaitools analysis). That piece is secondary commentary.
  • Existing agent plugins include datasette-agent-charts, which uses Observable Plot (aiflow summary).
  • Datasette Apps follow a familiar pattern: the LLM generates a self-contained artifact that runs in a sandbox. The plugin writes a prompt in the browser that includes the database schema and the sandbox rules (README).

Limitations, safety and contested findings

  • Every release so far is an alpha, and this one requires an alpha version of Datasette 1.0 (release).
  • 0.1a3 fixed permission bugs in creating and editing apps, so the permission layer has already needed corrections (releases).
  • Users with the apps-set-csp permission can allow any HTTPS origin, which weakens the network sandbox (README).
Read the full section
  • Every release so far is an alpha, and this one requires an alpha version of Datasette 1.0 (release).
  • 0.1a3 fixed permission bugs in creating and editing apps, so the permission layer has already needed corrections (releases).
  • Users with the apps-set-csp permission can allow any HTTPS origin, which weakens the network sandbox (README).
  • Human approval only protects data as well as users review what they approve. The reviewed sources contain no security evaluation.

Business and practitioner implications

  • Internal tools: teams can have an LLM generate small CRUD dashboards on top of SQLite.
  • Agent governance pattern: two ideas here carry over to other in-house agent platforms.
  • Adoption risk: the APIs are alpha and require specific Datasette 1.0 alpha versions. Pin versions and test before upgrading anything that matters.
Read the full section
  • Internal tools: teams can have an LLM generate small CRUD dashboards on top of SQLite. The permissions that already exist in Datasette control who can see and use each app.
  • Agent governance pattern: two ideas here carry over to other in-house agent platforms. Every write needs explicit approval, and an app's capabilities are an editable allow-list.
  • Adoption risk: the APIs are alpha and require specific Datasette 1.0 alpha versions. Pin versions and test before upgrading anything that matters.
  • Due diligence: there is no independent evaluation, so security teams should review the iframe bridge and CSP code themselves.
FOLLOW THE EVIDENCE

The source trail.

Sources (11)
A LITTLE LESS NOISE. A LOT MORE CONTEXT.

Stay curious.
Follow the evidence.

Independent perspectives, the original sources, and room for the questions that don't have easy answers.

How we build the brief
Connect with us

Find us where you already read.